<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    ASN.1 Module for transactions

    The following section contains the complete ASN.1 module from RFC 2510, the Certificate
    Management Protocol. Only a small subset of the messages defined in RFC2510 are required
    to implement this specification. The entire module is provided for completeness. Information
    about messages defined by this ASN.1 module but not used in the MISPC may be found in
    RFC2510.
    PKIX-CMP DEFINITIONS ::=
    BEGIN – EXPLICT TAGS
    IMPORTS
    CertReqMessages, EncryptedValue, EncryptedKey
    FROM CMRF
    PKIMessage ::= SEQUENCE {
    Header PKIHeader,
    Body PKIBody,
    Protection [0] PKIProtection OPTIONAL,
    ExtraCerts [1] SEQUENCE SIZE (1..MAX) OF Certificate OPTIONAL
    }
    PKIHeader ::= SEQUENCE {
    pvno INTEGER { ietf-version2 (1) },
    sender GeneralName,
    – identifies the sender
    recipient GeneralName,
    – identifies the intended recipient
    messageTime [0] GeneralizedTime OPTIONAL,
    – time of production of this message (used when sender
    – believes that the transport will be “suitable”; i.e.,
    – that the time will still be meaningful upon receipt)
    protectionAlg [1] AlgorithmIdentifier OPTIONAL,
    – algorithm used for calculation of protection bits
    senderKID [2] KeyIdentifier OPTIONAL,
    recipKID [3] KeyIdentifier OPTIONAL,
    – to identify specific keys used for protection
    transactionID [4] OCTET STRING OPTIONAL,
    – identifies the transaction; i.e., this will be the same in
    – corresponding request, response and confirmation messages
    senderNonce [5] OCTET STRING OPTIONAL,
    recipNonce [6] OCTET STRING OPTIONAL,
    – nonces used to provide replay protection, senderNonce
    – is inserted by the creator of this message; recipNonce
    – is a nonce previously inserted in a related message by
    – the intended recipient of this message
    freeText [7] PKIFreeText OPTIONAL,
    – this may be used to indicate context-specific instructions
    – (this field is intended for human consumption)
    generalInfo [8] SEQUENCE SIZE (1..MAX) OF
    InfoTypeAndValue OPTIONAL
    – this may be used to convey context-specific information
    – (this field not primarily intended for human consumption)
    }
    PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
    – text encoded as UTF-8 String (note: each UTF8String SHOULD
    – include an RFC 1766 language tag to indicate the language
    – of the contained text)
    PKIBody ::= CHOICE { – message-specific body elements
    ir [0] CertReqMessages, –Initialization Request
    ip [1] CertRepMessage, –Initialization Response
    cr [2] CertReqMessages, –Certification Request
    cp [3] CertRepMessage, –Certification Response
    p10cr [4] CertificationRequest, –imported from [PKCS10]
    popdecc [5] POPODecKeyChallContent, –pop Challenge
    popdecr [6] POPODecKeyRespContent, –pop Response
    kur [7] CertReqMessages, –Key Update Request
    kup [8] CertRepMessage, –Key Update Response
    krr [9] CertReqMessages, –Key Recovery Request
    krp [10] KeyRecRepContent, –Key Recovery Response
    rr [11] RevReqContent, –Revocation Request
    rp [12] RevRepContent, –Revocation Response
    ccr [13] CertReqMessages, –Cross-Cert. Request
    ccp [14] CertRepMessage, –Cross-Cert. Response
    ckuann [15] CAKeyUpdAnnContent, –CA Key Update Ann.
    cann [16] CertAnnContent, –Certificate Ann.
    rann [17] RevAnnContent, –Revocation Ann.
    crlann [18] CRLAnnContent, –CRL Announcement
    conf [19] PKIConfirmContent, –Confirmation
    nested [20] NestedMessageContent, –Nested Message
    genm [21] GenMsgContent, –General Message
    genp [22] GenRepContent, –General Response
    error [23] ErrorMsgContent –Error Message
    }
    PKIProtection ::= BIT STRING
    ProtectedPart ::= SEQUENCE {
    header PKIHeader,
    body PKIBody
    }
    PasswordBasedMac ::= OBJECT IDENTIFIER –{1 2 840 113533 7 66 13}
    PBMParameter ::= SEQUENCE {
    salt OCTET STRING,
    owf AlgorithmIdentifier,
    – AlgId for a One-Way Function (SHA-1 recommended)
    iterationCount INTEGER,
    – number of times the OWF is applied
    mac AlgorithmIdentifier
    – the mac AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
    } – or HMAC [RFC2104, RFC2202])
    DHBasedMac ::= OBJECT IDENTIFIER –{1 2 840 113533 7 66 30}
    DHBMParameter ::= SEQUENCE {
    owf AlgorithmIdentifier,
    – AlgId for a One-Way Function (SHA-1 recommended)
    mac AlgorithmIdentifier
    – the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
    } – or HMAC [RFC2104, RFC2202])
    NestedMessageContent ::= PKIMessage
    PKIStatus ::= INTEGER {
    granted (0),
    – you got exactly what you asked for
    grantedWithMods (1),
    – you got something like what you asked for; the
    – requester is responsible for ascertaining the differences
    rejection (2),
    – you don’t get it, more information elsewhere in the message
    waiting (3),
    – the request body part has not yet been processed,
    – expect to hear more later
    revocationWarning (4),
    – this message contains a warning that a revocation is
    – imminent
    revocationNotification (5),
    – notification that a revocation has occurred
    keyUpdateWarning (6)
    – update already done for the oldCertId specified in
    – CertReqMsg
    }
    PKIFailureInfo ::= BIT STRING {
    – since we can fail in more than one way!
    – More codes may be added in the future if/when required.
    badAlg (0),
    – unrecognized or unsupported Algorithm Identifier
    badMessageCheck (1),
    – integrity check failed (e.g., signature did not verify)
    badRequest (2),
    – transaction not permitted or supported
    badTime (3),
    – messageTime was not sufficiently close to the system time,
    – as defined by local policy
    badCertId (4),
    – no certificate could be found matching the provided criteria
    badDataFormat (5),
    – the data submitted has the wrong format
    wrongAuthority (6),
    – the authority indicated in the request is different from the
    – one creating the response token
    incorrectData (7),
    – the requester’s data is incorrect (for notary services)
    missingTimeStamp (8),
    – when the timestamp is missing but should be there (by policy)
    badPoP (9)
    – when proof of possession does not verify
    }
    PKIStatusInfo ::= SEQUENCE {
    status PKIStatus,
    statusString PKIFreeText OPTIONAL,
    failInfo PKIFailureInfo OPTIONAL
    }
    OOBCert ::= Certificate
    OOBCertHash ::= SEQUENCE {
    hashAlg [0] AlgorithmIdentifier OPTIONAL,
    certId [1] CertId OPTIONAL,
    hashVal BIT STRING
    – hashVal is calculated over DER encoding of the
    – subjectPublicKey field of the corresponding cert.
    }
    POPODecKeyChallContent ::= SEQUENCE OF Challenge
    – One Challenge per encryption key certification request (in the
    – same order as these requests appear in CertReqMessages).
    Challenge ::= SEQUENCE {
    owf AlgorithmIdentifier OPTIONAL,
    – MUST be present in the first Challenge; MAY be omitted in any
    – subsequent Challenge in POPODecKeyChallContent (if omitted,
    – then the owf used in the immediately preceding Challenge is
    – to be used).
    witness OCTET STRING,
    – the result of applying the one-way function (owf) to a
    – randomly-generated INTEGER, A. [Note that a different
    – INTEGER MUST be used for each Challenge.]
    challenge OCTET STRING
    – the encryption (under the public key for which the cert.
    – request is being made) of Rand, where Rand is specified as
    – Rand ::= SEQUENCE {
    – int INTEGER,
    – - the randomly-generated INTEGER A (above)
    – sender GeneralName
    – - the sender’s name (as included in PKIHeader)
    – }
    }
    POPODecKeyRespContent ::= SEQUENCE OF INTEGER
    – One INTEGER per encryption key certification request (in the
    – same order as these requests appear in CertReqMessages). The
    – retrieved INTEGER A (above) is returned to the sender of the
    – corresponding Challenge.
    CertRepMessage ::= SEQUENCE {
    caPubs [1] SEQUENCE SIZE (1..MAX) OF Certificate OPTIONAL,
    response SEQUENCE OF CertResponse
    }
    CertResponse ::= SEQUENCE {
    certReqId INTEGER,
    – to match this response with corresponding request (a value
    – of -1 is to be used if certReqId is not specified in the
    – corresponding request)
    status PKIStatusInfo,
    certifiedKeyPair CertifiedKeyPair OPTIONAL,
    rspInfo OCTET STRING OPTIONAL
    – analogous to the id-regInfo-asciiPairs OCTET STRING defined
    – for regInfo in CertReqMsg [CRMF]
    }
    CertifiedKeyPair ::= SEQUENCE {
    certOrEncCert CertOrEncCert,
    privateKey [0] EncryptedValue OPTIONAL,
    publicationInfo [1] PKIPublicationInfo OPTIONAL
    }
    CertOrEncCert ::= CHOICE {
    certificate [0] Certificate,
    encryptedCert [1] EncryptedValue
    }
    KeyRecRepContent ::= SEQUENCE {
    status PKIStatusInfo,
    newSigCert [0] Certificate OPTIONAL,
    caCerts [1] SEQUENCE SIZE (1..MAX) OF
    Certificate OPTIONAL,
    keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
    CertifiedKeyPair OPTIONAL
    }
    RevReqContent ::= SEQUENCE OF RevDetails
    RevDetails ::= SEQUENCE {
    certDetails CertTemplate,
    – allows requester to specify as much as they can about
    – the cert. for which revocation is requested
    – (e.g., for cases in which serialNumber is not available)
    revocationReason ReasonFlags OPTIONAL,
    – the reason that revocation is requested
    badSinceDate GeneralizedTime OPTIONAL,
    – indicates best knowledge of sender
    crlEntryDetails Extensions OPTIONAL
    – requested crlEntryExtensions
    }
    RevRepContent ::= SEQUENCE {
    status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
    – in same order as was sent in RevReqContent
    revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
    – IDs for which revocation was requested (same order as status)
    crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
    – the resulting CRLs (there may be more than one)
    }
    CAKeyUpdAnnContent ::= SEQUENCE {
    oldWithNew Certificate, – old pub signed with new priv
    newWithOld Certificate, – new pub signed with old priv
    newWithNew Certificate – new pub signed with new priv
    }
    CertAnnContent ::= Certificate
    RevAnnContent ::= SEQUENCE {
    status PKIStatus,
    certId CertId,
    willBeRevokedAt GeneralizedTime,
    badSinceDate GeneralizedTime,
    crlDetails Extensions OPTIONAL
    – extra CRL details(e.g., crl number, reason, location, etc.)
    }
    CRLAnnContent ::= SEQUENCE OF CertificateList
    PKIConfirmContent ::= NULL
    InfoTypeAndValue ::= SEQUENCE {
    infoType OBJECT IDENTIFIER,
    infoValue ANY DEFINED BY infoType OPTIONAL
    }
    – Example InfoTypeAndValue contents include, but are not limited to:
    – { CAProtEncCert = {id-it 1}, Certificate }
    – { SignKeyPairTypes = {id-it 2}, SEQUENCE OF AlgorithmIdentifier }
    – { EncKeyPairTypes = {id-it 3}, SEQUENCE OF AlgorithmIdentifier }
    – { PreferredSymmAlg = {id-it 4}, AlgorithmIdentifier }
    – { CAKeyUpdateInfo = {id-it 5}, CAKeyUpdAnnContent }
    – { CurrentCRL = {id-it 6}, CertificateList }
    – where {id-it} = {id-pkix 4} = {1 3 6 1 5 5 7 4}
    – This construct MAY also be used to define new PKIX Certificate
    – Management Protocol request and response messages, or general-
    – purpose (e.g., announcement) messages for future needs or for
    – specific environments.
    GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
    – May be sent by EE, RA, or CA (depending on message content).
    – The OPTIONAL infoValue parameter of InfoTypeAndValue will typically
    – be omitted for some of the examples given above. The receiver is
    – free to ignore any contained OBJ. IDs that it does not recognize.
    – If sent from EE to CA, the empty set indicates that the CA may send
    – any/all information that it wishes.
    GenRepContent ::= SEQUENCE OF InfoTypeAndValue
    – The receiver is free to ignore any contained OBJ. IDs that it does
    – not recognize.
    ErrorMsgContent ::= SEQUENCE {
    pKIStatusInfo PKIStatusInfo,
    errorCode INTEGER OPTIONAL,
    – implementation-specific error codes
    errorDetails PKIFreeText OPTIONAL
    – implementation-specific error details
    }

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类