Я создал запрос 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? –