in src/EncryptionUtilsV2.cs [275:308]
internal static PutObjectRequest CreateInstructionFileRequestV2(AmazonWebServiceRequest request, EncryptionInstructions instructions)
{
var keyBytesToStoreInInstructionFile = instructions.EncryptedEnvelopeKey;
var base64EncodedEnvelopeKey = Convert.ToBase64String(keyBytesToStoreInInstructionFile);
var ivToStoreInInstructionFile = instructions.InitializationVector;
var base64EncodedIv = Convert.ToBase64String(ivToStoreInInstructionFile);
var keyValuePairs = new Dictionary<string, string>()
{
{XAmzTagLen, DefaultTagBitsLength.ToString()},
{XAmzKeyV2, base64EncodedEnvelopeKey},
{XAmzCekAlg, instructions.CekAlgorithm},
{XAmzWrapAlg, instructions.WrapAlgorithm},
{XAmzIV, base64EncodedIv},
{XAmzMatDesc, JsonUtils.ToJson(instructions.MaterialsDescription)},
};
var contentBody = JsonUtils.ToJson(keyValuePairs);
var putObjectRequest = request as PutObjectRequest;
if (putObjectRequest != null)
{
return GetInstructionFileRequest(putObjectRequest.BucketName, putObjectRequest.Key, EncryptionInstructionFileV2Suffix, contentBody);
}
var completeMultiPartRequest = request as CompleteMultipartUploadRequest;
if (completeMultiPartRequest != null)
{
return GetInstructionFileRequest(completeMultiPartRequest.BucketName, completeMultiPartRequest.Key, EncryptionInstructionFileV2Suffix, contentBody);
}
return null;
}