密码消息语法(CMS)详解与签名数据示例
1. 密码消息语法(CMS)概述
密码消息语法(Cryptographic Message Syntax,简称 CMS)为加密或签名的数据提供了一种封装语法。它的一个显著特点是允许不同类型的保护机制嵌套使用,例如签名消息可以作为加密消息的明文,或者加密消息可以被签名。此外,签名消息还可以附带属性,这些属性会包含在最终的签名中。
CMS 最初定义于 RSA Security 的 PKCS #7 中,后来被纳入 RFC 标准,目前由 RFC 3852 表示。在 Bouncy Castle API 中,有两个包专门用于 CMS:
- org.bouncycastle.cms :包含处理涉及加密、签名和压缩消息的创建及其处理的高级类。
- org.bouncycastle.asn1.cms :是一组低级类,为 CMS ASN.1 模块中定义的 ASN.1 结构提供 Java 对象等效物。
2. 基本 CMS 结构
CMS 的基本结构是 ContentInfo 对象,它最初源自 PKCS #7。其定义如下:
ContentInfo ::= SEQUENCE {
ContentType ContentType,
content [0] EXPLICIT ANY DEFINED BY contentType
}
ContentType ::= OBJECT IDENTIFIER
ContentInfo 结构的作
超级会员免费看
订阅专栏 解锁全文
264

被折叠的 条评论
为什么被折叠?



