in src/EncryptionUtils.cs [455:471]
internal static EncryptionInstructions BuildInstructionsUsingInstructionFile(GetObjectResponse response, EncryptionMaterials materials,
Func<byte[], EncryptionMaterials, byte[]> decryptNonKmsEnvelopeKey)
{
using (TextReader textReader = new StreamReader(response.ResponseStream))
{
var keyValuePairs = JsonUtils.ToDictionary(textReader.ReadToEnd());
var base64EncodedEncryptedEnvelopeKey = keyValuePairs["EncryptedEnvelopeKey"];
byte[] encryptedEnvelopeKey = Convert.FromBase64String((string)base64EncodedEncryptedEnvelopeKey);
byte[] decryptedEnvelopeKey = decryptNonKmsEnvelopeKey(encryptedEnvelopeKey, materials);
var base64EncodedIV = keyValuePairs["IV"];
byte[] IV = Convert.FromBase64String((string)base64EncodedIV);
return new EncryptionInstructions(materials.MaterialsDescription, decryptedEnvelopeKey, IV);
}
}