internal Asn1Object ReadTaggedObject(bool constructed, int tag)
{
if (!constructed)
{
DefiniteLengthInputStream definiteLengthInputStream = (DefiniteLengthInputStream)this._in;
return(new DerTaggedObject(false, tag, new DerOctetString(definiteLengthInputStream.ToArray())));
}
Asn1EncodableVector asn1EncodableVector = this.ReadVector();
if (this._in is IndefiniteLengthInputStream)
{
if (asn1EncodableVector.Count != 1)
{
return(new BerTaggedObject(false, tag, BerSequence.FromVector(asn1EncodableVector)));
}
return(new BerTaggedObject(true, tag, asn1EncodableVector[0]));
}
else
{
if (asn1EncodableVector.Count != 1)
{
return(new DerTaggedObject(false, tag, DerSequence.FromVector(asn1EncodableVector)));
}
return(new DerTaggedObject(true, tag, asn1EncodableVector[0]));
}
}