Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/BLAKE2/BLAKE2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'ref/genkat-json.c')
-rw-r--r--ref/genkat-json.c56
1 files changed, 55 insertions, 1 deletions
diff --git a/ref/genkat-json.c b/ref/genkat-json.c
index f230928..4482b76 100644
--- a/ref/genkat-json.c
+++ b/ref/genkat-json.c
@@ -75,12 +75,62 @@ do \
}\
} while (0)
+#define MAKE_XOF_KAT(name) \
+do \
+{ \
+ for( size_t i = 1; i <= LENGTH; ++i ) \
+ { \
+ printf("\n{\n");\
+ \
+ printf(" \"hash\": \"" #name "\",\n");\
+ printf(" \"in\": \"");\
+ for( int j = 0; j < i; ++j ) printf( "%02x", in[j]);\
+ \
+ printf( "\",\n" ); \
+ printf(" \"key\": \"\",\n");\
+ printf(" \"out\": \"");\
+ \
+ name( hash, i, in, LENGTH, NULL, 0 ); \
+ \
+ for( int j = 0; j < i; ++j ) \
+ printf( "%02x", hash[j]);\
+ printf( "\"\n" ); \
+ printf( "}," ); \
+ }\
+} while (0)
+
+#define MAKE_XOF_KEYED_KAT(name,size_prefix) \
+do \
+{ \
+ for( size_t i = 1; i <= LENGTH; ++i ) \
+ { \
+ printf("\n{\n");\
+ \
+ printf(" \"hash\": \"" #name "\",\n");\
+ printf(" \"in\": \"");\
+ for( int j = 0; j < LENGTH; ++j ) printf( "%02x", in[j]);\
+ \
+ printf( "\",\n" ); \
+ printf(" \"key\": \"");\
+ for( int j = 0; j < size_prefix ## _KEYBYTES; ++j ) printf( "%02x", key[j]);\
+ printf("\",\n");\
+ printf(" \"out\": \"");\
+ \
+ name( hash, i, in, LENGTH, key, size_prefix ## _KEYBYTES ); \
+ \
+ for( int j = 0; j < i; ++j ) \
+ printf( "%02x", hash[j]);\
+ printf( "\"\n" ); \
+ printf( "}," ); \
+ }\
+} while (0)
+
int main( int argc, char **argv )
{
uint8_t key[64] = {0};
uint8_t in[LENGTH] = {0};
- uint8_t hash[64] = {0};
+ uint8_t hash[LENGTH] = {0};
for( size_t i = 0; i < sizeof( in ); ++i )
in[i] = i;
@@ -97,6 +147,10 @@ int main( int argc, char **argv )
MAKE_KEYED_KAT( blake2sp, BLAKE2S );
MAKE_KAT( blake2bp, BLAKE2B );
MAKE_KEYED_KAT( blake2bp, BLAKE2B );
+ MAKE_XOF_KAT( blake2xs );
+ MAKE_XOF_KEYED_KAT( blake2xs, BLAKE2S );
+ MAKE_XOF_KAT( blake2xb );
+ MAKE_XOF_KEYED_KAT( blake2xb, BLAKE2B );
printf("\n]\n");
fflush(stdout);
return 0;