2 #define TEST_NAME "generichash3"
9 crypto_generichash_blake2b_state st
;
10 unsigned char salt
[crypto_generichash_blake2b_SALTBYTES
]
11 = { '5', 'b', '6', 'b', '4', '1', 'e', 'd',
12 '9', 'b', '3', '4', '3', 'f', 'e', '0' };
13 unsigned char personal
[crypto_generichash_blake2b_PERSONALBYTES
]
14 = { '5', '1', '2', '6', 'f', 'b', '2', 'a',
15 '3', '7', '4', '0', '0', 'd', '2', 'a' };
16 unsigned char in
[MAXLEN
];
17 unsigned char out
[crypto_generichash_blake2b_BYTES_MAX
];
18 unsigned char k
[crypto_generichash_blake2b_KEYBYTES_MAX
];
23 for (h
= 0; h
< crypto_generichash_blake2b_KEYBYTES_MAX
; ++h
) {
24 k
[h
] = (unsigned char) h
;
27 for (i
= 0; i
< MAXLEN
; ++i
) {
28 in
[i
] = (unsigned char) i
;
29 crypto_generichash_blake2b_init_salt_personal(
30 &st
, k
, 1 + i
% crypto_generichash_blake2b_KEYBYTES_MAX
,
31 1 + i
% crypto_generichash_blake2b_BYTES_MAX
, salt
, personal
);
32 crypto_generichash_blake2b_update(&st
, in
, (unsigned long long) i
);
33 crypto_generichash_blake2b_final(
34 &st
, out
, 1 + i
% crypto_generichash_blake2b_BYTES_MAX
);
35 for (j
= 0; j
< 1 + i
% crypto_generichash_blake2b_BYTES_MAX
; ++j
) {
36 printf("%02x", (unsigned int) out
[j
]);
41 memset(out
, 0, sizeof out
);
42 crypto_generichash_blake2b_init_salt_personal(
43 &st
, k
, 0U, crypto_generichash_blake2b_BYTES_MAX
, salt
, personal
);
44 crypto_generichash_blake2b_update(&st
, in
, MAXLEN
);
45 crypto_generichash_blake2b_final(&st
, out
,
46 crypto_generichash_blake2b_BYTES_MAX
);
47 for (j
= 0; j
< crypto_generichash_blake2b_BYTES_MAX
; ++j
) {
48 printf("%02x", (unsigned int) out
[j
]);
52 memset(out
, 0, sizeof out
);
53 crypto_generichash_blake2b_init_salt_personal(
54 &st
, NULL
, 1U, crypto_generichash_blake2b_BYTES_MAX
, salt
, personal
);
55 crypto_generichash_blake2b_update(&st
, in
, MAXLEN
);
56 crypto_generichash_blake2b_final(&st
, out
,
57 crypto_generichash_blake2b_BYTES_MAX
);
58 for (j
= 0; j
< crypto_generichash_blake2b_BYTES_MAX
; ++j
) {
59 printf("%02x", (unsigned int) out
[j
]);
63 memset(out
, 0, sizeof out
);
64 crypto_generichash_blake2b_init_salt_personal(
65 &st
, k
, crypto_generichash_blake2b_KEYBYTES_MAX
,
66 crypto_generichash_blake2b_BYTES_MAX
, NULL
, personal
);
67 crypto_generichash_blake2b_update(&st
, in
, MAXLEN
);
68 crypto_generichash_blake2b_final(&st
, out
,
69 crypto_generichash_blake2b_BYTES_MAX
);
70 for (j
= 0; j
< crypto_generichash_blake2b_BYTES_MAX
; ++j
) {
71 printf("%02x", (unsigned int) out
[j
]);
75 memset(out
, 0, sizeof out
);
76 crypto_generichash_blake2b_init_salt_personal(
77 &st
, k
, crypto_generichash_blake2b_KEYBYTES_MAX
,
78 crypto_generichash_blake2b_BYTES_MAX
, salt
, NULL
);
79 crypto_generichash_blake2b_update(&st
, in
, MAXLEN
);
80 crypto_generichash_blake2b_final(
81 &st
, out
, crypto_generichash_blake2b_BYTES_MAX
);
82 for (j
= 0; j
< crypto_generichash_blake2b_BYTES_MAX
; ++j
) {
83 printf("%02x", (unsigned int) out
[j
]);
87 memset(out
, 0, sizeof out
);
88 crypto_generichash_blake2b_salt_personal(
89 out
, crypto_generichash_blake2b_BYTES_MAX
, in
, MAXLEN
,
90 k
, 0U, salt
, personal
);
91 for (j
= 0; j
< crypto_generichash_blake2b_BYTES_MAX
; ++j
) {
92 printf("%02x", (unsigned int) out
[j
]);
96 memset(out
, 0, sizeof out
);
97 crypto_generichash_blake2b_salt_personal(
98 out
, crypto_generichash_blake2b_BYTES_MAX
, in
, MAXLEN
,
99 NULL
, 0U, salt
, personal
);
100 for (j
= 0; j
< crypto_generichash_blake2b_BYTES_MAX
; ++j
) {
101 printf("%02x", (unsigned int) out
[j
]);
105 memset(out
, 0, sizeof out
);
106 crypto_generichash_blake2b_salt_personal(
107 out
, crypto_generichash_blake2b_BYTES_MAX
, in
, MAXLEN
,
108 k
, crypto_generichash_blake2b_KEYBYTES_MAX
, salt
, personal
);
109 for (j
= 0; j
< crypto_generichash_blake2b_BYTES_MAX
; ++j
) {
110 printf("%02x", (unsigned int) out
[j
]);
114 memset(out
, 0, sizeof out
);
115 crypto_generichash_blake2b_salt_personal(
116 out
, crypto_generichash_blake2b_BYTES_MAX
, in
, MAXLEN
,
117 k
, crypto_generichash_blake2b_KEYBYTES_MAX
, NULL
, personal
);
118 for (j
= 0; j
< crypto_generichash_blake2b_BYTES_MAX
; ++j
) {
119 printf("%02x", (unsigned int) out
[j
]);
123 memset(out
, 0, sizeof out
);
124 crypto_generichash_blake2b_salt_personal(
125 out
, crypto_generichash_blake2b_BYTES_MAX
, in
, MAXLEN
,
126 k
, crypto_generichash_blake2b_KEYBYTES_MAX
, salt
, NULL
);
127 for (j
= 0; j
< crypto_generichash_blake2b_BYTES_MAX
; ++j
) {
128 printf("%02x", (unsigned int) out
[j
]);
132 crypto_generichash_blake2b_init_salt_personal(&st
, NULL
, 0U, crypto_generichash_BYTES
,
134 crypto_generichash_blake2b_update(&st
, in
, MAXLEN
);
135 crypto_generichash_blake2b_final(&st
, out
, crypto_generichash_blake2b_BYTES_MAX
);
136 for (j
= 0; j
< crypto_generichash_blake2b_BYTES_MAX
; ++j
) {
137 printf("%02x", (unsigned int) out
[j
]);
141 crypto_generichash_blake2b_init_salt_personal(&st
, NULL
, 0U, crypto_generichash_BYTES
,
143 crypto_generichash_blake2b_update(&st
, in
, MAXLEN
);
144 crypto_generichash_blake2b_final(&st
, out
, crypto_generichash_blake2b_BYTES_MAX
);
145 for (j
= 0; j
< crypto_generichash_blake2b_BYTES_MAX
; ++j
) {
146 printf("%02x", (unsigned int) out
[j
]);
150 assert(crypto_generichash_blake2b_init_salt_personal(&st
, k
, sizeof k
, crypto_generichash_BYTES
,
151 NULL
, personal
) == 0);
152 assert(crypto_generichash_blake2b_init_salt_personal(&st
, k
, sizeof k
, crypto_generichash_BYTES
,