internal static EncryptionInstructions BuildInstructionsUsingInstructionFile()

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);
            }
        }