1
package org.bouncycastle.asn1.cmp;
3
import org.bouncycastle.asn1.ASN1Encodable;
4
import org.bouncycastle.asn1.ASN1EncodableVector;
5
import org.bouncycastle.asn1.ASN1Sequence;
6
import org.bouncycastle.asn1.DERObject;
7
import org.bouncycastle.asn1.DERObjectIdentifier;
8
import org.bouncycastle.asn1.DERSequence;
11
* Example InfoTypeAndValue contents include, but are not limited
12
* to, the following (un-comment in this ASN.1 module and use as
13
* appropriate for a given environment):
15
* id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
16
* CAProtEncCertValue ::= CMPCertificate
17
* id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
18
* SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
19
* id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
20
* EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
21
* id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
22
* PreferredSymmAlgValue ::= AlgorithmIdentifier
23
* id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
24
* CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
25
* id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
26
* CurrentCRLValue ::= CertificateList
27
* id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
28
* UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
29
* id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
30
* KeyPairParamReqValue ::= OBJECT IDENTIFIER
31
* id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
32
* KeyPairParamRepValue ::= AlgorithmIdentifer
33
* id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
34
* RevPassphraseValue ::= EncryptedValue
35
* id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
36
* ImplicitConfirmValue ::= NULL
37
* id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
38
* ConfirmWaitTimeValue ::= GeneralizedTime
39
* id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
40
* OrigPKIMessageValue ::= PKIMessages
41
* id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
42
* SuppLangTagsValue ::= SEQUENCE OF UTF8String
46
* id-pkix OBJECT IDENTIFIER ::= {
47
* iso(1) identified-organization(3)
48
* dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
50
* id-it OBJECT IDENTIFIER ::= {id-pkix 4}
53
public class InfoTypeAndValue
56
private DERObjectIdentifier infoType;
57
private ASN1Encodable infoValue;
59
private InfoTypeAndValue(ASN1Sequence seq)
61
infoType = DERObjectIdentifier.getInstance(seq.getObjectAt(0));
65
infoValue = (ASN1Encodable)seq.getObjectAt(1);
69
public static InfoTypeAndValue getInstance(Object o)
71
if (o instanceof InfoTypeAndValue)
73
return (InfoTypeAndValue)o;
76
if (o instanceof ASN1Sequence)
78
return new InfoTypeAndValue((ASN1Sequence)o);
81
throw new IllegalArgumentException("Invalid object: " + o.getClass().getName());
84
public InfoTypeAndValue(
85
DERObjectIdentifier infoType)
87
this.infoType = infoType;
88
this.infoValue = null;
91
public InfoTypeAndValue(
92
DERObjectIdentifier infoType,
93
ASN1Encodable optionalValue)
95
this.infoType = infoType;
96
this.infoValue = optionalValue;
99
public DERObjectIdentifier getInfoType()
104
public ASN1Encodable getInfoValue()
111
* InfoTypeAndValue ::= SEQUENCE {
112
* infoType OBJECT IDENTIFIER,
113
* infoValue ANY DEFINED BY infoType OPTIONAL
116
* @return a basic ASN.1 object representation.
118
public DERObject toASN1Object()
120
ASN1EncodableVector v = new ASN1EncodableVector();
124
if (infoValue != null)
129
return new DERSequence(v);