一个与python3兼容的gpglib分支,一个用于解密gpg的库,它不向gpg提供外壳。

gpglib2的Python项目详细描述


gpglib2

这是gpglib库中与python3兼容的fork,支持aes 密钥和MDC数据包类型。

历史

早在2012年,我们就找不到解密gpg的库 给GPG。

而且当你为许多小文件做这件事的时候,对gpg的处理速度很慢。

因此,在http://pypi.python.org/pypi/OpenPGP和pycrypto的帮助下,我们创建了 这比炮击更有效。

然后在2017年,一个朋友需要这个图书馆来完成一项任务,但图书馆不是 与Python3相容。很遗憾,我们无法将写访问权限恢复到 原始的gpglib,所以我们创建了一个fork。

变更日志

0.3.1
  • 为cve-2018-15560更新pycryptome
  • 在解密会话密钥时,删除对PyCryptoDome中私有方法的使用
0.3
  • 从pycrypto迁移到pycryptome

安装

要安装,只需使用pip:

$ pip install gpglib2

或者从pypi:http://pypi.python.org/pypi/gpglib2下载。

或者克隆git repo:https://github.com/delfick/gpglib2

制作测试数据

这就是我在测试/数据中获取数据的方法。

来自测试/数据:

$ gpg --full-gen-key --homedir ./gpg
# Once with RSA encrypt and sign, username Stephen and password "password25"
# And again with DSA/Elgamal, username Bobby and password "password25"

然后找到键ID:

$ gpg --homedir ./gpg --list-keys
  ------------------------------------------------------------------------
  pub   rsa2048 2018-08-03 [SC]
        F93E6E1B45D1C037B42650DE52320610E94B004B
  uid           [ultimate] Stephen <stephen@stephen.com>
  sub   rsa2048 2018-08-03 [E]

  pub   dsa2048 2018-08-03 [SC]
        A02F07AF335D3212FEB29C44FF5D18CBDBE4C62B
  uid           [ultimate] Bobby <bobby@bobby.com>
  sub   elg2048 2018-08-03 [E]

# Here, the key we want is "F93E6E1B45D1C037B42650DE52320610E94B004B"

然后使用该keyid导出rsa和dsa密钥的密钥和公钥:

$ export KEY=F93E6E1B45D1C037B42650DE52320610E94B004B
$ gpg --export $KEY > keys/key.public.rsa.gpg
$ gpg --export-secret-key $KEY > keys/key.secret.rsa.gpg

然后我创建了dump.small和dump.big作为随机json结构(上的大是来自http://json.org/example.html)。

然后运行./tests/data/generate_test_data.shtests/encrypted文件夹。

请注意,只有在将generate_test_data.sh编辑为 适应不同的选择。如果你这样做,你还需要 对tests/test_decryption.py执行相同操作,将不同的数据放入 帐户。

测试

安装PIP要求:

$ pip install -e ".[tests]"

然后运行:

$ ./test.sh

目前测试的不多。

请注意,如果还执行pip install tox,则可以使用 通过运行tox

文档

您可以通过进入docs目录并运行 ./build.sh,然后运行python3 -m http.server并导航到 localhost:8000/sphinx/_build/html/

生成的文档也可以在:http://gpglib2.readthedocs.org/en/latest/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java SimpleCursorAdapter删除值   java结束while循环条件   java检查设备是否连接到特定网络   java组织。冬眠MappingException找不到逻辑名称为annotation getter的列   为什么java邮件中会抛出此异常?   加载SDK时发生java Eclipse错误   返回奇怪输出的Java数组   JavaXStream和对象类序列化   将枚举列表传递给namedQuery后出现java非法转换异常。Hibernate中的setParameter()   java Android studio不允许我在字符串上使用开关?   有没有办法从Java程序访问存储在Chrome中的cookie   java在枚举中构造实例而不修改枚举类   java Blackberry JDE FieldChangeListener   java修复错误:未报告的异常InterruptedException   java Spring数据JPA:findAll(具有规范和可分页)在计数查询中失败