1
package org.bouncycastle.asn1.x509;
3
import org.bouncycastle.asn1.ASN1Encodable;
4
import org.bouncycastle.asn1.ASN1EncodableVector;
5
import org.bouncycastle.asn1.ASN1Sequence;
6
import org.bouncycastle.asn1.DEREncodable;
7
import org.bouncycastle.asn1.DERObject;
8
import org.bouncycastle.asn1.DERIA5String;
9
import org.bouncycastle.asn1.DERObjectIdentifier;
10
import org.bouncycastle.asn1.DERSequence;
13
* Policy qualifiers, used in the X509V3 CertificatePolicies
17
* PolicyQualifierInfo ::= SEQUENCE {
18
* policyQualifierId PolicyQualifierId,
19
* qualifier ANY DEFINED BY policyQualifierId }
22
public class PolicyQualifierInfo
25
private DERObjectIdentifier policyQualifierId;
26
private DEREncodable qualifier;
29
* Creates a new <code>PolicyQualifierInfo</code> instance.
31
* @param policyQualifierId a <code>PolicyQualifierId</code> value
32
* @param qualifier the qualifier, defined by the above field.
34
public PolicyQualifierInfo(
35
DERObjectIdentifier policyQualifierId,
36
DEREncodable qualifier)
38
this.policyQualifierId = policyQualifierId;
39
this.qualifier = qualifier;
43
* Creates a new <code>PolicyQualifierInfo</code> containing a
46
* @param cps the CPS (certification practice statement) uri as a
47
* <code>String</code>.
49
public PolicyQualifierInfo(
52
policyQualifierId = PolicyQualifierId.id_qt_cps;
53
qualifier = new DERIA5String (cps);
57
* Creates a new <code>PolicyQualifierInfo</code> instance.
59
* @param as <code>PolicyQualifierInfo</code> X509 structure
60
* encoded as an ASN1Sequence.
62
public PolicyQualifierInfo(
67
throw new IllegalArgumentException("Bad sequence size: "
71
policyQualifierId = DERObjectIdentifier.getInstance(as.getObjectAt(0));
72
qualifier = as.getObjectAt(1);
75
public static PolicyQualifierInfo getInstance(
78
if (as instanceof PolicyQualifierInfo)
80
return (PolicyQualifierInfo)as;
82
else if (as instanceof ASN1Sequence)
84
return new PolicyQualifierInfo((ASN1Sequence)as);
87
throw new IllegalArgumentException("unknown object in getInstance.");
91
public DERObjectIdentifier getPolicyQualifierId()
93
return policyQualifierId;
96
public DEREncodable getQualifier()
102
* Returns a DER-encodable representation of this instance.
104
* @return a <code>DERObject</code> value
106
public DERObject toASN1Object()
108
ASN1EncodableVector dev = new ASN1EncodableVector();
109
dev.add(policyQualifierId);
112
return new DERSequence(dev);