public string Encrypt(string text, byte[] key) { byte[] message = Encoding.UTF8.GetBytes(text); int toPad = message.Length % BlockSize; byte[] bytes; if (toPad == 0) { bytes = message; } else { toPad = BlockSize - message.Length % BlockSize; bytes = new byte[message.Length + toPad]; for (int i = 0; i < bytes.Length; i++) { if (i < message.Length) { bytes[i] = message[i]; } } } object sessionKeys = MakeKey(key); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < bytes.Length / BlockSize; i++) { byte[] enc = BlockEncrypt(bytes, BlockSize * i, sessionKeys); stringBuilder.Append(ByteToHex(enc)); } return(Converts.StringToBinary(stringBuilder.ToString())); }
private void tbMessage_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { if (client != null) { string msg = Converts.BinaryToString(serpent.Encrypt(tbMessage.Text, Convert.FromBase64String(KeyToSerpent))); msg += KeyToSerpent; client.SendMsg(msg, ID); tbMessage.Text = string.Empty; } } }