2015-09-03 6 views
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) 

Что я здесь делаю неправильно?

+0

Является ли ваш сертификат сертификатом PEM? Если это так, вы можете включить его в вопрос. Пожалуйста, покажите точную ошибку, «сбой» не является хорошим описанием ошибки. –

+0

Кто-нибудь выполнил проверку сертификата с помощью CPP? –

ответ

0

Проблема связана с библиотеками openssl. Он отлично работает с версией ssleay32.dll и libeay32.dll (0.98), но не с 1.0.1 и 1.0.2.

Смежные вопросы