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())); }
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); }
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(); } }
public Eia3Mac(byte[] rgbKey, ZucVersion version = ZucVersion.Zuc15) { _version = version; _cipher = null !; Key = rgbKey; }