package org.bouncycastle.asn1.ocsp;

import org.bouncycastle.asn1.ASN1Choice;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1TaggedObject;
import org.bouncycastle.asn1.DERNull;
import org.bouncycastle.asn1.DERTaggedObject;

public class CertStatus
    extends ASN1Object
    implements ASN1Choice
{
    private int             tagNo;
    private ASN1Encodable    value;

    
create a CertStatus object with a tag of zero.
/** * create a CertStatus object with a tag of zero. */
public CertStatus() { tagNo = 0; value = DERNull.INSTANCE; } public CertStatus( RevokedInfo info) { tagNo = 1; value = info; } public CertStatus( int tagNo, ASN1Encodable value) { this.tagNo = tagNo; this.value = value; } private CertStatus( ASN1TaggedObject choice) { this.tagNo = choice.getTagNo(); switch (choice.getTagNo()) { case 0: value = DERNull.INSTANCE; break; case 1: value = RevokedInfo.getInstance(choice, false); break; case 2: value = DERNull.INSTANCE; break; default: throw new IllegalArgumentException("Unknown tag encountered: " + choice.getTagNo()); } } 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: " + obj.getClass().getName()); } public static CertStatus getInstance( ASN1TaggedObject obj, boolean explicit) { return getInstance(obj.getObject()); // must be explicitly tagged } public int getTagNo() { return tagNo; } public ASN1Encodable getStatus() { return value; }
Produce an object suitable for an ASN1OutputStream.
 CertStatus ::= CHOICE {
                 good        [0]     IMPLICIT NULL,
                 revoked     [1]     IMPLICIT RevokedInfo,
                 unknown     [2]     IMPLICIT UnknownInfo }
/** * Produce an object suitable for an ASN1OutputStream. * <pre> * CertStatus ::= CHOICE { * good [0] IMPLICIT NULL, * revoked [1] IMPLICIT RevokedInfo, * unknown [2] IMPLICIT UnknownInfo } * </pre> */
public ASN1Primitive toASN1Primitive() { return new DERTaggedObject(false, tagNo, value); } }