示例#1
0
        public void CrossLoadStateThrows(ZucVersion v)
        {
            var st14   = new ZucKeyStreamGenerator(new byte[32], new byte[23], ZucVersion.Zuc14);
            var sttest = new ZucKeyStreamGenerator(new byte[32], new byte[23], v);

            Assert.Throws <InvalidOperationException>(() => sttest.LoadState(st14.DumpState()));
            Assert.Throws <InvalidOperationException>(() => st14.LoadState(sttest.DumpState()));
        }
示例#2
0
        public void TestXfrmReuse(byte[] sk, byte[] iv, ZucVersion version, byte[] input)
        {
            var cipher     = new Eea3Transform(sk, iv, true, version);
            var cipherText = cipher.TransformFinalBlock(input, 0, input.Length);
            var plaintext  = cipher.TransformFinalBlock(cipherText, 0, cipherText.Length);

            Assert.Equal(input.AsEnumerable(), plaintext);
        }
示例#3
0
 public Eea3Transform(ReadOnlySpan <byte> sk, ReadOnlySpan <byte> iv, bool reuseTransform = false, ZucVersion version = ZucVersion.Zuc15)
     : base(new ZucKeyStreamGenerator(sk, iv, version))
 {
     if (reuseTransform)
     {
         _initState = Rng.DumpState();
     }
 }
示例#4
0
 public Eia3Mac(byte[] rgbKey, ZucVersion version = ZucVersion.Zuc15)
 {
     _version = version;
     _cipher  = null !;
     Key      = rgbKey;
 }