private static void Test4(IBlockCrypto crypto, string hex1, string hex2) { Assert.AreEqual(@"AES-CBC", crypto.Name); Assert.AreEqual(16, crypto.BlockSize); Span <byte> h1 = hex1.FromHex(); Span <byte> h2 = hex2.FromHex(); Span <byte> o1 = stackalloc byte[64]; crypto.Encrypt4(h1, o1); Assert.IsTrue(o1.SequenceEqual(h2)); crypto.Reset(); crypto.Encrypt4(h1, o1); Assert.IsTrue(o1.SequenceEqual(h2)); crypto.Reset(); crypto.Decrypt(h2, o1); crypto.Decrypt(h2.Slice(16), o1.Slice(16)); crypto.Decrypt(h2.Slice(32), o1.Slice(32)); crypto.Decrypt(h2.Slice(48), o1.Slice(48)); Assert.IsTrue(o1.SequenceEqual(h1)); crypto.Dispose(); }