Может ли кто-нибудь сказать мне, как цепочка доверия сертификатов формируется с помощью этих структур и что представляют собой эти две структуры?
в чем разница между X509_STORE и X509_STORE_CTX.?
Ответы (1)
Взято из исходного кода в x509vfy.h:
X509_STORE содержит таблицы и т. д. для проверки. X509_STORE_CTX используется при проверке одного сертификата. X509_STORE имеет X509_LOOKUP для поиска сертификатов. Затем X509_STORE вызывает функцию для фактической проверки цепочки сертификатов.
X509_STORE представляет более или менее вашу глобальную настройку проверки сертификата, где вы храните промежуточные сертификаты и CRL. Хранилище можно использовать несколько раз, тогда как вы настраиваете X509_STORE_CTX только для выполнения одной проверки, после чего вы отбрасываете/освобождаете его.
Думайте о X509_STORE как о своей конфигурации, а о X509_STORE_CTX — как о одноразовом объекте с отслеживанием состояния.
Если вы хотите убедиться в этом сами, я рекомендую скачать исходники и взглянуть на app/verify.c.