private void FromDescriptionTest() { MacDescription mds = new MacDescription(64, Digests.SHA256); MacDescription mds2 = new MacDescription(mds.ToBytes()); MacDescription mds3 = new MacDescription(mds2.ToStream()); if (!mds.Equals(mds2) || !mds.Equals(mds3)) { throw new Exception("MacStreamTest: Description serialization has failed!"); } mds = new MacDescription(32, BlockCiphers.Rijndael, IVSizes.V128, BlockSizes.B128, RoundCounts.R14); mds2 = new MacDescription(mds.ToBytes()); mds3 = new MacDescription(mds2.ToStream()); if (!mds.Equals(mds2) || !mds.Equals(mds3)) { throw new Exception("MacStreamTest: Description serialization has failed!"); } mds = new MacDescription(32, Digests.Blake2S256); mds2 = new MacDescription(mds.ToBytes()); mds3 = new MacDescription(mds2.ToStream()); if (!mds.Equals(mds2) || !mds.Equals(mds3)) { throw new Exception("MacStreamTest: Description serialization has failed!"); } }
/// <summary> /// Convert the MacKey structure to a MemoryStream /// </summary> /// /// <returns>The MemoryStream containing the MacKey</returns> public MemoryStream ToStream() { MemoryStream stream = new MemoryStream(); BinaryWriter writer = new BinaryWriter(stream); writer.Write(Description.ToBytes()); writer.Write(KeyId); stream.Seek(0, SeekOrigin.Begin); return(stream); }
/// <summary> /// Set the MacDescription structure /// </summary> /// /// <param name="KeyStream">The stream containing a key package</param> /// <param name="Description">The MacDescription structure</param> public static void SetCipherDescription(Stream KeyStream, MacDescription Description) { KeyStream.Seek(MACDSC_SEEK, SeekOrigin.Begin); new BinaryWriter(KeyStream).Write(Description.ToBytes()); }