Hi I am trying to extract the public key from the below signed certificate received in memory, from the server. Now I have tried to extract the public key using
----- BEGIN BLOCK DATA -----
/QIAADCCAvUwggKboAMCAQICCCCbF5IJGbo6MAoGCCqGSM49BAMCMFkxCzA
JBgNVBAYTAlVTMSUwIwYDVQQKDBxIb25leXdlbGwgSW50ZXJuYXRpb25hbC
BJbmMuMQwwCgYDVQQLDANBQ1MxFTATBgNVBAMMDFNoYXJlZCBRQSBDQTAgF
w0xODEyMDUwNjE4NTBaGA85OTk5MDIwMTAwMDAwMFowXTELMAkGA1UEBhMC
VVMxJTAjBgNVBAoTHEhvbmV5d2VsbCBJbnRlcm5hdGlvbmFsIEluYy4xDDA
KBgNVBAsTA0hCVDEZMBcGA1UEAxMQSVJNTjQtQ29udHJvbGxlcjBZMBMGBy
qGSM49AgEGCCqGSM49AwEHA0IABBVx/MplfIo9MH9Y6sZcPPOuJayHxuBKC
o7DEbLA/ChS99uyO6q+Lo3ik75CuU8dGtRQBMwNALtofVtGW8VzJtyjggFF
MIIBQTAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFIoKOx1wakkJN2+NAMX
fIahFb64NMDwGCCsGAQUFBwEBBDAwLjAsBggrBgEFBQcwAYYgaHR0cDovL3
FocHBraS5ob25leXdlbGwuY29tL29jc3AwSQYDVR0gBEIwQDA+BgwrBgEEA
YGkBgIBAQEwLjAsBggrBgEFBQcCARYgaHR0cHM6Ly9xaHBwa2kuaG9uZXl3
ZWxsLmNvbS9jcHMwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwQAYDVR0fBDk
wNzA1oDOgMYYvaHR0cDovL3FocHBraS5ob25leXdlbGwuY29tL2NybC9TaG
FyZWRRQUNBMi5jcmwwHQYDVR0OBBYEFA0eOtWYB7bCyivOv1RpdNIzYDOxM
A4GA1UdDwEB/wQEAwIDiDAKBggqhkjOPQQDAgNIADBFAiBa2F0I+H1annJg
8pLMPF+dr0q66iD0ILrVAwr0zn9B0QIhAJzjnQD6uUVhGMKEeml3C4DujSs
b+0746rFJt8fKyqR5grESYg==
----- END BLOCK DATA -----
I have implemented the below code, to extract. But parsing itself is failing.
mbedtls_x509_crt cert_mbedtls_format;
mbedtls_x509_crt_init( &cert_mbedtls_format );
// mbedtls_pk_init( &key );
//
ret = mbedtls_x509_crt_parse( &cert_mbedtls_format,
rdata, //Contains the Base64 decoded certificate
4096 );
if ( ret != 0 )
{
return -1; //Code is failing here it self
}
// memcpy(publicKey, (unsigned char *)key.pk_info, (size_t)(key.pk_info));
ret = mbedtls_pk_parse_public_key( &cert_mbedtls_format.pk, publicKey, 1024 );
if( ret != 0 )
{
mbedtls_printf( " failed\n ! " );
goto exit;
}
Please explain me once receiving the signed certificate (I hope it is Base64 decoded). How to extract the above certificate and get the public key.