在Python 3中阅读PKCS12

时间:2018-10-27 15:14:03

标签: python openssl

在我的国家/地区,我必须拥有p12证书才能签署电子发票。 P12证书将以二进制形式保存在后端数据库字段中。我正在尝试使用openssl的加密来加载和读取此证书,这就是我正在做的事情:

   try:
        import xmlsig
        from OpenSSL import crypto
    except(ImportError, IOError) as err:
        logging.info(err)

测试1

我收到错误OSError:[Errno 36]文件名太长:

certificate = crypto.load_pkcs12(open(cert, 'rb').read(), password)

测试2

我也收到错误OSError:[Errno 36]文件名过长:

certificado2 = base64UTF8Decoder(cert)
 with open(certificado2, 'rb') as b:
priv2 = b.read()

如果我设置了一个断点并检查certificado2变量,我会看到类似的内容(文本被截断)

b'MIIaJAIBAzCCGd4GCSqGSIb3DQEHAaCCGc8EghnLMIIZxzCCBaQGCSqGSIb3DQEHAaCCBZUEggWRMIIFjTCCBYkGCyqGSIb3DQEMCgECoIIE + jCCBPYwKAYKKoZIhvcNAQwBAzAaBBRANQaKOUnWUARlyWJyTV2SGI1DeAICBAAEggTIjecE65xQM3Od + qMZmof5l + WLGEklcL9TsTKq5mBVP + Lf2OX3sAwzfsXzMICL5hAkCGzKvtrnsSjN + QAbvxRsqMMpMa6XImDQwsglVOjkg +'

我也尝试在读取或打开证书之前对base64.decode进行解码,但是会引发相同的错误

任何帮助将不胜感激

谢谢

0 个答案:

没有答案
相关问题