1
1
mirror of https://github.com/BLAKE2/BLAKE2 synced 2024-11-07 14:49:17 +01:00

b2s xof unkeyed kats

This commit is contained in:
JP Aumasson 2016-10-11 20:48:16 +02:00
parent ae633ca8e2
commit 73dd9e9038
5 changed files with 37 additions and 6 deletions

@ -159,6 +159,9 @@ extern "C" {
int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
int blake2xs( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
/* This is simply an alias for blake2b */ /* This is simply an alias for blake2b */
int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );

@ -35,7 +35,8 @@ static int blake2bp_init_leaf( blake2b_state *S, size_t outlen, size_t keylen, u
P->fanout = PARALLELISM_DEGREE; P->fanout = PARALLELISM_DEGREE;
P->depth = 2; P->depth = 2;
store32( &P->leaf_length, 0 ); store32( &P->leaf_length, 0 );
store64( &P->node_offset, offset ); store32( &P->node_offset, offset );
store32( &P->xof_length, 0 );
P->node_depth = 0; P->node_depth = 0;
P->inner_length = BLAKE2B_OUTBYTES; P->inner_length = BLAKE2B_OUTBYTES;
memset( P->reserved, 0, sizeof( P->reserved ) ); memset( P->reserved, 0, sizeof( P->reserved ) );
@ -52,7 +53,8 @@ static int blake2bp_init_root( blake2b_state *S, size_t outlen, size_t keylen )
P->fanout = PARALLELISM_DEGREE; P->fanout = PARALLELISM_DEGREE;
P->depth = 2; P->depth = 2;
store32( &P->leaf_length, 0 ); store32( &P->leaf_length, 0 );
store64( &P->node_offset, 0 ); store32( &P->node_offset, 0 );
store32( &P->xof_length, 0 );
P->node_depth = 1; P->node_depth = 1;
P->inner_length = BLAKE2B_OUTBYTES; P->inner_length = BLAKE2B_OUTBYTES;
memset( P->reserved, 0, sizeof( P->reserved ) ); memset( P->reserved, 0, sizeof( P->reserved ) );

@ -34,7 +34,8 @@ static int blake2sp_init_leaf( blake2s_state *S, size_t outlen, size_t keylen, u
P->fanout = PARALLELISM_DEGREE; P->fanout = PARALLELISM_DEGREE;
P->depth = 2; P->depth = 2;
store32( &P->leaf_length, 0 ); store32( &P->leaf_length, 0 );
store48( P->node_offset, offset ); store32( &P->node_offset, offset );
store16( &P->xof_length, 0 );
P->node_depth = 0; P->node_depth = 0;
P->inner_length = BLAKE2S_OUTBYTES; P->inner_length = BLAKE2S_OUTBYTES;
memset( P->salt, 0, sizeof( P->salt ) ); memset( P->salt, 0, sizeof( P->salt ) );
@ -50,7 +51,8 @@ static int blake2sp_init_root( blake2s_state *S, size_t outlen, size_t keylen )
P->fanout = PARALLELISM_DEGREE; P->fanout = PARALLELISM_DEGREE;
P->depth = 2; P->depth = 2;
store32( &P->leaf_length, 0 ); store32( &P->leaf_length, 0 );
store48( P->node_offset, 0ULL ); store32( &P->node_offset, 0ULL );
store16( &P->xof_length, 0ULL );
P->node_depth = 1; P->node_depth = 1;
P->inner_length = BLAKE2S_OUTBYTES; P->inner_length = BLAKE2S_OUTBYTES;
memset( P->salt, 0, sizeof( P->salt ) ); memset( P->salt, 0, sizeof( P->salt ) );

@ -65,6 +65,29 @@ do \
\ \
} while (0) } while (0)
#define MAKE_XOF_KAT(name) \
do \
{ \
printf( "static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n" ); \
\
for( size_t i = 0; i < LENGTH; ++i ) \
{ \
name( hash, i, in, LENGTH, NULL, 0 ); \
printf( "\t{\n\t\t" ); \
\
for( int j = 0; j < i; ++j ) \
printf( "0x%02X%s", hash[j], j && !( ( j + 1 ) % 8 ) ? ",\n\t\t" : ", " ); \
\
for( int j = i; j < LENGTH; ++j ) \
printf( "0x00%s", ( j + 1 ) == LENGTH ? "\n" : j && !( ( j + 1 ) % 8 ) ? ",\n\t\t" : ", " ); \
\
printf( "\t},\n" ); \
} \
\
printf( "};\n\n\n\n\n" ); \
\
} while (0)
int main( int argc, char **argv ) int main( int argc, char **argv )
{ {
@ -90,6 +113,7 @@ int main( int argc, char **argv )
MAKE_KEYED_KAT( blake2sp, BLAKE2S ); MAKE_KEYED_KAT( blake2sp, BLAKE2S );
MAKE_KAT( blake2bp, BLAKE2B ); MAKE_KAT( blake2bp, BLAKE2B );
MAKE_KEYED_KAT( blake2bp, BLAKE2B ); MAKE_KEYED_KAT( blake2bp, BLAKE2B );
MAKE_XOF_KAT( blake2xs );
puts( "#endif" ); puts( "#endif" );
return 0; return 0;
} }

@ -31,8 +31,8 @@ check: blake2s blake2b blake2sp blake2bp blake2xs blake2xb
./blake2xb ./blake2xb
kat: kat:
$(CC) $(CFLAGS) -o genkat-c genkat-c.c blake2b-ref.c blake2s-ref.c blake2sp-ref.c blake2bp-ref.c $(CC) $(CFLAGS) -o genkat-c genkat-c.c blake2b-ref.c blake2s-ref.c blake2sp-ref.c blake2bp-ref.c blake2xs-ref.c blake2xb-ref.c
$(CC) $(CFLAGS) -g -o genkat-json genkat-json.c blake2b-ref.c blake2s-ref.c blake2sp-ref.c blake2bp-ref.c $(CC) $(CFLAGS) -o genkat-json genkat-json.c blake2b-ref.c blake2s-ref.c blake2sp-ref.c blake2bp-ref.c blake2xs-ref.c blake2xb-ref.c
./genkat-c > blake2-kat.h ./genkat-c > blake2-kat.h
./genkat-json > blake2-kat.json ./genkat-json > blake2-kat.json