package org.bouncycastle.asn1.x509; import java.util.Hashtable; import java.util.Enumeration; import org.bouncycastle.asn1.ASN1Sequence; import org.bouncycastle.asn1.ASN1Encodable; import org.bouncycastle.asn1.ASN1EncodableVector; import org.bouncycastle.asn1.DERObject; import org.bouncycastle.asn1.DERObjectIdentifier; import org.bouncycastle.asn1.DERSequence; /** * PolicyMappings V3 extension, described in RFC3280. *
* PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE { * issuerDomainPolicy CertPolicyId, * subjectDomainPolicy CertPolicyId } ** * @see RFC 3280, section 4.2.1.6 */ public class PolicyMappings extends ASN1Encodable { ASN1Sequence seq = null; /** * Creates a new
PolicyMappings
instance.
*
* @param seq an ASN1Sequence
constructed as specified
* in RFC 3280
*/
public PolicyMappings (ASN1Sequence seq)
{
this.seq = seq;
}
/**
* Creates a new PolicyMappings
instance.
*
* @param mappings a HashMap
value that maps
* String
oids
* to other String
oids.
*/
public PolicyMappings (Hashtable mappings)
{
ASN1EncodableVector dev = new ASN1EncodableVector();
Enumeration it = mappings.keys();
while (it.hasMoreElements())
{
String idp = (String) it.nextElement();
String sdp = (String) mappings.get(idp);
ASN1EncodableVector dv = new ASN1EncodableVector();
dv.add(new DERObjectIdentifier(idp));
dv.add(new DERObjectIdentifier(sdp));
dev.add(new DERSequence(dv));
}
seq = new DERSequence(dev);
}
public DERObject toASN1Object()
{
return seq;
}
}