示例#1
0
 private static void EncryptDataKey(KmsClient kmsClient)
 {
     try
     {
         var data      = DecryptDataKey(kmsClient);
         var plainText = data.DataKey + data.DatakeyDgst;
         var request   = new EncryptDatakeyRequest
         {
             VersionId = "v1.0",
             Body      = new EncryptDatakeyRequestBody()
             {
                 KeyId = GetKeyByStatus.GetKeyByKeyStatus(kmsClient, "2"),
                 DatakeyPlainLength = "64",
                 PlainText          = plainText
             }
         };
         var resp = kmsClient.EncryptDatakey(request);
         Console.WriteLine(resp.ToString());
     }
     catch (RequestTimeoutException requestTimeoutException)
     {
         Console.WriteLine(requestTimeoutException.ErrorMessage);
     }
     catch (ServiceResponseException clientRequestException)
     {
         Console.WriteLine(clientRequestException.HttpStatusCode);
         Console.WriteLine(clientRequestException.ErrorCode);
         Console.WriteLine(clientRequestException.ErrorMsg);
     }
     catch (ConnectionException connectionException)
     {
         Console.WriteLine(connectionException.ErrorMessage);
     }
 }
示例#2
0
        /// <summary>
        /// 加密数据密钥
        /// </summary>
        public async Task <EncryptDatakeyResponse> EncryptDatakeyAsync(EncryptDatakeyRequest encryptDatakeyRequest)
        {
            Dictionary <string, string> urlParam = new Dictionary <string, string>();

            urlParam.Add("version_id", encryptDatakeyRequest.VersionId.ToString());
            string              urlPath  = HttpUtils.AddUrlPath("/{version_id}/{project_id}/kms/encrypt-datakey", urlParam);
            SdkRequest          request  = HttpUtils.InitSdkRequest(urlPath, "application/json;charset=UTF-8", encryptDatakeyRequest);
            HttpResponseMessage response = await DoHttpRequestAsync("POST", request);

            return(JsonUtils.DeSerialize <EncryptDatakeyResponse>(response));
        }