解析X509v3证书和PKCS7签名
x509的Python项目详细描述
这是原始项目的分叉:
py3x509 - Python library for parsing X.509 Copyright (C) 2009-2012 CZ.NIC, z.s.p.o. (http://www.nic.cz)
- 从https://github.com/ph4r05/px509 分叉
- 从https://github.com/erny/pyx509 分叉
- 从https://github.com/hiviah/pyx509 分叉
由我更新将模块重命名为“x509”,并仅更新为python3。
Copyright (C) 2017 <siege@siege.org> (https://github.com/cniemira/py3x509)
正在工作!
说明
这可能是python中最完整的x.509证书解析器。
密码在阿尔法阶段!不要用在敏感的东西上。我写的(基于 之前的工作)因为没有全面的python解析器 X.509证书。python程序员常常不得不解析openssl输出。
优势
- 我发现使用它比解析'openssl x509'的输出更痛苦 与openssl相比,扩展解析更加严格
缺点
- 它比openssl慢(大约是rhel的openssl-1.0-fips的2.3倍)
- 目前在rdns中接受的字符串类型不是很严格
- api仍然相当难看,而且还没有文档;代码在某些方面很糟糕 Places(还有一些像pkcs7/verifier.py这样的挂起的旧代码)
依赖关系
- Pyasn1=0.1.7
安装
使用pip安装:
pip install py3x509
许可证
lgpl v2或更高版本。
请参阅license.txt。
已知的错误和怪癖
- 主题替代名称不显示所有子类型, 但支持“dns”、“dirname”和“email”。
- 名称约束不区分不同的generalname子类型
- 当以字符串格式放置时,某些扩展不会很好地显示出来
- 并非所有扩展都受支持
- 为各种rdn子元素接受的字符串类型过于宽松
- RDN字符串转换不符合RFC 4514
- 如果未标记为严重,则忽略格式错误的扩展
- 易于切换到更严格的行为
- 其他客户端也这样做;rfc 5280指定未知的行为 附录B.1中的扩展元素,但不包括所有情况(例如 元素存在,但字符串类型与规格不同)
待办事项
- 清理:这个模块有自己的pyasn1模型。看我们能不能 重用pyasn1_modules.rfc2459 x509 cert模型。
- 清除:当前,签名验证程序不工作。