Cryptography Reference
In-Depth Information
else
{
exponent_len = sizeof( TestPrivateKey );
exponent = TestPrivateKey;
}
}
public_key.modulus = ( huge * ) malloc( sizeof( huge ) );
public_key.exponent = ( huge * ) malloc( sizeof( huge ) );
private_key.modulus = ( huge * ) malloc( sizeof( huge ) );
private_key.exponent = ( huge * ) malloc( sizeof( huge ) );
if ( !strcmp( argv[ 1 ], “-e” ) )
{
unsigned char *encrypted;
int encrypted_len;
load_huge( public_key.modulus, modulus, modulus_len );
load_huge( public_key.exponent, exponent, exponent_len );
encrypted_len = rsa_encrypt( data, data_len, &encrypted, &public_key );
show_hex( encrypted, encrypted_len );
free( encrypted );
}
else if ( !strcmp( argv[ 1 ], “-d” ) )
{
int decrypted_len;
unsigned char *decrypted;
load_huge( private_key.modulus, modulus, modulus_len );
load_huge( private_key.exponent, exponent, exponent_len );
decrypted_len = rsa_decrypt( data, data_len, &decrypted, &private_key );
show_hex( decrypted, decrypted_len );
free( decrypted );
}
else
{
fprintf( stderr, “unrecognized option flag '%s'\n”, argv[ 1 ] );
}
free( data );
if ( argc == 5 )
{
free( modulus );
free( exponent );
}
}
#endif
Search WWH ::




Custom Search