# 申请密钥对

申请密钥对

# 一、请求说明

  • 请求地址:https://IP:PORT/openapi/ces/v1/keypair/generate
  • 服务接口名称(即公共参数method的值): keypair/generate
  • 请求方式:POST

# 二、请求参数

名称 类型 是否必须 描述
keySize Integer 密钥长度
cryptogramEngineType CryptogramEngineType 加密引擎类型 文件加密 加密卡加密 (默认加密卡)
algorithm Algorithm 加密算法 SM2 RSA SM4 AES
privateKey String 私钥base64 当(SM2 RSA)可以传,如不传自动生成
publicKey String 公钥base64
  • 字段解释
  • keySize 密钥长度说明
算法 密钥长度
RAS 1024或2048
SM2 256
对称算法 128
  • CryptogramEngineType 加密引擎类型
类型字段 介绍
FILE 文件引擎
FM_CARD 加密卡引擎
  • algorithm 加密算法
类型字段 介绍
SM2 SM2算法
RSA RSA算法
AES AES算法
SM4 SM4算法

# 三、响应参数

data 结果信息 类型 描述
virtualIndex Integer 虚拟索引
signPublicKey String 签名公钥
engineType String 加密引擎类型 文件 加密卡

# 四、成功示例

JSON示例

{
    "code": 0,
    "message": "success",
    "requestId":"xxx",
    "data": {
        "virtualIndex": 50000,
        "engineType": "FM_CARD",
        "signPublicKey": "BFnPJcVLO9VAsxqWgZIw0f4X4yIB2Vdcihq97iLErU+f2qEiyvk1YjSjt10tqwQrfaXN1r7glr9NeZfVXFRVfrs="
    }
}

# 五、失败示例

JSON示例

{
    "code": 10010,
    "requestId":"xxx",
    "message": "参数错误",
}

# 六、SDK请求示例

         // 提供的URL
        String url = "http://172.16.3.232:20501";

        // 您的appKey
        String appKey = "XXX";

        // 您的appSecret
        String appSecret = "XXX";

        // 原客户端
        PkiClient Client = new PkiOkhttpClient(url, appKey, appSecret);

        KeyPairGenerateRequest request = new KeyPairGenerateRequest();
		
		// 密钥长度
		request.setKeySize(256);
		
		//文件加密引擎
		request.setCryptogramEngineType(CryptogramEngineType.FILE);
		
		//密钥算法 SM2
		request.setAlgorithm(Algorithm.SM2);
		
        try {
            KeyPairGenerateResponse response = client.execute(request);
            // 后续业务
            if (response.isSuccess()) {
                System.out.println("成功:" + response.getResult());
                KeyPairGenerateResponse.Result result = response.getResult();
                System.out.println("虚拟索引: " + result.getVirtualIndex());
                System.out.println("签名公钥: " + result.getSignPublicKey());
                System.out.println("加密引擎类型:" + result.getEngineType());
            } else {
                System.out.println("失败:" + response.getBody());
            }
        } catch (ApiException e) {
            e.printStackTrace();
        }

# 备注

通过GenerateKeyPairRequest请求体设置申请密钥对请求参数,再通过客户端执行请求。

最后更新于: 10/13/2022, 11:28:25 AM