pooldberry的python包装poly1305_donna
poly1305_donna的Python项目详细描述
Py_Poly1305_唐娜
Poly1305多纳叉子 (https://github.com/floodyberry/poly1305-donna)添加python包装 作为扩展模块
什么是hmac(基于散列的消息身份验证代码)?
来自维基百科 (https://en.wikipedia.org/wiki/Hash-based_message_authentication_code):
在密码学中,密钥哈希消息验证码(HMAC)是 计算消息身份验证代码的特定构造 (mac)包含密码散列函数和 加密密钥。与任何Mac一样,它可能用于 同时验证数据完整性和 一条信息。任何加密哈希函数,如md5或sha-1,都可以是 用于计算hmac;得到的mac算法是 相应地称为HMAC-MD5或HMAC-SHA1。密码强度 hmac取决于底层散列的加密强度。 函数,其哈希输出的大小,以及 钥匙。
什么是poly1305?
poly1305 aes是一种最先进的密钥消息身份验证 适用于各种应用程序的代码。Poly1305 AES计算 任何长度的消息的16字节身份验证器,使用16字节 nonce(唯一消息编号)和32字节密钥。攻击者不能 如果消息发送者发送 身份验证器以及每个消息和消息接收者检查 每个验证者。
许可证:
根据Floodberry的代码许可证,此代码也将发布到 公共领域。请参阅许可证文件。
“floodberry.poly1305_donna”目录包含未修改的 源代码派生自poly1305 donna from https://github.com/floodyberry/poly1305-donna
示例
from poly1305_donna import ( self_test, get_key, authenticate, verify, ) print('Power-On Self Test result: ' + str(self_test())) msg = 'Hello world' print('\nTest class methods - authenticate, verify') kr = get_key() auth = authenticate(kr, msg) bad_kr = get_key() bad_msg = msg + '1' bad_auth = authenticate(kr, bad_msg) print('Good: %s\nBad auth: %s\nBad kr: %s\nBad msg: %s' % ( str(verify(auth, kr, msg)), str(verify(bad_auth, kr, msg)), str(verify(auth, bad_kr, msg)), str(verify(auth, kr, bad_msg)) ))
或者,运行附带的测试脚本:
python -m poly1305_donna.test
运行一个简单的基准:
python -m poly1305_donna.benchmark
安装
使用pip:
pip install 'git+https://github.com/sundarnagarajan/py_poly1305-donna.git'
使用setup.py:
python setup.py install
构建/安装要求
gnu/linux:
- python在2.7.6、3.4.3、pypy 2.7.10(pypy 4.0.1)上进行了测试
- cffi=1.0.0
- 六
- python.h(类debian系统上的libpython dev)
- GCC(在类似Debian的系统上构建Essential)
注释
py_poly1305_donna不提供用于增量更新和 HMAC计算。