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)); }
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)); }
public void Decode_NotEnoughBytes_ShouldThrowInvalidOperationException() { var data = new Queue <byte>(new byte[] { 0x83, 0x81, 0xE2 }); Assert.Throws <InvalidOperationException>(() => DerAsnLength.Decode(data)); }