相关疑难解决方法(0)

DER编码 - 如何将隐式标记转换为显式标记

我有一个X.509证书,其中包含一组带有以下IMPLICIT [0]标记的数据:

A0 81 C6 (value)...
Run Code Online (Sandbox Code Playgroud)

我从标准文件中摘录了这些内容:

IMPLICIT [0]标记不用于DER编码,而是使用EXPLICIT SET OF标记.也就是说,必须包含EXPLICIT SET OF标记的DER编码,而不是IMPLICIT [0]标记的DER编码以及值的长度和内容八位字节.

我已经做了很多搜索,但我无法弄清楚标准要求的确切内容.我正在寻找一些澄清.

编辑:这是我遵循的标准:http://tools.ietf.org/html/rfc3852

我正在尝试验证X.509签名,我需要计算消息摘要来执行此操作.此证书包含SignerInfo类型中的可选SignedAttributes.我已经对签名内容进行了哈希处理,并验证了SignedAttributes中的消息摘要是否正确.该标准规定,如果存在SignedAttributes,则应对其进行散列和加密以创建证书的签名.该标准还说,应该按照原始问题中的讨论更改SignedAttributes的标记.

这是SignerInfo的Asn.1语法:

SignerInfo ::= SEQUENCE {
        version CMSVersion,
        sid SignerIdentifier,
        digestAlgorithm DigestAlgorithmIdentifier,
        signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL,
        signatureAlgorithm SignatureAlgorithmIdentifier,
        signature SignatureValue,
        unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL }

SignerIdentifier ::= CHOICE {
        issuerAndSerialNumber IssuerAndSerialNumber,
        subjectKeyIdentifier [0] SubjectKeyIdentifier }

SignedAttributes ::= SET SIZE (1..MAX) OF Attribute

UnsignedAttributes ::= SET SIZE (1..MAX) OF Attribute

Attribute ::= SEQUENCE {
        attrType OBJECT IDENTIFIER,
        attrValues SET OF …
Run Code Online (Sandbox Code Playgroud)

tags encryption encoding cryptography x509

2
推荐指数
1
解决办法
2179
查看次数

标签 统计

cryptography ×1

encoding ×1

encryption ×1

tags ×1

x509 ×1