属性证书定义如下:
AttributeCertificate::=SIGNED{AttributeCertificateInfo}
AttributeCertificateInfo::=SEQUENCE
{
version AttCertVersion DEFAULT v1,
holder Holder,
issuer AttCertIssuer,
signature AlgorithmIdentifier,
serialNumber CertificateSerialNumber,
attrCertValidityPeriod AttCertValidityPeriod,
attributes SEQUENCE OF Attribute,
issuerUniqueID UniqueIdentifier OPTIONAL,
extensions Extensions OPTIONAL
}
AttCertVersion ::=INTEGER{v1(0),v2(1)}
Holder ::= SEQUENCE
{
baseCertificateID [0] IssuerSerial OPTIONAL,
--持有者公钥证书的发布者及序列号
entityName [1] GeneralNames OPTIONAL,
--实体或角色名
objectDigestInfo [2] ObjectDigestInfo OPTIONAL
--如果存在,则版本号必须为v2
-baseCertificateID,entityName或objectDigestInfo必须至少存在一个}
ObjectDigestInfo::=SEQUENCE{
digestedObjectType ENUMERATED{
publicKey (0),
publicKeyCert (1),
otherObjectTypes (2)
},
otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
digestAlgorithm AlgorithmIdentifier,
objectDigest BIT STRING
}
AttCertIssuer::=CHOICE{
v1Form GeneralNames, -- v1 或 v2
v2Form [0] V2Form - 只有在版本2中
}
V2Form::=SEQUENCE{
issuerName GeneralNames OPTIONAL,
baseCertificateID [0] IssuerSerial OPTIONAL,
objectDigestInfo [1] ObjectDigestInfo OPTIONAL
}
--至少存在一个成分
(WITH COMPONENTS{...,issuerName PRESENT}|
WITH COMPONENTS{...,baseCertificate IDPRESENT}|
WITH COMPONENTS{...,objectDigestInfo PRESENT})
IssuerSerial ::= SEQUENCE{
issuer GeneralNames,
serial CertificateSerialNumber,
issuerUID UniqueIdentifierOPTIONAL
}
AttCertValidityPeriod ::= SEQUENCE{
notBeforeTime GeneralizedTime,
notAfterTime GeneralizedTime}
GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
GeneralName ::= CHOICE {
otherName [0] AnotherName,
rfc822Name [1] IA5String,
dNSName [2] IA5String,
x400Address [3] ORAddress,
directoryName [4] Name,
ediPartyName [5] EDIPartyName,
uniformResourceIdentifier [6] IA5String,
iPAddress [7] OCTET STRING,
registeredID [8] OBJECT IDENTIFIER }
30 82 03 64 AttributeCertificate::=SIGNED{AttributeCertificateInfo}
30 82 02 cd AttributeCertificateInfo::=SEQUENCE
02 01 01 version
30 81 c0 Holder
a0 4d baseCertificateID [0] IssuerSerial OPTIONAL,
30 48 IssuerSerial ::= SEQUENCE{
a4 46 issuer GeneralName,
31 13 30 11 06 03 55 04 03 1e 0a 6d 4b 8b d5 00 20 00 43 00 41
31 0f 30 0d 06 03 55 04 07 1e 06 6d 77 6d c0 53 3a
31 0f 30 0d 06 03 55 04 08 1e 06 53 17 4e ac 5e 02
31 0d 30 0b 06 03 55 04 06 1e 04 4e 2d 56 fd
02 01 01 serial CertificateSerialNumber,
/*唯一ID没选*/
a1 48 entityName [1] GeneralNames OPTIONAL,
a4 46 GeneralName
31 13 30 11 06 03 55 04 03 1e 0a 6d 4b 8b d5 00 20 00 43 00 41
31 0f 30 0d 06 03 55 04 07 1e 06 6d 77 6d c0 53 3a
31 0f 30 0d 06 03 55 04 08 1e 06 53 17 4e ac 5e 02
31 0d 30 0b 06 03 55 04 06 1e 04 4e 2d 56 fd
a2 25 objectDigestInfo [2] ObjectDigestInfo OPTIONAL 如果存在,则版本号必须为v2
0a 01 01 digestedObjectType ENUMERATED
30 09 digestAlgorithm AlgorithmIdentifier,
06 05 2b 0e 03 02 1a 05 00
03 15 objectDigest BIT STRING
00 df b9 d7 36 a4 a6 51 0e 0d fe 08 a9 0d 8b 5d ac 9b bd 45 36
30 78 AttCertIssuer::=CHOICE{
a4 76 v1Form GeneralNames, -- v1 或 v2
31 12 30 10 06 03 55 04 03 0c 09 e6 b5 8b e8 af 95 e5 91 98
31 18 30 16 06 03 55 04 0b 0c 0f e7 a0 94 e7 a9 b6 e5 bc 80 e5 8f 91 e9 83 a8
31 13 30 11 06 03 55 04 0a 13 0a 43 79 62 65 72 4e 75 6d 65 6e
31 12 30 10 06 03 55 04 07 0c 09 e6 b5 b7 e6 b7 80 e5 8c ba
31 10 30 0e 06 03 55 04 08 13 07 62 65 69 6a 69 6e 67
31 0b 30 09 06 03 55 04 06 13 02 63 6e
30 0d 06 09 2a 86 48 86 f7 0d 01 01 05 05 00 AlgorithmIdentifier,
02 04 00 bc 61 4e CertificateSerialNumber,
30 22 AttCertValidityPeriod,
18 0f 32 30 30 33 30 33 30 32 31 30 33 34 32 33 5a
18 0f 32 30 30 33 30 34 30 32 31 30 33 34 32 33 5a
30 82 01 50 SEQUENCE OF Attribute
30 82 01 4c
06 03 55 04 48 id-at-role
31 82 01 43
30 81 9e
a0 81 8d
a4 81 8a
31 26 30 24 06 03 55 04 03 0c 1d 57 69 6e 64 6f 77 73 20 e5 b1 80 e5 9f 9f e7 bd 91 e6 8e 88 e6 9d 83 e4 b8 ad e5 bf 83
31 18 30 16 06 03 55 04 0b 0c 0f e7 a0 94 e7 a9 b6 e5 bc 80 e5 8f 91 e9 83 a8
31 13 30 11 06 03 55 04 0a 13 0a 43 79 62 65 72 4e 75 6d 65 6e
31 12 30 10 06 03 55 04 07 0c 09 e6 b5 b7 e6 b7 80 e5 8c ba
31 10 30 0e 06 03 55 04 08 13 07 62 65 69 6a 69 6e 67
31 0b 30 09 06 03 55 04 06 13 02 63 6e
81 0c 44 6f 6d 61 69 6e 20 41 64 6d 69 6e
30 81 9f
a0 81 8d
a4 81 8a
31 26 30 24 06 03 55 04 03 0c 1d 57 69 6e 64 6f 77 73 20 e5 b1 80 e5 9f 9f e7 bd 91 e6 8e 88 e6 9d 83 e4 b8 ad e5 bf 83
31 18 30 16 06 03 55 04 0b 0c 0f e7 a0 94 e7 a9 b6 e5 bc 80 e5 8f 91 e9 83 a8
31 13 30 11 06 03 55 04 0a 13 0a 43 79 62 65 72 4e 75 6d 65 6e
31 12 30 10 06 03 55 04 07 0c 09 e6 b5 b7 e6 b7 80 e5 8c ba
31 10 30 0e 06 03 55 04 08 13 07 62 65 69 6a 69 6e 67
31 0b 30 09 06 03 55 04 06 13 02 63 6e
81 0d 41 64 6d 69 6e 69 73 74 72 61 74 6f 72
issuerUniqueID UniqueIdentifier OPTIONAL,
extensions Extensions OPTIONAL
30 0d 06 09 2a 86 48 86 f7 0d 01 01 05 05 00
03 81 81 00 70 a8 a1 95 35 fc 1b 12 a8 4a 07 be 6b 3e b7 8b
00 a4 96 3e b4 30 17 d7 59 c4 46 c0 2d 96 ee 75 4c 93 a0 ba
c8 e6 58 31 3c fb 34 eb 8e ec a4 c0 be 38 06 b1 d4 c2 b8 65
21 a4 41 ab 1a ae b5 73 b5 82 e9 37 95 fb 5f 1f 01 ba 68 77
07 7a 05 23 8e e3 76 1a c9 48 fb 9a ad 1f a4 29 99 06 9b fe
7a a3 80 79 73 25 e0 d9 2b e8 a3 85 3e 54 44 f9 70 3c 6a 21
70 00 04 a5 38 da b7 4c d7 d9 b6 00