一个与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.sh在 tests/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/