AuthorityInformationAccess.java revision 2ad60cfc28e14ee8f0bb038720836a4696c478ad
1package org.bouncycastle.asn1.x509; 2 3import org.bouncycastle.asn1.ASN1Encodable; 4import org.bouncycastle.asn1.ASN1EncodableVector; 5import org.bouncycastle.asn1.ASN1Sequence; 6import org.bouncycastle.asn1.DERObject; 7import org.bouncycastle.asn1.DERObjectIdentifier; 8import org.bouncycastle.asn1.DERSequence; 9 10/** 11 * The AuthorityInformationAccess object. 12 * <pre> 13 * id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 } 14 * 15 * AuthorityInfoAccessSyntax ::= 16 * SEQUENCE SIZE (1..MAX) OF AccessDescription 17 * AccessDescription ::= SEQUENCE { 18 * accessMethod OBJECT IDENTIFIER, 19 * accessLocation GeneralName } 20 * 21 * id-ad OBJECT IDENTIFIER ::= { id-pkix 48 } 22 * id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 } 23 * id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 } 24 * </pre> 25 */ 26public class AuthorityInformationAccess 27 extends ASN1Encodable 28{ 29 private AccessDescription[] descriptions; 30 31 public static AuthorityInformationAccess getInstance( 32 Object obj) 33 { 34 if (obj instanceof AuthorityInformationAccess) 35 { 36 return (AuthorityInformationAccess)obj; 37 } 38 else if (obj instanceof ASN1Sequence) 39 { 40 return new AuthorityInformationAccess((ASN1Sequence)obj); 41 } 42 43 throw new IllegalArgumentException("unknown object in factory"); 44 } 45 46 public AuthorityInformationAccess( 47 ASN1Sequence seq) 48 { 49 descriptions = new AccessDescription[seq.size()]; 50 51 for (int i = 0; i != seq.size(); i++) 52 { 53 descriptions[i] = AccessDescription.getInstance(seq.getObjectAt(i)); 54 } 55 } 56 57 /** 58 * create an AuthorityInformationAccess with the oid and location provided. 59 */ 60 public AuthorityInformationAccess( 61 DERObjectIdentifier oid, 62 GeneralName location) 63 { 64 descriptions = new AccessDescription[1]; 65 66 descriptions[0] = new AccessDescription(oid, location); 67 } 68 69 70 /** 71 * 72 * @return the access descriptions contained in this object. 73 */ 74 public AccessDescription[] getAccessDescriptions() 75 { 76 return descriptions; 77 } 78 79 public DERObject toASN1Object() 80 { 81 ASN1EncodableVector vec = new ASN1EncodableVector(); 82 83 for (int i = 0; i != descriptions.length; i++) 84 { 85 vec.add(descriptions[i]); 86 } 87 88 return new DERSequence(vec); 89 } 90 91 public String toString() 92 { 93 return ("AuthorityInformationAccess: Oid(" + this.descriptions[0].getAccessMethod().getId() + ")"); 94 } 95} 96