Пример #1
0
        public void Write(ASN1Set value)
        {
            WriteIdentifier(ASN1Class.Universal, true, ASN1UniversalTag.Set);
            WriteLength(value.ByteLength);

            var children = new Dictionary <BigInteger, byte[]>();

            foreach (var child in value.Elements)
            {
                byte[] buffer;
                using (var ms = new MemoryStream())
                {
                    new DERWriter(ms).Write(child);

                    buffer = ms.ToArray();
                }

                var tag = ReadTag(buffer);

                children.Add(tag, buffer);
            }

            foreach (var child in children.OrderBy(x => x.Key))
            {
                _writer.Write(child.Value);
            }
        }
Пример #2
0
        public void Write(ASN1Set value)
        {
            WriteIdentifier(ASN1Class.Universal, true, ASN1UniversalTag.Set);
            WriteLength(value.ByteLength);

            var children = new Dictionary<BigInteger, byte[]>();
            foreach (var child in value.Elements)
            {
                byte[] buffer;
                using (var ms = new MemoryStream())
                {
                    new DERWriter(ms).Write(child);

                    buffer = ms.ToArray();
                }

                var tag = ReadTag(buffer);

                children.Add(tag, buffer);
            }

            foreach (var child in children.OrderBy(x => x.Key))
            {
                writer.Write(child.Value);
            }
        }