1 // crypto_generichash_blake2b.h
2 
3 use libsodium_sys::*;
4 
5 #[test]
test_crypto_generichash_blake2b_state_alignment()6 fn test_crypto_generichash_blake2b_state_alignment() {
7     // this asserts the alignment applied that was broken with old
8     // versions of bindgen
9     assert_eq!(64, std::mem::align_of::<crypto_generichash_blake2b_state>());
10 }
11 
12 #[test]
test_crypto_generichash_blake2b_bytes_min()13 fn test_crypto_generichash_blake2b_bytes_min() {
14     assert_eq!(
15         unsafe { crypto_generichash_blake2b_bytes_min() },
16         crypto_generichash_blake2b_BYTES_MIN as usize
17     )
18 }
19 
20 #[test]
test_crypto_generichash_blake2b_bytes_max()21 fn test_crypto_generichash_blake2b_bytes_max() {
22     assert_eq!(
23         unsafe { crypto_generichash_blake2b_bytes_max() },
24         crypto_generichash_blake2b_BYTES_MAX as usize
25     )
26 }
27 
28 #[test]
test_crypto_generichash_blake2b_bytes()29 fn test_crypto_generichash_blake2b_bytes() {
30     assert_eq!(
31         unsafe { crypto_generichash_blake2b_bytes() },
32         crypto_generichash_blake2b_BYTES as usize
33     )
34 }
35 
36 #[test]
test_crypto_generichash_blake2b_keybytes_min()37 fn test_crypto_generichash_blake2b_keybytes_min() {
38     assert_eq!(
39         unsafe { crypto_generichash_blake2b_keybytes_min() },
40         crypto_generichash_blake2b_KEYBYTES_MIN as usize
41     )
42 }
43 
44 #[test]
test_crypto_generichash_blake2b_keybytes_max()45 fn test_crypto_generichash_blake2b_keybytes_max() {
46     assert_eq!(
47         unsafe { crypto_generichash_blake2b_keybytes_max() },
48         crypto_generichash_blake2b_KEYBYTES_MAX as usize
49     )
50 }
51 
52 #[test]
test_crypto_generichash_blake2b_keybytes()53 fn test_crypto_generichash_blake2b_keybytes() {
54     assert_eq!(
55         unsafe { crypto_generichash_blake2b_keybytes() },
56         crypto_generichash_blake2b_KEYBYTES as usize
57     )
58 }
59 
60 #[test]
test_crypto_generichash_blake2b_saltbytes()61 fn test_crypto_generichash_blake2b_saltbytes() {
62     assert_eq!(
63         unsafe { crypto_generichash_blake2b_saltbytes() },
64         crypto_generichash_blake2b_SALTBYTES as usize
65     )
66 }
67 
68 #[test]
test_crypto_generichash_blake2b_personalbytes()69 fn test_crypto_generichash_blake2b_personalbytes() {
70     assert_eq!(
71         unsafe { crypto_generichash_blake2b_personalbytes() },
72         crypto_generichash_blake2b_PERSONALBYTES as usize
73     )
74 }
75 
76 #[test]
test_crypto_generichash_blake2b()77 fn test_crypto_generichash_blake2b() {
78     let mut out = [0u8; crypto_generichash_blake2b_BYTES as usize];
79     let m = [0u8; 64];
80     let key = [0u8; crypto_generichash_blake2b_KEYBYTES as usize];
81 
82     assert_eq!(
83         unsafe {
84             crypto_generichash_blake2b(
85                 out.as_mut_ptr(),
86                 out.len(),
87                 m.as_ptr(),
88                 m.len() as u64,
89                 key.as_ptr(),
90                 key.len(),
91             )
92         },
93         0
94     );
95 }
96 
97 #[test]
test_crypto_generichash_blake2b_salt_personal()98 fn test_crypto_generichash_blake2b_salt_personal() {
99     let mut out = [0u8; crypto_generichash_blake2b_BYTES as usize];
100     let m = [0u8; 64];
101     let key = [0u8; crypto_generichash_blake2b_KEYBYTES as usize];
102     let salt = [0u8; crypto_generichash_blake2b_SALTBYTES as usize];
103     let personal = [0u8; crypto_generichash_blake2b_PERSONALBYTES as usize];
104 
105     assert_eq!(
106         unsafe {
107             crypto_generichash_blake2b_salt_personal(
108                 out.as_mut_ptr(),
109                 out.len(),
110                 m.as_ptr(),
111                 m.len() as u64,
112                 key.as_ptr(),
113                 key.len(),
114                 salt.as_ptr(),
115                 personal.as_ptr(),
116             )
117         },
118         0
119     );
120 }
121