公開鍵とモジュロを格納するx509形式の証明書は次のとおりです。
const unsigned char *certificateDataBytes = {/*data*/};
OpenSSLとCを使用して、RSAオブジェクトに変換するにはどうすればよいですか?私はいくつかの方法を試しましたが、それを動作させることができませんRSA_public_encrypt
RSA *構造への公開鍵を意味していると思います。
証明書はバイト単位であるため、DER でエンコードされたバイトの場合は、最初に X509 * 構造に変換する必要があります。
X509 * cert;
EVP_PKEY * pubkey;
//length is the length of the certificateDataBytes in terms of bytes.
cert = d2i_x509 (NULL, certificateDataBytes, length);
pubkey = X509_get_pubkey (cert);
証明書に RSA 公開鍵がある場合は、次のようにして RSA 公開鍵を取得できます。
RSA * rsa
rsa = EVP_PKEY_get1_RSA(pubkey);
//Now rsa contains RSA public key. Use it.
//After use, free the pubkey
EVP_PKEY_free (pubkey);
これがあなたの目的を解決することを願っています。証明書のエンコーディングが異なる場合は、別の関数を使用してください。X509 * を取得したら、残りの手順は同じです。