Cryptography Reference
In-Depth Information
{
unsigned char *output;
int out_len, i;
int secret_len;
int label_len;
int seed_len;
unsigned char *secret;
unsigned char *label;
unsigned char *seed;
if ( argc < 5 )
{
fprintf( stderr,
“usage: %s [0x]<secret> [0x]<label> [0x]<seed> <output len>\n”,
argv[ 0 ] );
exit( 0 );
}
secret_len = hex_decode( argv[ 1 ], &secret );
label_len = hex_decode( argv[ 2 ], &label );
seed_len = hex_decode( argv[ 3 ], &seed );
out_len = atoi( argv[ 4 ] );
output = ( unsigned char * ) malloc( out_len );
PRF( secret, secret_len,
label, label_len,
seed, seed_len,
output, out_len );
for ( i = 0; i < out_len; i++ )
{
printf( “%.02x”, output[ i ] );
}
printf( “\n” );
free( secret );
free( label );
free( seed );
free( output );
return 0;
}
#endif
You can try out the PRF, although it's not earth-shatteringly interesting:
[jdavies@localhost ssl]$ ./prf secret label seed 20
b5baf4722b91851a8816d22ebd8c1d8cc2e94d55
Search WWH ::




Custom Search