Commit 602a8973 by Manuel Pégourié-Gonnard

### ECDSA : test vectors from RFC 4754

parent d1c7150b
 ... ... @@ -218,3 +218,49 @@ static int rnd_pseudo_rand( void *rng_state, unsigned char *output, size_t len ) return( 0 ); } /** * This function returns a buffer given as a hex string. * * The buffer is reversed so that the following are equivalent: * mpi_fill_random( x, len, not_rnd, str ); * mpi_read_string( x, 16, str ); * (So, not random at all. Usefull to match test vectors.) * Based on unhexify(), just reversed (changes marked by "sic") */ static int not_rnd( void *in, unsigned char *out, size_t len ) { unsigned char *obuf; const char *ibuf = in; unsigned char c, c2; assert( len == strlen(ibuf) / 2 ); assert(!(strlen(ibuf) %1)); // must be even number of bytes obuf = out + (len - 1); // sic while (*ibuf != 0) { c = *ibuf++; if( c >= '0' && c <= '9' ) c -= '0'; else if( c >= 'a' && c <= 'f' ) c -= 'a' - 10; else if( c >= 'A' && c <= 'F' ) c -= 'A' - 10; else assert( 0 ); c2 = *ibuf++; if( c2 >= '0' && c2 <= '9' ) c2 -= '0'; else if( c2 >= 'a' && c2 <= 'f' ) c2 -= 'a' - 10; else if( c2 >= 'A' && c2 <= 'F' ) c2 -= 'A' - 10; else assert( 0 ); *obuf-- = ( c << 4 ) | c2; // sic } return( 0 ); }