public string DecodeAndDecryptMessage(string msg) { //string jsonString = rsaManager.Decrypt(AuthenticateMessage(msg)); Message messageRecv = AuthenticateMessage(msg); string decryptedMessage = rsaManager.Decrypt(messageRecv.KeyToDecipher); KeyDecipher key = JsonConvert.DeserializeObject <KeyDecipher>(decryptedMessage); ConnAesManager.SetKey(key.Key, key.IV); string jsonString = ConnAesManager.DecryptStringFromBytes_Aes(JsonConvert.DeserializeObject <byte[]>(messageRecv.Cryptotext)); JsonFreshMessage jsonFreshMessage = JsonConvert.DeserializeObject <JsonFreshMessage>(jsonString); VerifyNonce(jsonFreshMessage.Nonce); return(jsonFreshMessage.Message); }
public string JsonMessage(string msg) { //Refresh every message the keys ConnAesManager.InitKey(); //Cipher content with the symmetric key byte[] bytes = ConnAesManager.EncryptStringToBytes_Aes(msg); string cipherText = JsonConvert.SerializeObject(bytes); //Cipher the symmetric key with pub key KeyDecipher keyDecipher = new KeyDecipher(ConnAesManager.Key, ConnAesManager.InitVect); string KeyDecipher = JsonConvert.SerializeObject(keyDecipher); string cipheredKey = rsaManager.Encrypt(KeyDecipher); //The cipherText and cipherKey Message message = new Message(cipherText, cipheredKey); //Digest the message return(JsonConvert.SerializeObject(new JsonCryptoDigestMessage(JsonConvert.SerializeObject(message), hmacManager.Encode(JsonConvert.SerializeObject(message))))); }