internal Asn1Object ReadTaggedObject(bool constructed, int tag)
    {
        if (!constructed)
        {
            DefiniteLengthInputStream definiteLengthInputStream = (DefiniteLengthInputStream)_in;
            return(new DerTaggedObject(explicitly: false, tag, new DerOctetString(definiteLengthInputStream.ToArray())));
        }
        Asn1EncodableVector asn1EncodableVector = ReadVector();

        if (_in is IndefiniteLengthInputStream)
        {
            if (asn1EncodableVector.Count != 1)
            {
                return(new BerTaggedObject(explicitly: false, tag, BerSequence.FromVector(asn1EncodableVector)));
            }
            return(new BerTaggedObject(explicitly: true, tag, asn1EncodableVector[0]));
        }
        if (asn1EncodableVector.Count != 1)
        {
            return(new DerTaggedObject(explicitly: false, tag, DerSequence.FromVector(asn1EncodableVector)));
        }
        return(new DerTaggedObject(explicitly: true, tag, asn1EncodableVector[0]));
    }
 internal virtual DerSequence CreateDerSequence(DefiniteLengthInputStream dIn)
 {
     return(DerSequence.FromVector(BuildDerEncodableVector(dIn)));
 }