X509_STORE和X509_STORE_CTX有什么区别?

Bal*_*gan 8 openssl digital-certificate truststore x509certificate x509

任何人都可以告诉我如何使用这些结构形成证书信任链以及这两种结构代表什么?

emb*_*oss 10

取自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.