protected internal T Decrypt <T>(ResponseDataInfo output) { T model = default(T); if (output != null) { byte[] decryptREK = EncryptionUtils.AesDecrypt(output.rek, provider.DecryptedKey); byte[] jsonData = EncryptionUtils.AesDecrypt(output.data, decryptREK); string json = Encoding.UTF8.GetString(jsonData); byte[] decodeJson = Convert.FromBase64String(json); string finalJson = Encoding.UTF8.GetString(decodeJson); model = Newtonsoft.Json.JsonConvert.DeserializeObject <T>(finalJson); LastJson = finalJson; } return(model); }
protected internal T Decrypt <T>(ResponseDataInfo output) { T model = default(T); if (output != null) { byte[] decryptREK = EncryptionUtils.AesDecrypt(output.rek, provider.DecryptedKey); byte[] jsonData = EncryptionUtils.AesDecrypt(output.data, decryptREK); string testHmac = EncryptionUtils.GenerateHMAC(jsonData, decryptREK); System.Console.WriteLine("HMAC Match:" + (output.hmac == testHmac)); string base64Payload = UTF8Encoding.UTF8.GetString(jsonData); byte[] decodeJson = Convert.FromBase64String(base64Payload); string finalJson = Encoding.UTF8.GetString(decodeJson); model = Newtonsoft.Json.JsonConvert.DeserializeObject <T>(finalJson); LastJson = finalJson; } return(model); }