我希望能够签署一些数据,然后验证签名;我也想使用CRL。
现在,我正在使用一个小的帮助程序可执行文件(用C语言编写)来完成所有这些工作;我更喜欢在Python中完成整个过程,因为这是系统的其余部分所写的内容。
在帮助程序可执行文件中,我
- 创建商店
- 将系统根CA和我们的根CA加载到商店
- 使用以下方式加载CRL:
crl = d2i_X509_CRL_fp(crl,NULL);
crl = PEM_read_X509_CRL(crl,NULL,NULL,NULL);
X509_VERIFY_PARAM * param = X509_VERIFY_PARAM_new();
X509_VERIFY_PARAM_set_flags(param,X509_V_FLAG_CRL_CHECK);
X509_STORE_set1_param(store,param);
X509_VERIFY_PARAM_free(PARAM);
X509_STORE_add_crl(store,crl);
- 阅读我想要验证的证书
- 根据我之前设置的商店验证所述证书
- 然后根据证书验证签名
我看到Python3.4能够在OpenSSL.crypto中加载CRL,但后来我不知道如何使用它。
我讨厌认为我错过了一些明显的东西,但当然可能。
所以......我呢?如果是这样,是什么?
补充:看起来我有一个过时的pyopenssl版本 - 版本16.1.0为add_crl
类添加了X509Store
方法,这样可以解决我的问题。 (看起来,我错过的显而易见的事情是检查源存储库!)