Я извлек PKCS # 7, отформатированный в ASN1, и хотел бы проверить его цепочку сертификатов (это означает, что каждый сертификат был правильно подписан сертификатом над ним от корня до листа).
В openssl есть следующий API:
int PKCS7_verify(PKCS7 *p7,
STACK_OF(X509) *certs,
X509_STORE *store,
BIO *indata,
BIO *out,
int flags);
Однако у меня нет надежного хранилища сертификатов.
У меня есть отдельная функция, которая проверяет целостность корневого сертификата, и мне этого достаточно.
Предполагая, что я уже доверяю корневому сертификату, зачем мне нужна структура сертификатов хранилища, чтобы убедиться, что цепочка подписана правильно?
Благодарность
X509_cert_verify
, которыйPKCS7_verify
вызывает (если вы не установитеPKCS7_NOVERIFY
, как заметил Рейнье), выполняет довольно полную проверку цепочки, которая намного больше, чем просто проверка подписи каждого сертификата его родителем. Он также проверяет срок действия, несколько расширений, если они есть, особенно BC и KU, и отзыв, если предоставлены списки отзыва сертификатов (что в настоящее время редко). - person dave_thompson_085   schedule 10.11.2018