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实施了证书验证? –