CBOR对象签名和加密(COSE)实现

cose的Python项目详细描述


在皮科斯:蛇:---CBOR对象签名和加密

Build StatuspyversionDocumentation Status

这个项目是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)的消息的有效负载。在

此外,根据消息类型,还可以添加其他消息字段:

  • MACsignature(对于MAC0Sign1消息)
  • COSE recipientsCOSE signatures(对于MACEncryptSign消息)

密码学

项目依赖于pyca/cryptography进行所有加密操作,除了确定性的ECDSA算法。对于确定性ECDSA,cose使用python-ecdsa。在

文件

有关COSE和coseAPI的更多文档可以在:https://pycose.readthedocs.io

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

推荐PyPI第三方库


热门话题
java什么数据库最类似于Map,每个用户/id存储无限多个“键”和“值”?   java仅使用super pom进行测试   内存不足如何解析java。OutOfMemoryError:Java堆空间在增加堆大小的情况下将意味着延迟OutOfMemoryError   来自另一个类的mysql和java jdbc调用[运行时应用程序]   java通过下拉菜单更改搜索框搜索的内容   JAVAlang.ClassNotFoundException:sun。jdbc。odbc。JdbcOdbcDriver   java Selenium点击链接   JavaSpringHibernate:从唯一值列表中获取对象列表   java Bing广告与桌面身份验证问题   java如何在没有任何外部SDK的情况下从安卓打印到收据打印机?   未调用java菜单片段类   java在IDEA和PyCharm中同时为同一个项目工作   java我们如何为同一个异常提供不同的海关信息   jakarta ee中是否预定义了“请求”和“响应”变量或值?   java更好地解决“之前和之后”难题?   尝试将数据从Excel添加到Java   发送电子邮件的Java代码只适用于一个电子邮件id?   java如何从资产解析XML?