/// <summary> /// CFB encode. /// </summary> /// <param name="key">Key</param> /// <param name="iv">Init vector</param> /// <param name="message">Message</param> /// <param name="sBlockType">SBlock type</param> /// <returns>Encoded</returns> public static byte[] Encode(byte[] key, byte[] iv, byte[] message, SBlockTypes sBlockType) { CheckData(key, iv, message); using var gost = new GostManager(key, iv, message, CipherTypes.Cfb, sBlockType); return(gost.Encode()); }
/// <summary> /// Substitution encode. /// </summary> /// <param name="key">Key</param> /// <param name="message">Message</param> /// <param name="sBlockType">SBlock type</param> /// <returns>Encoded</returns> public static byte[] Encode(byte[] key, byte[] message, SBlockTypes sBlockType) { CheckData(key, message); if (message.Length % 8 != 0) { throw new ArgumentException("Block must have 64 bit length"); } using var gost = new GostManager(key, null, message, CipherTypes.Substitution, sBlockType); return(gost.Encode()); }