Last updated: 2021-10-25 17:13:03

    1. API Description

    Domain name for API request:

    This API generates a data key, which you can use to encrypt local data.

    A maximum of 100 requests can be initiated per second for this API.

    We recommend you to use API Explorer
    Try it
    API Explorer provides a range of capabilities, including online call, signature authentication, SDK code generation, and API quick search. It enables you to view the request, response, and auto-generated examples.

    2. Input Parameters

    The following request parameter list only provides API request parameters and some common parameters. For the complete common parameter list, see Common Request Parameters.

    Parameter Name Required Type Description
    Action Yes String Common parameter. The value used for this API: GenerateDataKey.
    Version Yes String Common parameter. The value used for this API: 2019-01-18.
    Region Yes String Common parameter. For more information, please see the list of regions supported by the product.
    KeyId Yes String Globally unique CMK ID
    KeySpec No String Specifies the encryption algorithm and size of the DataKey. Valid values: AES_128, AES_256. Either KeySpec or NumberOfBytes must be specified.
    NumberOfBytes No Integer Length of the DataKey. If both NumberOfBytes and KeySpec are specified, NumberOfBytes will prevail. Minimum value: 1; maximum value: 1024. Either KeySpec or NumberOfBytes must be specified.
    EncryptionContext No String JSON string of key-value pair. If this field is used, the same string should be entered when the returned DataKey is decrypted.

    3. Output Parameters

    Parameter Name Type Description
    KeyId String Globally unique CMK ID
    Plaintext String Plaintext of the generated data key. The plaintext is Base64-encoded and can be used locally after having it Base64-decoded.
    CiphertextBlob String Ciphertext of the data key, which should be kept by yourself. KMS does not host user data keys. You can call the Decrypt API to get the plaintext of the data key from CiphertextBlob.
    RequestId String The unique request ID, which is returned for each request. RequestId is required for locating a problem.

    4. Example

    Example1 Generating DEK

    This example shows you how to generate a DEK by using the specified CMK.

    Input Example
    &<Common request parameters>

    Output Example

    "Response": {
      "RequestId": "fe11aa29-0cc2-4204-bfea-6ebb30cc00d7",
      "KeyId": "23e80852-1e38-11e9-b129-5cb9019b4b01",
      "Plaintext": "uW9wqntw+FAgnfsIrxOpOA==",
      "CiphertextBlob": "g2F8eQk44QrTbfj09TL17AZyFPgs8BTtZe2j27Wuw1YzTBCxnd0T/gwFQSasmtzxZi6mmvD7DCjCE+LxJmdhXQ==-k-fKVP3WIlGpg8m9LMW4jEkQ==-k-h/nUfRbaTUY7/KWXwuSK1Py+ZFRTK5WQiUz6yQE5XBFUN3UwPOUbl8P3A3caow2rlqTjUw=="

    5. Developer Resources


    TencentCloud API 3.0 integrates SDKs that support various programming languages to make it easier for you to call APIs.

    Command Line Interface

    6. Error Code

    The following only lists the error codes related to the API business logic. For other error codes, see Common Error Codes.

    Error Code Description
    InternalError Internal error.
    InvalidParameter Invalid parameter.
    InvalidParameterValue.InvalidKeyId Invalid KeyId.
    ResourceUnavailable.CmkDisabled The CMK has been disabled.
    ResourceUnavailable.CmkNotFound The CMK does not exist.
    UnauthorizedOperation Unauthorized operation.