public void Decrypt(byte[] message) { Data data = new Data(message, _blockSize); for (int i = 0; i < data.NumberOfBlocks; ++i) { try { byte[] block = data.GetNBlock(i); block = InitialPermutation(block); for (sbyte round = 15; round >= 0; --round) { byte[] subkey = _key.Subkeys.ElementAt(round); block = Round(block.Take(4).ToArray(), block.Skip(4).Take(4).ToArray(), subkey); } block = ReverseLeftAndRight(block); block = ReversedInitialPermutation(block); DecryptedMessage = DecryptedMessage.Concat(block).ToArray(); } catch { throw; } } }
private void Read(BinaryReader reader) { fromId = reader.ReadInt32(); toId = reader.ReadInt32(); date = reader.ReadInt32(); output = reader.ReadBoolean(); unread = reader.ReadBoolean(); message = TL.Parse<DecryptedMessage>(reader); file = TL.Parse<EncryptedFile>(reader); }
public MessageModelEncryptedDelivered(int fromId, int toId, int date, bool output, bool unread, DecryptedMessage message, EncryptedFile file) { this.fromId = fromId; this.toId = toId; this.date = date; this.output = output; this.unread = unread; this.message = message; this.file = file; }
private void Read(BinaryReader reader) { fromId = reader.ReadInt32(); toId = reader.ReadInt32(); date = reader.ReadInt32(); output = reader.ReadBoolean(); unread = reader.ReadBoolean(); message = TL.Parse <DecryptedMessage>(reader); file = TL.Parse <EncryptedFile>(reader); }
public IActionResult Post([FromBody] DecryptedMessage message) { var alphabet = message.Alphabet; var key = message.Key; var decryptedText = message.DecryptedText; Caesar cipher = new Caesar(alphabet); message.DecryptedText = cipher.Encrypt(decryptedText, key); return(Json(message)); }
public override async Task <bool> SendMessage(string message) { try { logger.info("send message with key: {0}", BitConverter.ToString(key).Replace("-", "").ToLower()); long messageId = Helpers.GenerateRandomLong(); DecryptedMessage msg = TL.decryptedMessage(messageId, Helpers.GenerateRandomBytes(128), message, TL.decryptedMessageMediaEmpty()); byte[] data; using (MemoryStream memory = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(memory)) { msg.Write(writer); data = memory.ToArray(); } } using (MemoryStream memory = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(memory)) { writer.Write(data.Length); writer.Write(data); data = memory.ToArray(); } } byte[] msgKey = Helpers.CalcMsgKey(data); AESKeyData aesKey = Helpers.CalcKey(key, msgKey, true); data = AES.EncryptAES(aesKey, data); using (MemoryStream memory = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(memory)) { writer.Write(fingerprint); writer.Write(msgKey); writer.Write(data); data = memory.ToArray(); } } Messages_sentEncryptedMessageConstructor sent = (Messages_sentEncryptedMessageConstructor)await session.Api.messages_sendEncrypted(InputEncryptedChat, messageId, data); MessageModel messageModel = new MessageModelEncryptedDelivered(TelegramSession.Instance.SelfId, OpponentId, sent.date, true, true, msg, TL.encryptedFileEmpty()); messages.Add(messageModel); TelegramSession.Instance.Dialogs.Model.UpDialog(this); return(true); } catch (Exception e) { logger.error("send encrypted message exception: {0}", e); return(false); } }
public override void Read(BinaryReader reader) { this.layer = reader.ReadInt32(); this.message = Tl.Parse <DecryptedMessage>(reader); }
public DecryptedMessageLayerConstructor(int layer, DecryptedMessage message) { this.layer = layer; this.message = message; }