Пример #1
0
        public override DecodedObject <object> decodeString(DecodedObject <object> decodedTag, System.Type objectClass, ElementInfo elementInfo, System.IO.Stream stream)
        {
            if (!checkTagForObject(decodedTag, TagClasses.Universal, ElementType.Primitive, CoderUtils.getStringTagForElement(elementInfo), elementInfo))
            {
                return(null);
            }
            DecodedObject <int> len = decodeLength(stream);

            CoderUtils.checkConstraints(len.Value, elementInfo);
            byte[] byteBuf = new byte[len.Value];
            stream.Read(byteBuf, 0, byteBuf.Length);
            string result = CoderUtils.bufferToASN1String(byteBuf, elementInfo);

            return(new DecodedObject <object>(result, len.Value + len.Size));
        }
Пример #2
0
        public override DecodedObject <object> decodeString(DecodedObject <object> decodedTag, Type objectClass, ElementInfo elementInfo, Stream stream)
        {
            DecodedObject <object> result = new DecodedObject <object>();
            int strLen = decodeLength(elementInfo, stream);

            skipAlignedBits(stream);
            if (strLen > 0)
            {
                byte[] val = new byte[strLen];
                stream.Read(val, 0, val.Length);
                result.Value = CoderUtils.bufferToASN1String(val, elementInfo);
            }
            else
            {
                result.Value = ("");
            }

            return(result);
        }