Top Description Interfaces Classes
module bcutil

Package org.bouncycastle.asn1.cmc


Support classes for Certificate Management over CMS (CMC) - RFC 5272 and RFC 6402.

Interface Summary

Modifier and TypeInterface and Description
public interface
CMCObjectIdentifiers

Object Identifiers from RFC 5272

Class Summary

Modifier and TypeClass and Description
public class
BodyPartID

      bodyIdMax INTEGER ::= 4294967295

      BodyPartID ::= INTEGER(0..bodyIdMax)
public class
BodyPartList

  BodyPartList ::= SEQUENCE SIZE (1..MAX) OF BodyPartID
public class
BodyPartPath

   BodyPartPath ::= SEQUENCE SIZE (1..MAX) OF BodyPartID
public class
BodyPartReference

BodyPartReference ::= CHOICE {
   bodyPartID           BodyPartID,
   bodyPartPath         BodyPartPath
}
public class
CertificationRequest

  CertificationRequest ::= SEQUENCE {
    certificationRequestInfo  SEQUENCE {
      version                   INTEGER,
      subject                   Name,
      subjectPublicKeyInfo      SEQUENCE {
         algorithm                 AlgorithmIdentifier,
         subjectPublicKey          BIT STRING },
      attributes                [0] IMPLICIT SET OF Attribute },
   signatureAlgorithm        AlgorithmIdentifier,
   signature                 BIT STRING
 }
public class
CMCFailInfo

CMCFailInfo ::= INTEGER {
    badAlg          (0),
    badMessageCheck (1),
    badRequest      (2),
    badTime         (3),
    badCertId       (4),
    unsupportedExt  (5),
    mustArchiveKeys (6),
    badIdentity     (7),
    popRequired     (8),
    popFailed       (9),
    noKeyReuse      (10),
    internalCAError (11),
    tryLater        (12),
    authDataFail    (13)
}
public class
CMCPublicationInfo

      CMCPublicationInfo ::= SEQUENCE {
           hashAlg                      AlgorithmIdentifier,
           certHashes                   SEQUENCE OF OCTET STRING,
           pubInfo                      PKIPublicationInfo
 }

public class
CMCStatus


CMCStatus ::= INTEGER {
   success         (0),
   failed          (2),
   pending         (3),
   noSupport       (4),
   confirmRequired (5),
   popRequired     (6),
   partial         (7)
}
public class
CMCStatusInfo

-- Used to return status state in a response

id-cmc-statusInfo OBJECT IDENTIFIER ::= {id-cmc 1}

CMCStatusInfo ::= SEQUENCE {
    cMCStatus       CMCStatus,
    bodyList        SEQUENCE SIZE (1..MAX) OF BodyPartID,
    statusString    UTF8String OPTIONAL,
    otherInfo        CHOICE {
      failInfo         CMCFailInfo,
      pendInfo         PendInfo } OPTIONAL
}
public class
public class
CMCStatusInfoV2

--  Replaces CMC Status Info
--

id-cmc-statusInfoV2 OBJECT IDENTIFIER ::= {id-cmc 25}

CMCStatusInfoV2 ::= SEQUENCE {
 cMCStatus             CMCStatus,
 bodyList              SEQUENCE SIZE (1..MAX) OF BodyPartReference,
 statusString          UTF8String OPTIONAL,
 otherStatusInfo             OtherStatusInfo OPTIONAL
}

OtherStatusInfo ::= CHOICE {
 failInfo              CMCFailInfo,
 pendInfo              PendInfo,
 extendedFailInfo      ExtendedFailInfo
}

PendInfo ::= SEQUENCE {
pendToken           OCTET STRING,
pendTime            GeneralizedTime
}

ExtendedFailInfo ::= SEQUENCE {
failInfoOID            OBJECT IDENTIFIER,
failInfoValue          ANY DEFINED BY failInfoOID
}
public class
public class
CMCUnsignedData

     id-aa-cmc-unsignedData OBJECT IDENTIFIER ::= {id-aa 34}

     CMCUnsignedData ::= SEQUENCE {
            bodyPartPath        BodyPartPath,
            identifier          OBJECT IDENTIFIER,
            content             ANY DEFINED BY identifier
     }
public class
ControlsProcessed

-- Inform follow on servers that one or more controls have already been
-- processed

id-cmc-controlProcessed OBJECT IDENTIFIER ::= {id-cmc 32}

ControlsProcessed ::= SEQUENCE {
    bodyList              SEQUENCE SIZE(1..MAX) OF BodyPartReference
}
public class
DecryptedPOP

     id-cmc-decryptedPOP OBJECT IDENTIFIER ::= {id-cmc 10}

      DecryptedPOP ::= SEQUENCE {
           bodyPartID      BodyPartID,
           thePOPAlgID     AlgorithmIdentifier,
           thePOP          OCTET STRING
      }
public class
EncryptedPOP

     id-cmc-encryptedPOP OBJECT IDENTIFIER ::= {id-cmc 9}

     EncryptedPOP ::= SEQUENCE {
             request       TaggedRequest,
             cms             ContentInfo,
             thePOPAlgID     AlgorithmIdentifier,
             witnessAlgID    AlgorithmIdentifier,
             witness         OCTET STRING
     }
public class
ExtendedFailInfo

ExtendedFailInfo ::= SEQUENCE { failInfoOID OBJECT IDENTIFIER, failInfoValue ANY DEFINED BY failInfoOID }

public class
ExtensionReq

  ExtensionReq ::= SEQUENCE SIZE (1..MAX) OF Extension
public class
GetCert

     id-cmc-getCert OBJECT IDENTIFIER ::= {id-cmc 15}

     GetCert ::= SEQUENCE {
          issuerName      GeneralName,
          serialNumber    INTEGER }
public class
GetCRL

id-cmc-getCRL OBJECT IDENTIFIER ::= {id-cmc 16}

GetCRL ::= SEQUENCE {
   issuerName    Name,
   cRLName       GeneralName OPTIONAL,
   time          GeneralizedTime OPTIONAL,
   reasons       ReasonFlags OPTIONAL }
public class
IdentityProofV2

     id-cmc-identityProofV2 OBJECT IDENTIFIER ::= { id-cmc 34 }
     identityProofV2 ::= SEQUENCE {
         proofAlgID       AlgorithmIdentifier,
         macAlgId         AlgorithmIdentifier,
         witness          OCTET STRING
     }
public class
LraPopWitness

id-cmc-lraPOPWitness OBJECT IDENTIFIER ::= {id-cmc 11}

LraPopWitness ::= SEQUENCE {
    pkiDataBodyid   BodyPartID,
    bodyIds         SEQUENCE OF BodyPartID
}
public class
ModCertTemplate

id-cmc-modCertTemplate OBJECT IDENTIFIER ::= {id-cmc 31}

ModCertTemplate ::= SEQUENCE {
   pkiDataReference             BodyPartPath,
   certReferences               BodyPartList,
   replace                      BOOLEAN DEFAULT TRUE,
   certTemplate                 CertTemplate
}
public class
OtherMsg

OtherMsg ::= SEQUENCE {
    bodyPartID        BodyPartID,
    otherMsgType      OBJECT IDENTIFIER,
    otherMsgValue     ANY DEFINED BY otherMsgType }
public class
OtherStatusInfo

Other info implements the choice component of CMCStatusInfoV2.

public class
PendInfo

PendInfo ::= SEQUENCE {
   pendToken        OCTET STRING,
   pendTime         GeneralizedTime
}
public class
PKIData

PKIData ::= SEQUENCE {
controlSequence    SEQUENCE SIZE(0..MAX) OF TaggedAttribute,
reqSequence        SEQUENCE SIZE(0..MAX) OF TaggedRequest,
cmsSequence        SEQUENCE SIZE(0..MAX) OF TaggedContentInfo,
otherMsgSequence   SEQUENCE SIZE(0..MAX) OF OtherMsg
}
public class
PKIResponse

   --  This defines the response message in the protocol
 id-cct-PKIResponse OBJECT IDENTIFIER ::= { id-cct 3 }

ResponseBody ::= PKIResponse

PKIResponse ::= SEQUENCE {
    controlSequence   SEQUENCE SIZE(0..MAX) OF TaggedAttribute,
    cmsSequence       SEQUENCE SIZE(0..MAX) OF TaggedContentInfo,
    otherMsgSequence  SEQUENCE SIZE(0..MAX) OF OtherMsg
}
public class
PopLinkWitnessV2

     id-cmc-popLinkWitnessV2 OBJECT IDENTIFIER ::= { id-cmc 33 }
     PopLinkWitnessV2 ::= SEQUENCE {
          keyGenAlgorithm   AlgorithmIdentifier,
          macAlgorithm      AlgorithmIdentifier,
          witness           OCTET STRING
     }
public class
PublishTrustAnchors


PublishTrustAnchors ::= SEQUENCE {
    seqNumber      INTEGER,
    hashAlgorithm  AlgorithmIdentifier,
    anchorHashes     SEQUENCE OF OCTET STRING
}
public class
RevokeRequest

RevokeRequest ::= SEQUENCE {
    issuerName            Name,
    serialNumber          INTEGER,
    reason                CRLReason,
    invalidityDate         GeneralizedTime OPTIONAL,
    passphrase            OCTET STRING OPTIONAL,
    comment               UTF8String OPTIONAL }
public class
TaggedAttribute

TaggedAttribute from RFC5272

TaggedAttribute ::= SEQUENCE {
bodyPartID         BodyPartID,
attrType           OBJECT IDENTIFIER,
attrValues         SET OF AttributeValue
}
public class
TaggedCertificationRequest

      TaggedCertificationRequest ::= SEQUENCE {
                 bodyPartID            BodyPartID,
                 certificationRequest  CertificationRequest
      }
public class
TaggedContentInfo

TaggedContentInfo ::= SEQUENCE {
      bodyPartID              BodyPartID,
      contentInfo             ContentInfo
}
public class
TaggedRequest

      TaggedRequest ::= CHOICE {
            tcr               [0] TaggedCertificationRequest,
            crm               [1] CertReqMsg,
            orm               [2] SEQUENCE {
            bodyPartID            BodyPartID,
            requestMessageType    OBJECT IDENTIFIER,
            requestMessageValue   ANY DEFINED BY requestMessageType
     }
 }
pack-priv class