GLOME协议的Python实现
pyglome的Python项目详细描述
皮格洛姆
这不是官方支持的谷歌产品。
这个存储库包含GLOME的Python实现 协议。你可以在pyglome文件夹中找到这个库。测试 文件可以在测试文件夹中找到。在
Python API
要求
- Python>;=3.6
- pyca/加密技术>;=2.5
示例
我们提供了一个简单的使用示例。为了让爱丽丝和鲍勃交流, 第一步是生成一些新的密钥:
importpyglomealice_keys=pyglome.generate_keys()bob_keys=pyglome.generate_keys()
假设Alice知道Bob的public_key
,并想向Bob发送消息
msg
之前没有共享过其他消息。爱丽丝需要:
Alice将向Bob发送msg
,first_tag
以及Alice的公钥。
在Bob的一端,他需要执行以下操作:
glome=pyglome.Glome(alice_keys.public,bob_keys.private)try:glome.check(first_tag,msg,counter=0)exceptpyglome.TagCheckErrorastag_error:## Handle the exception.## do what you have to do
密钥生成。
如果您想使用预先存在的键,它应该与格式匹配
X25519Private/PublicKey
在{a1}中提供。
这样的键可以很容易地从bytes对象中读取,如下所示:
fromcryptography.hazmat.primitives.asymmetricimportx25519my_private_key=x25519.X25519PrivateKey.from_private_bytes(private_key_bytes)my_public_key=x25519.X25519PublicKey.from_private_bytes(public_key_bytes)
我们提供一个密钥生成函数generate_keys
,它使用这些方法来
从os.urandom
字节创建新密钥对。在
文档
有关更多信息,请参阅代码内文档。在
测试
在test文件夹中,我们有实现基于unittest的测试类的脚本。要运行所有测试,请使用:
python -m test
从这个目录。如果只想执行特定的测试模块,请运行:
python -m test.my_module_name
其中my_module_name
是要执行的测试模块的名称(不带.py的文件名)。在
- 项目
标签: