001package org.apache.commons.ssl.org.bouncycastle.asn1.crmf; 002 003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector; 004import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Integer; 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 008import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 009import org.apache.commons.ssl.org.bouncycastle.asn1.x509.GeneralName; 010 011public class SinglePubInfo 012 extends ASN1Object 013{ 014 private ASN1Integer pubMethod; 015 private GeneralName pubLocation; 016 017 private SinglePubInfo(ASN1Sequence seq) 018 { 019 pubMethod = ASN1Integer.getInstance(seq.getObjectAt(0)); 020 021 if (seq.size() == 2) 022 { 023 pubLocation = GeneralName.getInstance(seq.getObjectAt(1)); 024 } 025 } 026 027 public static SinglePubInfo getInstance(Object o) 028 { 029 if (o instanceof SinglePubInfo) 030 { 031 return (SinglePubInfo)o; 032 } 033 034 if (o != null) 035 { 036 return new SinglePubInfo(ASN1Sequence.getInstance(o)); 037 } 038 039 return null; 040 } 041 042 public GeneralName getPubLocation() 043 { 044 return pubLocation; 045 } 046 047 /** 048 * <pre> 049 * SinglePubInfo ::= SEQUENCE { 050 * pubMethod INTEGER { 051 * dontCare (0), 052 * x500 (1), 053 * web (2), 054 * ldap (3) }, 055 * pubLocation GeneralName OPTIONAL } 056 * </pre> 057 * @return a basic ASN.1 object representation. 058 */ 059 public ASN1Primitive toASN1Primitive() 060 { 061 ASN1EncodableVector v = new ASN1EncodableVector(); 062 063 v.add(pubMethod); 064 065 if (pubLocation != null) 066 { 067 v.add(pubLocation); 068 } 069 070 return new DERSequence(v); 071 } 072}