Cryptography Reference
In-Depth Information
show_hex( h->rep, h->size );
}
static void display_x509_certificate( signed_x509_certificate *certificate )
{
printf( “Certificate details:\n” );
printf( “Version: %d\n”, certificate->tbsCertificate.version );
printf( “Serial number: “ );
print_huge( &certificate->tbsCertificate.serialNumber );
printf( “issuer: “ );
output_x500_name( &certificate->tbsCertificate.issuer );
printf( “subject: “ );
output_x500_name( &certificate->tbsCertificate.subject );
printf( “not before: %s”, asctime( gmtime(
&certificate->tbsCertificate.validity.notBefore ) ) );
printf( “not after: %s”, asctime( gmtime(
&certificate->tbsCertificate.validity.notAfter ) ) );
printf( “Public key algorithm: “ );
switch ( certificate->tbsCertificate.subjectPublicKeyInfo.algorithm )
{
case rsa:
printf( “RSA\n” );
printf( “modulus: “ );
print_huge(
certificate->tbsCertificate.subjectPublicKeyInfo.rsa_public_key.modulus );
printf( “exponent: “ );
print_huge(
certificate->tbsCertificate.subjectPublicKeyInfo.rsa_public_key.exponent );
break;
case dh:
printf( “DH\n” );
break;
default:
printf( “?\n” );
break;
}
printf( “Signature algorithm: “ );
switch ( certificate->algorithm )
{
case md5WithRSAEncryption:
printf( “MD5 with RSA Encryption\n” );
break;
case shaWithRSAEncryption:
printf( “SHA-1 with RSA Encryption\n” );
break;
}
Search WWH ::




Custom Search