1. 接口描述
接口请求域名: kms.api3.fincloud.tencent.com。
本接口生成一个数据密钥,您可以用这个密钥进行本地数据的加密。
默认接口请求频率限制:100次/秒。
接口更新时间:2022-09-26 14:48:51。
接口既验签名又鉴权。
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。
| 参数名称 | 必选 | 允许NULL | 类型 | 描述 |
|---|---|---|---|---|
| Action | 是 | 否 | String | 公共参数,本接口取值:GenerateDataKey |
| Version | 是 | 否 | String | 公共参数,本接口取值:2019-01-18 |
| Region | 是 | 否 | String | 公共参数,地域信息可通过DescribeRegions接口查看产品支持的地域列表 |
| KeyId | 是 | 否 | String | CMK全局唯一标识符 示例值: 93866e69-9755-11ef-8e65-52540089bc41 |
| KeySpec | 否 | 否 | String | 指定生成Datakey的加密算法以及Datakey大小,AES_128或者AES_256。KeySpec 和 NumberOfBytes 必须指定一个 示例值: AES_256 |
| NumberOfBytes | 否 | 否 | Uint64 | 生成的DataKey的长度,同时指定NumberOfBytes和KeySpec时,以NumberOfBytes为准。最小值为1, 最大值为1024。KeySpec 和 NumberOfBytes 必须指定一个 示例值: 32 |
| EncryptionContext | 否 | 否 | String | key/value对的json字符串,如果使用该字段,则返回的DataKey在解密时需要填入相同的字符串 示例值: {"key1":"value1"} |
| EncryptionPublicKey | 否 | 否 | String | PEM 格式公钥字符串,支持 RSA2048 和 SM2 公钥,用于对返回数据中的 Plaintext 值进行加密。若为空,则不对 Plaintext 值加密。 示例值: -----BEGIN PUBLIC KEY----- MFkwEwY*****fJiHQuh2Jr9lMspgK58UVMJTvQCAU+Hztyhd6Aw== -----END PUBLIC KEY----- |
| EncryptionAlgorithm | 否 | 否 | String | 非对称加密算法,配合 EncryptionPublicKey 对返回数据进行加密。目前支持:SM2(以 C1C3C2 格式返回密文),SM2_C1C3C2_ASN1 (以 C1C3C2 ASN1 格式返回密文),RSAES_PKCS1_V1_5,RSAES_OAEP_SHA_1,RSAES_OAEP_SHA_256。若为空,则默认为 SM2。 示例值: SM2 |
3. 输出参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| KeyId | String | CMK的全局唯一标识 示例值: 93866e69-9755-11ef-8e65-52540089bc41 |
| Plaintext | String | 若调用时未提供 EncryptionPublicKey,该字段值为生成的数据密钥 DataKey 的 Base64 编码的明文,需进行 Base64 解码以获取 DataKey 明文。 若调用时提供了 EncryptionPublicKey,则该字段值为使用 EncryptionPublicKey 公钥进行非对称加密后的 Base64 编码的密文。需在 Base64 解码后,使用用户上传的公钥对应的私钥进行进一步解密,以获取 DataKey 明文。 示例值: q+EouJ/tGeiZIo9/tIl2baxQOBFxcN0PNn7F6EIEvpDR6kvQmHohD5PTbUCKPkct6K8jOiYpbuaWZthxco0phMRSE4+HpB17rX4jmlW8pw3eHWOZo8yRyq/c7RVVo0+DtZofszwhMirQyjcBTJWhLt7xywtE5zqhDjngeEktAEw= |
| CiphertextBlob | String | 数据密钥DataKey加密后的密文,用户需要自行保存该密文,KMS不托管用户的数据密钥。可以通过Decrypt接口从CiphertextBlob中获取数据密钥DataKey明文 示例值: GPJUsGlmPcSjHKIktXGyzn33yestz+7NteW36M6FuL8hPfJ1xVfdO6Akr8sF69x3yBXMwto4njumJMIsi9WKow==-k-XqqalxTyNKIC1rITRePFGQ==-k-xAL9z9eXIHV/p+WT1RsHP3dm6f43bkomXjwmvWdMXH+JQoFORTThfXgcRh1f9lPNLENK4+fCOiQVG1VvLdA0RvcuRvU= |
| RequestId | String | 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 |
4. 错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见公共错误码。
| 错误码 | 描述 |
|---|---|
| InvalidParameter | 参数错误。 |
| ResourceUnavailable.CmkDisabled | CMK已被禁用。 |
| ResourceUnavailable.CmkNotFound | CMK不存在。 |
| InvalidParameterValue.InvalidKeyId | KeyId不合法。 |
| InternalError | 内部错误。 |
| UnauthorizedOperation | 未授权操作。 |