protected void PostInvoke()

in src/Internal/SetupDecryptionHandler.cs [51:88]


        protected void PostInvoke(IExecutionContext executionContext)
        {
            byte[] encryptedKMSEnvelopeKey;
            Dictionary<string, string> encryptionContext;
            byte[] decryptedEnvelopeKeyKMS = null;

            if (KMSEnvelopeKeyIsPresent(executionContext, out encryptedKMSEnvelopeKey, out encryptionContext))
            {
#if BCL
                decryptedEnvelopeKeyKMS = DecryptedEnvelopeKeyKms(encryptedKMSEnvelopeKey, encryptionContext);
#else
                decryptedEnvelopeKeyKMS = DecryptedEnvelopeKeyKmsAsync(encryptedKMSEnvelopeKey, encryptionContext).GetAwaiter().GetResult();
#endif
            }

            var getObjectResponse = executionContext.ResponseContext.Response as GetObjectResponse;
            if (getObjectResponse != null)
            {
#if BCL
                DecryptObject(decryptedEnvelopeKeyKMS, getObjectResponse);
#else
                DecryptObjectAsync(decryptedEnvelopeKeyKMS, getObjectResponse).GetAwaiter().GetResult();
#endif
            }

            var completeMultiPartUploadRequest =  executionContext.RequestContext.Request.OriginalRequest as CompleteMultipartUploadRequest;
            var completeMultipartUploadResponse = executionContext.ResponseContext.Response as CompleteMultipartUploadResponse;
            if (completeMultipartUploadResponse != null)
            {
#if BCL
                CompleteMultipartUpload(completeMultiPartUploadRequest);
#else
                CompleteMultipartUploadAsync(completeMultiPartUploadRequest).GetAwaiter().GetResult();
#endif
            }

            PostInvokeSynchronous(executionContext, decryptedEnvelopeKeyKMS);
        }