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之前没有共享过其他消息。爱丽丝需要:

^{pr2}$

Alice将向Bob发送msgfirst_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的文件名)。在

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

推荐PyPI第三方库


热门话题
NetBeans中的Java Swing滚动窗格   java如何与具有复合键的表建立关系?   Android中读取文件时java数据丢失   java黄瓜场景。embed在ubuntu机器上不工作?   java从spring mvc控制器操作中,我如何获得请求/响应的访问权限?   java减去两个长值   java选择下一个值firebase 安卓   用于起始和结尾连字符的java正则表达式   Java正则表达式解释   java Lifefay freemarker ADT:方法不可用?   java我怎样才能让我的开关盒作用于JFrame?   java在我的场景中使用连接池的理想方式是什么   java我如何接受jsoup的cookies?   java如何将整数数组更改为字符串数组?   java Android操作\u指针\u向上直到剩余触摸移动时才调用   java为什么gradle会出错?   io如何在java中复制/拆分输入流?   java使JButton不可见,但尊重其原始空间   java Spring提交表单获取复选框值不起作用