CBOR对象签名和加密(COSE)实现
cose的Python项目详细描述
在皮科斯:蛇:---CBOR对象签名和加密
这个项目是ietfcbor编码消息语法(COSE)的Python实现。COSE已经达到RFC状态,现在可以通过RFC 8152获得。在
安装
$ pip install cose
:warning:warning:warning::在PyPI上有一个名为pycose
的包,其中包含来自此存储库的旧代码。因为我不是维护者,所以我不能更新或删除这个包。在
什么是COSE?在
CBOR编码消息语法(COSE)是一种用于简洁表示小消息RFC 8152的数据格式。COSE针对低功耗设备进行了优化。这些信息可以加密、加密和签名。有6种不同类型的COSE消息:
- Encrypt0:带有单个收件人的加密COSE消息。负载和AAD由共享的CEK(内容加密密钥)保护
- Encrypt:加密的COSE邮件可以有多个收件人。对于每个收件人,CEK用KEK(密钥加密密钥)加密—使用AES密钥包装—并添加到消息中。在
- MAC0:具有一个收件人的已验证COSE消息。在
- MAC:经过身份验证的COSE消息,可以有多个收件人。对于每个收件人,身份验证密钥用KEK加密并添加到消息中。在
- Sign0:带有单个签名的签名COSE消息。在
- Sign:由多个实体签名的COSE消息(每个签名都以COSE签名结构进行,并添加到消息中)。在
基本COSE消息由2个informationbucket和有效载荷:
- Protected header:此消息字段包含需要保护的信息。在加密、计算MAC或签名时,会考虑到这些信息。在
- Unprotected header:未保护标头中包含的信息不受加密算法的保护。在
- Payload:包含由加密算法保护(mac'ed、signed或encrypted)的消息的有效负载。在
此外,根据消息类型,还可以添加其他消息字段:
- MAC或signature(对于MAC0或Sign1消息)
- COSE recipients或COSE signatures(对于MAC、Encrypt和Sign消息)
密码学
项目依赖于pyca/cryptography进行所有加密操作,除了确定性的ECDSA算法。对于确定性ECDSA,cose
使用python-ecdsa。在
文件
有关COSE和cose
API的更多文档可以在:https://pycose.readthedocs.io
- 项目
标签: