产品概述
产品优势
应用场景
基本概念

tccli kms CreateKey --Alias <alias> --Type 2
def create_external_key(client, alias):"""生成 BYOK 密钥,:param Type = 2"""try:req = models.CreateKeyRequest()req.Alias = aliasreq.Type = 2rsp = client.CreateKey(req)return rsp, Noneexcept TencentCloudSDKException as err:return None, err
tccli kms GetParametersForImport --KeyId <keyid> --WrappingAlgorithm RSAES_PKCS1_V1_5 --WrappingKeySpec RSA_2048
def get_parameters_for_import(client, keyid):"""获取导入主密钥(CMK)材料的参数,返回的Token作为执行ImportKeyMaterial的参数之一,返回的PublicKey用于对自主导入密钥材料进行加密。返回的Token和PublicKey 24小时后失效,失效后如需重新导入,需要再次调用该接口获取新的 Token 和 PublicKey。WrappingAlgorithm 指定加密密钥材料的算法,目前支持 RSAES_PKCS1_V1_5、RSAES_OAEP_SHA_1、RSAES_OAEP_SHA_256。WrappingKeySpec 指定加密密钥材料的类型,目前只支持 RSA_2048。"""try:req = models.GetParametersForImportRequest()req.KeyId = keyidreq.WrappingAlgorithm = 'RSAES_PKCS1_V1_5' # RSAES_PKCS1_V1_5 | RSAES_OAEP_SHA_1 | RSAES_OAEP_SHA_256req.WrappingKeySpec = 'RSA_2048' # RSA_2048rsp = self.client.GetParametersForImport(req)return rsp, Noneexcept TencentCloudSDKException as err:return None, err
openssl rand -out raw_material.bin 16
openssl enc -d -base64 -A -in public_key.base64 -out public_key.bin
# RSAES_OAEP_SHA_1 对应的命令行如下openssl pkeyutl -in raw_material.bin -out encrypted_key_material.bin -inkey public_key.bin -keyform DER -pubin -encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha1# RSAES_PKCS1_V1_5 对应的命令行如下openssl pkeyutl -in raw_material.bin -out encrypted_key_material.bin -inkey public_key.bin -keyform DER -pubin -encrypt -pkeyopt rsa_padding_mode:pkcs1# RSAES_OAEP_SHA_256 对应的命令行如下openssl pkeyutl -in raw_material.bin -out encrypted_key_material.bin -inkey public_key.bin -keyform DER -pubin -encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256
openssl enc -e -base64 -A -in encrypted_key_material.bin -out encrypted_material.base64
tccli kms ImportKeyMaterial --EncryptedKeyMaterial <material> --ImportToken <token> --KeyId <keyid>
def import_key_material(client, material, token, keyid):try:req = models.ImportKeyMaterialRequest()req.EncryptedKeyMaterial = materialreq.ImportToken = tokenreq.KeyId = keyidrsp = client.ImportKeyMaterial(req)return rsp, Noneexcept TencentCloudSDKException as err:return None, err
tccli DeleteImportedKeyMaterial --KeyId <keyid>
def delete_key_material(client, keyid):try:req = models.DeleteImportedKeyMaterialRequest()req.KeyId = keyidrsp = client.DeleteImportedKeyMaterial(req)return rsp, Noneexcept TencentCloudSDKException as err:return None, err
文档反馈