001package org.apache.commons.ssl.org.bouncycastle.asn1.esf; 002 003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector; 004import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object; 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 007import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 008 009public class SigPolicyQualifiers 010 extends ASN1Object 011{ 012 ASN1Sequence qualifiers; 013 014 public static SigPolicyQualifiers getInstance( 015 Object obj) 016 { 017 if (obj instanceof SigPolicyQualifiers) 018 { 019 return (SigPolicyQualifiers) obj; 020 } 021 else if (obj instanceof ASN1Sequence) 022 { 023 return new SigPolicyQualifiers(ASN1Sequence.getInstance(obj)); 024 } 025 026 return null; 027 } 028 029 private SigPolicyQualifiers( 030 ASN1Sequence seq) 031 { 032 qualifiers = seq; 033 } 034 035 public SigPolicyQualifiers( 036 SigPolicyQualifierInfo[] qualifierInfos) 037 { 038 ASN1EncodableVector v = new ASN1EncodableVector(); 039 for (int i=0; i < qualifierInfos.length; i++) 040 { 041 v.add(qualifierInfos[i]); 042 } 043 qualifiers = new DERSequence(v); 044 } 045 046 /** 047 * Return the number of qualifier info elements present. 048 * 049 * @return number of elements present. 050 */ 051 public int size() 052 { 053 return qualifiers.size(); 054 } 055 056 /** 057 * Return the SigPolicyQualifierInfo at index i. 058 * 059 * @param i index of the info of interest 060 * @return the info at index i. 061 */ 062 public SigPolicyQualifierInfo getInfoAt( 063 int i) 064 { 065 return SigPolicyQualifierInfo.getInstance(qualifiers.getObjectAt(i)); 066 } 067 068 /** 069 * <pre> 070 * SigPolicyQualifiers ::= SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo 071 * </pre> 072 */ 073 public ASN1Primitive toASN1Primitive() 074 { 075 return qualifiers; 076 } 077}