FileDocCategorySizeDatePackage
Asn1TaggedObject.javaAPI DocBouncy Castle Crypto API 1.41 (Java 1.5)2453Wed Oct 01 10:55:30 BST 2008org.bouncycastle.sasn1

Asn1TaggedObject

public class Asn1TaggedObject extends Asn1Object
deprecated
use corresponsding classes in org.bouncycastle.asn1.

(Omit source code)

Fields Summary
Constructors Summary
protected Asn1TaggedObject(int baseTag, int tagNumber, InputStream contentStream)

        super(baseTag, tagNumber, contentStream);
    
Methods Summary
public Asn1ObjectgetObject(int tag, boolean isExplicit)

        if (isExplicit)
        {
            return new Asn1InputStream(this.getRawContentStream()).readObject();
        }
        else
        {
            switch (tag)
            {
            case BerTag.SET:
                if (this.getRawContentStream() instanceof IndefiniteLengthInputStream)
                {
                    return new BerSet(BerTag.CONSTRUCTED, this.getRawContentStream());
                }
                else
                {
                    return new DerSet(BerTag.CONSTRUCTED, ((DefiniteLengthInputStream)this.getRawContentStream()).toByteArray());
                }
            case BerTag.SEQUENCE:
                if (this.getRawContentStream() instanceof IndefiniteLengthInputStream)
                {
                    return new BerSequence(BerTag.CONSTRUCTED, this.getRawContentStream());
                }
                else
                {
                    return new DerSequence(BerTag.CONSTRUCTED, ((DefiniteLengthInputStream)this.getRawContentStream()).toByteArray());
                }
            case BerTag.OCTET_STRING:
                if (this.getRawContentStream() instanceof IndefiniteLengthInputStream)
                {
                    return new BerOctetString(BerTag.CONSTRUCTED, this.getRawContentStream());
                }
                else
                {
                    if (this.isConstructed())
                    {
                        return new DerOctetString(BerTag.CONSTRUCTED, ((DefiniteLengthInputStream)this.getRawContentStream()).toByteArray());
                    }
                    else
                    {
                        return new DerOctetString(BerTagClass.UNIVERSAL, ((DefiniteLengthInputStream)this.getRawContentStream()).toByteArray());
                    }
                }
            }
        }
        
        throw new RuntimeException("implicit tagging not implemented");