Пример #1
0
        public void Decode_ShortForm_ShouldDecodeCorrectly()
        {
            var data = new Queue <byte>();

            data.Enqueue(0x14);
            var length = DerAsnLength.Decode(data);

            Assert.That(data, Is.Empty);
            Assert.That(length.Length, Is.EqualTo(20));

            data.Enqueue(0x7F);
            length = DerAsnLength.Decode(data);
            Assert.That(data, Is.Empty);
            Assert.That(length.Length, Is.EqualTo(127));
        }
Пример #2
0
        public void Decode_LongForm_ShouldDecodeCorrectly()
        {
            var data = new Queue <byte>();

            data.Enqueue(0x81); data.Enqueue(0x80);
            var length = DerAsnLength.Decode(data);

            Assert.That(data, Is.Empty);
            Assert.That(length.Length, Is.EqualTo(128));

            data.Enqueue(0x81); data.Enqueue(0xC9);
            length = DerAsnLength.Decode(data);
            Assert.That(data, Is.Empty);
            Assert.That(length.Length, Is.EqualTo(201));

            data.Enqueue(0x83); data.Enqueue(0x01); data.Enqueue(0xE2); data.Enqueue(0x40);
            length = DerAsnLength.Decode(data);
            Assert.That(data, Is.Empty);
            Assert.That(length.Length, Is.EqualTo(123456));
        }
Пример #3
0
        public void Decode_NotEnoughBytes_ShouldThrowInvalidOperationException()
        {
            var data = new Queue <byte>(new byte[] { 0x83, 0x81, 0xE2 });

            Assert.Throws <InvalidOperationException>(() => DerAsnLength.Decode(data));
        }