package org.bouncycastle.asn1.cmp;

import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1EncodableVector;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DERSequence;

Example InfoTypeAndValue contents include, but are not limited to, the following (un-comment in this ASN.1 module and use as appropriate for a given environment):
  id-it-caProtEncCert    OBJECT IDENTIFIER ::= {id-it 1}
     CAProtEncCertValue      ::= CMPCertificate
  id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
    SignKeyPairTypesValue   ::= SEQUENCE OF AlgorithmIdentifier
  id-it-encKeyPairTypes  OBJECT IDENTIFIER ::= {id-it 3}
    EncKeyPairTypesValue    ::= SEQUENCE OF AlgorithmIdentifier
  id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
     PreferredSymmAlgValue   ::= AlgorithmIdentifier
  id-it-caKeyUpdateInfo  OBJECT IDENTIFIER ::= {id-it 5}
     CAKeyUpdateInfoValue    ::= CAKeyUpdAnnContent
  id-it-currentCRL       OBJECT IDENTIFIER ::= {id-it 6}
     CurrentCRLValue         ::= CertificateList
  id-it-unsupportedOIDs  OBJECT IDENTIFIER ::= {id-it 7}
     UnsupportedOIDsValue    ::= SEQUENCE OF OBJECT IDENTIFIER
  id-it-keyPairParamReq  OBJECT IDENTIFIER ::= {id-it 10}
     KeyPairParamReqValue    ::= OBJECT IDENTIFIER
  id-it-keyPairParamRep  OBJECT IDENTIFIER ::= {id-it 11}
     KeyPairParamRepValue    ::= AlgorithmIdentifer
  id-it-revPassphrase    OBJECT IDENTIFIER ::= {id-it 12}
     RevPassphraseValue      ::= EncryptedValue
  id-it-implicitConfirm  OBJECT IDENTIFIER ::= {id-it 13}
     ImplicitConfirmValue    ::= NULL
  id-it-confirmWaitTime  OBJECT IDENTIFIER ::= {id-it 14}
     ConfirmWaitTimeValue    ::= GeneralizedTime
  id-it-origPKIMessage   OBJECT IDENTIFIER ::= {id-it 15}
     OrigPKIMessageValue     ::= PKIMessages
  id-it-suppLangTags     OBJECT IDENTIFIER ::= {id-it 16}
     SuppLangTagsValue       ::= SEQUENCE OF UTF8String
where
  id-pkix OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3)
     dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
and
     id-it   OBJECT IDENTIFIER ::= {id-pkix 4}
/** * Example InfoTypeAndValue contents include, but are not limited * to, the following (un-comment in this ASN.1 module and use as * appropriate for a given environment): * <pre> * id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1} * CAProtEncCertValue ::= CMPCertificate * id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2} * SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier * id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3} * EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier * id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4} * PreferredSymmAlgValue ::= AlgorithmIdentifier * id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5} * CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent * id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6} * CurrentCRLValue ::= CertificateList * id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7} * UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER * id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10} * KeyPairParamReqValue ::= OBJECT IDENTIFIER * id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11} * KeyPairParamRepValue ::= AlgorithmIdentifer * id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12} * RevPassphraseValue ::= EncryptedValue * id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13} * ImplicitConfirmValue ::= NULL * id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14} * ConfirmWaitTimeValue ::= GeneralizedTime * id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15} * OrigPKIMessageValue ::= PKIMessages * id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16} * SuppLangTagsValue ::= SEQUENCE OF UTF8String * * where * * id-pkix OBJECT IDENTIFIER ::= { * iso(1) identified-organization(3) * dod(6) internet(1) security(5) mechanisms(5) pkix(7)} * and * id-it OBJECT IDENTIFIER ::= {id-pkix 4} * </pre> */
public class InfoTypeAndValue extends ASN1Object { private ASN1ObjectIdentifier infoType; private ASN1Encodable infoValue; private InfoTypeAndValue(ASN1Sequence seq) { infoType = ASN1ObjectIdentifier.getInstance(seq.getObjectAt(0)); if (seq.size() > 1) { infoValue = (ASN1Encodable)seq.getObjectAt(1); } } public static InfoTypeAndValue getInstance(Object o) { if (o instanceof InfoTypeAndValue) { return (InfoTypeAndValue)o; } if (o != null) { return new InfoTypeAndValue(ASN1Sequence.getInstance(o)); } return null; } public InfoTypeAndValue( ASN1ObjectIdentifier infoType) { this.infoType = infoType; this.infoValue = null; } public InfoTypeAndValue( ASN1ObjectIdentifier infoType, ASN1Encodable optionalValue) { this.infoType = infoType; this.infoValue = optionalValue; } public ASN1ObjectIdentifier getInfoType() { return infoType; } public ASN1Encodable getInfoValue() { return infoValue; }
InfoTypeAndValue ::= SEQUENCE {
                        infoType               OBJECT IDENTIFIER,
                        infoValue              ANY DEFINED BY infoType  OPTIONAL
}
Returns:a basic ASN.1 object representation.
/** * <pre> * InfoTypeAndValue ::= SEQUENCE { * infoType OBJECT IDENTIFIER, * infoValue ANY DEFINED BY infoType OPTIONAL * } * </pre> * @return a basic ASN.1 object representation. */
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(infoType); if (infoValue != null) { v.add(infoValue); } return new DERSequence(v); } }