拆解一份“权限证书”

属性证书定义如下:
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         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值