/// <summary> /// Generates a seed for the Blinding Polynomial Generation Function /// </summary> /// /// <param name="Message">The plain-text message</param> /// <param name="PubKey">The public key</param> /// <param name="Bits">Bits of random data</param> /// /// <returns>A byte array containing a seed value</returns> private byte[] GetSeed(byte[] Message, IntegerPolynomial PubKey, byte[] Bits) { byte[] oid = _encParams.OId; byte[] hTrunc = PubKey.ToBinaryTrunc(_encParams.Q, _encParams.PkLen / 8); // sData = OID|m|b|hTrunc byte[] sData = new byte[oid.Length + Message.Length + Bits.Length + hTrunc.Length]; Array.Copy(oid, 0, sData, 0, oid.Length); int start = oid.Length; Array.Copy(Message, 0, sData, start, Message.Length); start += Message.Length; Array.Copy(Bits, 0, sData, start, Bits.Length); start += Bits.Length; Array.Copy(hTrunc, 0, sData, start, hTrunc.Length); return sData; }