public static NodeDssMessage DecryptMessage(string cipherText, string hmac, byte[] Key, byte[] IV) { byte[] cipherBytes = System.Convert.FromBase64String(cipherText); byte[] hmacBytes = System.Convert.FromBase64String(hmac); var jsonPlainText = AES.DecryptStringFromBytes_Aes(cipherBytes, Key, IV); if (HMAC.Verify(Key, jsonPlainText, hmacBytes)) { NodeDssMessage nodeMessage = JsonUtility.FromJson <NodeDssMessage>(jsonPlainText); return(nodeMessage); } else { throw new InvalidOperationException("Cannot verify the sender of the SDP message; invalid HMAC"); } }