0
我創建了SAML請求並獲得了SAML服務器的簽名響應。我想使用令牌簽名證書(包含RSA公鑰)來驗證它。OpenSAML C++簽名驗證:從證書中讀取公共密鑰
我正在使用OpenSSL庫從文件加載證書,但我在RSA結構中獲得了一些垃圾值,當我嘗試創建XSECCryptoKey
密鑰時,最終崩潰。
下面是我用來獲取RSA密鑰的示例。
const char* certpath = "sample.cer";
EVP_PKEY *key;
BIO* in=BIO_new(BIO_s_file_internal());
BIO_read_filename(in, certpath);
X509* cer=PEM_read_bio_X509(in, nullptr, nullptr, nullptr);
BIO_free(in);
key = X509_get_pubkey(cer);
XSECCryptoKey* ret=new OpenSSLCryptoKeyRSA(pkey); //crashing, because of improper values in RSA keys (key->pkey.rsa->n,key->pkey.rsa->d etc)
我在這裏做錯了什麼?
您的證書是PEM證書嗎?如果是這樣,你可能想把它包含到問題中。請顯示準確的錯誤,「崩潰」不是一個很好的錯誤描述。 –
任何人都使用CPP實施了證書驗證? –