| /* GENERATED SOURCE. DO NOT MODIFY. */ |
| package com.android.internal.org.bouncycastle.asn1.x509; |
| |
| import com.android.internal.org.bouncycastle.asn1.ASN1Encodable; |
| import com.android.internal.org.bouncycastle.asn1.ASN1EncodableVector; |
| import com.android.internal.org.bouncycastle.asn1.ASN1Integer; |
| import com.android.internal.org.bouncycastle.asn1.ASN1Object; |
| import com.android.internal.org.bouncycastle.asn1.ASN1Primitive; |
| import com.android.internal.org.bouncycastle.asn1.ASN1Sequence; |
| import com.android.internal.org.bouncycastle.asn1.ASN1TaggedObject; |
| import com.android.internal.org.bouncycastle.asn1.DERBitString; |
| import com.android.internal.org.bouncycastle.asn1.DERSequence; |
| |
| /** |
| * @hide This class is not part of the Android public SDK API |
| */ |
| public class AttributeCertificateInfo |
| extends ASN1Object |
| { |
| private ASN1Integer version; |
| private Holder holder; |
| private AttCertIssuer issuer; |
| private AlgorithmIdentifier signature; |
| private ASN1Integer serialNumber; |
| private AttCertValidityPeriod attrCertValidityPeriod; |
| private ASN1Sequence attributes; |
| private DERBitString issuerUniqueID; |
| private Extensions extensions; |
| |
| public static AttributeCertificateInfo getInstance( |
| ASN1TaggedObject obj, |
| boolean explicit) |
| { |
| return getInstance(ASN1Sequence.getInstance(obj, explicit)); |
| } |
| |
| public static AttributeCertificateInfo getInstance( |
| Object obj) |
| { |
| if (obj instanceof AttributeCertificateInfo) |
| { |
| return (AttributeCertificateInfo)obj; |
| } |
| else if (obj != null) |
| { |
| return new AttributeCertificateInfo(ASN1Sequence.getInstance(obj)); |
| } |
| |
| return null; |
| } |
| |
| private AttributeCertificateInfo( |
| ASN1Sequence seq) |
| { |
| if (seq.size() < 6 || seq.size() > 9) |
| { |
| throw new IllegalArgumentException("Bad sequence size: " + seq.size()); |
| } |
| |
| int start; |
| if (seq.getObjectAt(0) instanceof ASN1Integer) // in version 1 certs version is DEFAULT v1(0) |
| { |
| this.version = ASN1Integer.getInstance(seq.getObjectAt(0)); |
| start = 1; |
| } |
| else |
| { |
| this.version = new ASN1Integer(0); |
| start = 0; |
| } |
| |
| this.holder = Holder.getInstance(seq.getObjectAt(start)); |
| this.issuer = AttCertIssuer.getInstance(seq.getObjectAt(start + 1)); |
| this.signature = AlgorithmIdentifier.getInstance(seq.getObjectAt(start + 2)); |
| this.serialNumber = ASN1Integer.getInstance(seq.getObjectAt(start + 3)); |
| this.attrCertValidityPeriod = AttCertValidityPeriod.getInstance(seq.getObjectAt(start + 4)); |
| this.attributes = ASN1Sequence.getInstance(seq.getObjectAt(start + 5)); |
| |
| for (int i = start + 6; i < seq.size(); i++) |
| { |
| ASN1Encodable obj = seq.getObjectAt(i); |
| |
| if (obj instanceof DERBitString) |
| { |
| this.issuerUniqueID = DERBitString.getInstance(seq.getObjectAt(i)); |
| } |
| else if (obj instanceof ASN1Sequence || obj instanceof Extensions) |
| { |
| this.extensions = Extensions.getInstance(seq.getObjectAt(i)); |
| } |
| } |
| } |
| |
| public ASN1Integer getVersion() |
| { |
| return version; |
| } |
| |
| public Holder getHolder() |
| { |
| return holder; |
| } |
| |
| public AttCertIssuer getIssuer() |
| { |
| return issuer; |
| } |
| |
| public AlgorithmIdentifier getSignature() |
| { |
| return signature; |
| } |
| |
| public ASN1Integer getSerialNumber() |
| { |
| return serialNumber; |
| } |
| |
| public AttCertValidityPeriod getAttrCertValidityPeriod() |
| { |
| return attrCertValidityPeriod; |
| } |
| |
| public ASN1Sequence getAttributes() |
| { |
| return attributes; |
| } |
| |
| public DERBitString getIssuerUniqueID() |
| { |
| return issuerUniqueID; |
| } |
| |
| public Extensions getExtensions() |
| { |
| return extensions; |
| } |
| |
| /** |
| * Produce an object suitable for an ASN1OutputStream. |
| * <pre> |
| * AttributeCertificateInfo ::= SEQUENCE { |
| * version AttCertVersion -- version is v2, |
| * holder Holder, |
| * issuer AttCertIssuer, |
| * signature AlgorithmIdentifier, |
| * serialNumber CertificateSerialNumber, |
| * attrCertValidityPeriod AttCertValidityPeriod, |
| * attributes SEQUENCE OF Attribute, |
| * issuerUniqueID UniqueIdentifier OPTIONAL, |
| * extensions Extensions OPTIONAL |
| * } |
| * |
| * AttCertVersion ::= INTEGER { v2(1) } |
| * </pre> |
| */ |
| public ASN1Primitive toASN1Primitive() |
| { |
| ASN1EncodableVector v = new ASN1EncodableVector(9); |
| |
| if (version.intValueExact() != 0) |
| { |
| v.add(version); |
| } |
| v.add(holder); |
| v.add(issuer); |
| v.add(signature); |
| v.add(serialNumber); |
| v.add(attrCertValidityPeriod); |
| v.add(attributes); |
| |
| if (issuerUniqueID != null) |
| { |
| v.add(issuerUniqueID); |
| } |
| |
| if (extensions != null) |
| { |
| v.add(extensions); |
| } |
| |
| return new DERSequence(v); |
| } |
| } |