in src/EncryptionUtilsV2.cs [283:316]
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 jsonData = new JsonData
{
[XAmzTagLen] = DefaultTagBitsLength.ToString(),
[XAmzKeyV2] = base64EncodedEnvelopeKey,
[XAmzCekAlg] = instructions.CekAlgorithm,
[XAmzWrapAlg] = instructions.WrapAlgorithm,
[XAmzIV] = base64EncodedIv,
[XAmzMatDesc] = JsonMapper.ToJson(instructions.MaterialsDescription)
};
var contentBody = jsonData.ToJson();
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;
}