blob: 9405462e7d93a286e30771b6c620c6249fa166c8 [file] [log] [blame]
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):
* <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;
}
/**
* <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);
}
}