FileDocCategorySizeDatePackage
DERTaggedObject.javaAPI DocAndroid 1.5 API2193Wed May 06 22:41:06 BST 2009org.bouncycastle.asn1

DERTaggedObject

public class DERTaggedObject extends ASN1TaggedObject
DER TaggedObject - in ASN.1 nottation this is any object proceeded by a [n] where n is some number - these are assume to follow the construction rules (as with sequences).

Fields Summary
Constructors Summary
public DERTaggedObject(int tagNo, DEREncodable obj)

param
tagNo the tag number for this object.
param
obj the tagged object.

        super(tagNo, obj);
    
public DERTaggedObject(boolean explicit, int tagNo, DEREncodable obj)

param
explicit true if an explicitly tagged object.
param
tagNo the tag number for this object.
param
obj the tagged object.

        super(explicit, tagNo, obj);
    
public DERTaggedObject(int tagNo)
create an implicitly tagged object that contains a zero length sequence.

        super(false, tagNo, new DERSequence());
    
Methods Summary
voidencode(DEROutputStream out)

        if (!empty)
        {
            ByteArrayOutputStream   bOut = new ByteArrayOutputStream();
            DEROutputStream         dOut = new DEROutputStream(bOut);

            dOut.writeObject(obj);
            dOut.close();

            byte[]  bytes = bOut.toByteArray();

            if (explicit)
            {
                out.writeEncoded(CONSTRUCTED | TAGGED | tagNo, bytes);
            }
            else
            {
                //
                // need to mark constructed types...
                //
                if ((bytes[0] & CONSTRUCTED) != 0)
                {
                    bytes[0] = (byte)(CONSTRUCTED | TAGGED | tagNo);
                }
                else
                {
                    bytes[0] = (byte)(TAGGED | tagNo);
                }

                out.write(bytes);
            }
        }
        else
        {
            out.writeEncoded(CONSTRUCTED | TAGGED | tagNo, new byte[0]);
        }