使用可选的CRL验证Python中的数字签名

时间:2016-06-05 19:53:57

标签: python openssl signature

我希望能够签署一些数据,然后验证签名;我也想使用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方法,这样可以解决我的问题。 (看起来,我错过的显而易见的事情是检查源存储库!)

0 个答案:

没有答案