更新时间:2025-09-18 GMT+08:00
分享

重加密

功能介绍

将密文使用源密钥解密后,再使用指定的新密钥加密。

能将CreateDatekey,CreateDatakeyWithoutPlainText,EncryptDatakey加密的数据密钥密文重新加密成新的数据密钥密文。

能将EncryptData加密的密文重新加密成新的密文。

注意:

数据密钥只会被重加密成数据密钥

调用方法

请参见如何调用API

URI

POST /v1.0/{project_id}/kms/re-encrypt

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

source_key_id

String

原密钥ID,用于解密密文。对于非对称密钥加密的密文source_key_id必填。对于对称密钥加密的密文,推荐填写source_key_id。kms会优先使用您填写的source_key_id进行解密。不填时会尝试从密文中解析出加密时使用的密钥ID进行解密。

source_additional_authenticated_data

String

加密原密文时使用的aad信息。如果加密时,没指定aad,则不能填写,否则会造成解密失败

source_encryption_algorithm

String

加密原密文时使用的加密算法。默认值为“SYMMETRIC_DEFAULT”,合法枚举值如下:

SYMMETRIC_DEFAULT

RSAES_OAEP_SHA_1

RSAES_OAEP_SHA_256

SM2_ENCRYPT

注意:RSAES_OAEP_SHA_1已不再安全,请谨慎使用

destination_key_id

String

目的密钥ID,用于加密解密后的明文

destination_additional_authenticated_data

String

如果指定了值,会在重加密时,作为aad参与计算

destination_encryption_algorithm

String

重加密新密文时使用的加密算法。默认值为“SYMMETRIC_DEFAULT”,合法枚举值如下:

SYMMETRIC_DEFAULT

RSAES_OAEP_SHA_1

RSAES_OAEP_SHA_256

SM2_ENCRYPT

注意:RSAES_OAEP_SHA_1已不再安全,请谨慎使用

datakey_cipher_length

String

当密文是CBC 模式加密的 数据密钥时,需要指定datakey_cipher_length。表示明文密钥材料的字节数

cipher_text

String

需要进行重加密的密文。

响应参数

状态码:200

表4 响应Body参数

参数

参数类型

描述

key_id

String

重新加密时使用的密钥ID

source_key_id

String

加密原密文时使用的密钥ID

source_encryption_algorithm

String

原密文加密时使用的加密算法

destination_encryption_algorithm

String

重新加密时使用的加密算法

cipher_text

String

重新加密后的密文

请求示例

https://kms.cn-north-4.myhuaweicloud.com/v1.0/d4e559b49b3b403da5279723299ed4a6/kms/re-encrypt

{
  "source_key_id" : "054faae3-ffc2-4b23-8d94-c05bfc8f596a",
  "source_additional_authenticated_data" : "",
  "source_encryption_algorithm" : "SYMMETRIC_DEFAULT",
  "destination_key_id" : "8ad47b5b-037e-4ff9-bf04-6900e3213c17",
  "destination_additional_authenticated_data" : "123",
  "destination_encryption_algorithm" : "SYMMETRIC_DEFAULT",
  "datakey_cipher_length" : "32",
  "cipher_text" : "020078000871efb21bfdc0712becf0dabfcc115a25eae06efb652aa9afa9689a4c4ec46b4bbeb3a902369b1a53eab67e9b8e730ced3879d1fb62c27cc314f2a44943687741a5d250403c861e4410936d422ef2d330353466616165332d666663322d346232332d386439342d63303562666338663539366100000000ed7fb70234ac273dedc19752900c6f7e4577fc2c1f1482539d0142ab0ff9fdda"
}

响应示例

状态码

状态码

描述

200

请求已成功

错误码

请参见错误码

相关文档