public override int ReadByte()
        {
            if (_first)
            {
                Asn1OctetString s = (Asn1OctetString)_parser.ReadObject();

                if (s == null)
                {
                    return(-1);
                }

                _first         = false;
                _currentStream = s.GetOctetStream();
            }
            else if (_currentStream == null)
            {
                return(-1);
            }

            int b = _currentStream.ReadByte();

            if (b >= 0)
            {
                return(b);
            }

            Asn1OctetString aos = (Asn1OctetString)_parser.ReadObject();

            if (aos == null)
            {
                _currentStream = null;

                return(-1);
            }

            _currentStream = aos.GetOctetStream();

            return(_currentStream.ReadByte());
        }
 public IAsn1Convertible ReadObject()
 {
     return(_parser.ReadObject());
 }