# 申请密钥对
申请密钥对
# 一、请求说明
- 请求地址: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请求体设置申请密钥对请求参数,再通过客户端执行请求。
← 介绍 导入SM2加密密钥对 →