Правильное использование OCSP_basic_verify () в openssl?

Я ссылался https://github.com/openssl/openssl/blob/master/apps/ocsp.c создать свою собственную реализацию OCSP и проверить базовый ответ OCSP, как только я получу его от респондента OCSP. Но почему-то, каждую итерацию, которую я запускаю, я получаю ошибку error:27069065:OCSP routines:OCSP_basic_verify:certificate verify error:ocsp_vfy.c:138:Verify error:unable to get issuer certificate, Обратите внимание, что у меня есть данные X509 как сертификата, подлежащего проверке, так и сертификата эмитента, и я использую приведенный ниже код для проверки ответа:

         OCSP_BASICRESP *br = OCSP_response_get1_basic(resp); // where resp is the response received.
STACK_OF(X509)* certs = sk_X509_new_null();
if (!sk_X509_push(certs, issuer)) // issuer X509 known
printf("Failed to add issuer");

X509_STORE* store = X509_STORE_new();
X509_LOOKUP *lookup;
lookup = X509_STORE_add_lookup(store, X509_LOOKUP_file());
lookup = X509_STORE_add_lookup(store, X509_LOOKUP_hash_dir());
X509_STORE_add_cert(store,issuer);
ret_val = OCSP_basic_verify(br, certs, store, 0);
if (ret_val <= 0) {
printf("Response Verify Failure: %d", ret_val);

Для приведенного выше кода я продолжаю получать ret_val как 0, и ошибка, упомянутая выше, регистрируется. Тем не менее я получаю правильный ответ от респондента OCSP, и состояние сертификата хорошее. Осталось только исправить звонок OCSP_basic_verify, Может кто-нибудь указать, где я могу пойти не так? Благодарю.

1

Решение

Ответ в соответствии с @Castaglia.

Проблема заключалась в том, что OCSP_basic_verify продолжает цикл до тех пор, пока не найдет корневой CA. Но так как сертификат, который я добавил, был просто промежуточным сертификатом, проверка не прошла. Как только я добавил всю цепочку, вызов OCSP_basic_verify начал проходить через

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]