| package org.bouncycastle.asn1.ocsp; |
| |
| import org.bouncycastle.asn1.ASN1Choice; |
| import org.bouncycastle.asn1.ASN1TaggedObject; |
| import org.bouncycastle.asn1.ASN1Encodable; |
| import org.bouncycastle.asn1.DEREncodable; |
| import org.bouncycastle.asn1.DERNull; |
| import org.bouncycastle.asn1.DERObject; |
| import org.bouncycastle.asn1.DERTaggedObject; |
| |
| public class CertStatus |
| extends ASN1Encodable |
| implements ASN1Choice |
| { |
| private int tagNo; |
| private DEREncodable value; |
| |
| /** |
| * create a CertStatus object with a tag of zero. |
| */ |
| public CertStatus() |
| { |
| tagNo = 0; |
| // BEGIN android-changed |
| value = DERNull.THE_ONE; |
| // END android-changed |
| } |
| |
| public CertStatus( |
| RevokedInfo info) |
| { |
| tagNo = 1; |
| value = info; |
| } |
| |
| public CertStatus( |
| int tagNo, |
| DEREncodable value) |
| { |
| this.tagNo = tagNo; |
| this.value = value; |
| } |
| |
| public CertStatus( |
| ASN1TaggedObject choice) |
| { |
| this.tagNo = choice.getTagNo(); |
| |
| switch (choice.getTagNo()) |
| { |
| case 0: |
| // BEGIN android-changed |
| value = DERNull.THE_ONE; |
| // END android-changed |
| break; |
| case 1: |
| value = RevokedInfo.getInstance(choice, false); |
| break; |
| case 2: |
| // BEGIN android-changed |
| value = DERNull.THE_ONE; |
| // END android-changed |
| } |
| } |
| |
| public static CertStatus getInstance( |
| Object obj) |
| { |
| if (obj == null || obj instanceof CertStatus) |
| { |
| return (CertStatus)obj; |
| } |
| else if (obj instanceof ASN1TaggedObject) |
| { |
| return new CertStatus((ASN1TaggedObject)obj); |
| } |
| |
| throw new IllegalArgumentException("unknown object in factory"); |
| } |
| |
| public static CertStatus getInstance( |
| ASN1TaggedObject obj, |
| boolean explicit) |
| { |
| return getInstance(obj.getObject()); // must be explicitly tagged |
| } |
| |
| public int getTagNo() |
| { |
| return tagNo; |
| } |
| |
| public DEREncodable getStatus() |
| { |
| return value; |
| } |
| |
| /** |
| * Produce an object suitable for an ASN1OutputStream. |
| * <pre> |
| * CertStatus ::= CHOICE { |
| * good [0] IMPLICIT NULL, |
| * revoked [1] IMPLICIT RevokedInfo, |
| * unknown [2] IMPLICIT UnknownInfo } |
| * </pre> |
| */ |
| public DERObject toASN1Object() |
| { |
| return new DERTaggedObject(false, tagNo, value); |
| } |
| } |