in src/EncryptionUtilsV2.cs [245:273]
internal static void UpdateMetadataWithEncryptionInstructionsV2(AmazonWebServiceRequest request,
EncryptionInstructions instructions, AmazonS3EncryptionClientBase encryptionClient)
{
var keyBytesToStoreInMetadata = instructions.EncryptedEnvelopeKey;
var base64EncodedEnvelopeKey = Convert.ToBase64String(keyBytesToStoreInMetadata);
var ivToStoreInMetadata = instructions.InitializationVector;
var base64EncodedIv = Convert.ToBase64String(ivToStoreInMetadata);
MetadataCollection metadata = null;
var putObjectRequest = request as PutObjectRequest;
if (putObjectRequest != null)
metadata = putObjectRequest.Metadata;
var initiateMultipartrequest = request as InitiateMultipartUploadRequest;
if (initiateMultipartrequest != null)
metadata = initiateMultipartrequest.Metadata;
if (metadata != null)
{
metadata.Add(XAmzWrapAlg, instructions.WrapAlgorithm);
metadata.Add(XAmzTagLen, DefaultTagBitsLength.ToString());
metadata.Add(XAmzKeyV2, base64EncodedEnvelopeKey);
metadata.Add(XAmzCekAlg, instructions.CekAlgorithm);
metadata.Add(XAmzIV, base64EncodedIv);
metadata.Add(XAmzMatDesc, JsonUtils.ToJson(instructions.MaterialsDescription));
}
}