All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.aliyun.dkms.gcs.sdk.samples.option.AsymmetricDecrypt Maven / Gradle / Ivy

Go to download

Dedicated Key Management Service SDK for Java Copyright (C) Alibaba Cloud Computing All rights reserved. 版权所有 (C)阿里云计算有限公司 http://www.aliyun.com

The newest version!
package com.aliyun.dkms.gcs.sdk.samples.option;

import com.aliyun.dkms.gcs.openapi.models.Config;
import com.aliyun.dkms.gcs.openapi.util.models.RuntimeOptions;
import com.aliyun.dkms.gcs.sdk.Client;
import com.aliyun.dkms.gcs.sdk.models.DecryptResponse;
import com.aliyun.tea.TeaException;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.kms.model.v20160120.*;
import com.aliyuncs.profile.DefaultProfile;


import java.nio.charset.StandardCharsets;

public class AsymmetricDecrypt {
    public static void main(String[] args) {
        asymmetricDecryptKmsSample();
        asymmetricDecryptDKmsSample();
    }

    /**
     * 共享kms非对称解密sample
     */
    public static void asymmetricDecryptKmsSample() {
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "", "");
        /** use STS Token
         DefaultProfile profile = DefaultProfile.getProfile(
         "",           // The region ID
         "",       // The AccessKey ID of the RAM account
         "",   // The AccessKey Secret of the RAM account
         "");          // STS Token
         **/
        IAcsClient client = new DefaultAcsClient(profile);

        AsymmetricDecryptRequest request = new AsymmetricDecryptRequest();
        request.setCiphertextBlob("");
        request.setKeyId("");
        request.setKeyVersionId("");
        request.setAlgorithm("");

        try {
            AsymmetricDecryptResponse response = client.getAcsResponse(request);
            System.out.printf("KeyId: %s%n", response.getKeyId());
            System.out.printf("KeyVersionId: %s%n", response.getKeyVersionId());
            System.out.printf("Plaintext: %s%n", response.getPlaintext());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            System.out.println("ErrCode:" + e.getErrCode());
            System.out.println("ErrMsg:" + e.getErrMsg());
            System.out.println("RequestId:" + e.getRequestId());
        }
    }

    /**
     * 专属kms非对称解密sample
     */
    public static void asymmetricDecryptDKmsSample() {

        Config config = new Config();
        config.setProtocol("https");
        config.setClientKeyFile("");
        config.setPassword("");
        config.setEndpoint("");
        // 验证服务端证书,这里需要设置为您的服务端证书路径
        config.setCaFilePath("");
        // 或者,设置为您的服务端证书内容
        //config.setCa("");
        //密文字节数组,通过加密示例可获得
        decryptRequest.setCiphertextBlob("".getBytes());
        try {
            // 如需忽略服务端证书,可使用此处注释代码方式调用
            //RuntimeOptions runtimeOptions = new RuntimeOptions();
            //runtimeOptions.setIgnoreSSL(true);
            //DecryptResponse decryptResponse = client.decryptWithOptions(decryptRequest, runtimeOptions);
            DecryptResponse decryptResponse = client.decrypt(decryptRequest);
            System.out.printf("KeyId: %s%n", decryptResponse.getKeyId());
            System.out.printf("Algorithm: %s%n", decryptResponse.getAlgorithm());
            System.out.printf("Plaintext: %s%n", new String(decryptResponse.getPlaintext(), StandardCharsets.UTF_8));
        } catch (Exception e) {
            if (e instanceof TeaException) {
                System.out.printf("code: %s%n", ((TeaException) e).getCode());
                System.out.printf("message: %s%n", ((TeaException) e).getMessage());
                System.out.printf("requestId: %s%n", ((TeaException) e).getData().get("requestId"));
            } else {
                System.out.printf("asymmetricDecrypt err: %s%n", e.getMessage());
            }
            e.printStackTrace();
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy