MENU
      Create Custom Key

        Create Custom Key


        Article summary

        Available in Classic and VPC

        Create a randomized raw key that can be utilized as an encryption key. It can only be requested as an AES256 or RSA2048 key type.

        Request

        This section describes the request format. The method and URI are as follows:

        MethodURI
        POST/keys/{keyTag}/create-custom-key

        Request headers

        For information about the headers common to all Key Management Service APIs, see the token authentication method in Key Management Service request headers.

        Request path parameters

        You can use the following path parameters with your request:

        FieldTypeRequiredDescription
        keyTagStringRequiredKey tag
        • Unique identifier for the key derived from the key name
        • Check through Get key list
        • Use to request encryption or decryption with REST APIs
        • Key tags are not treated as confidential information

        Request body

        You can include the following data in the body of your request:

        FieldTypeRequiredDescription
        requestPlainKeyBooleanOptionalWhether to create encrypted random plaintext
        • true | false (default)
          • true: create
          • false: not create
        bitsIntegerOptionalSize of the key data to create (bit)
        • 128 | 256 (default) | 512
        contextStringConditionalBase64-encoded string data
        • Required when using keys with convergent encryption
        • Can be up to 50 bytes long
        • Always generate the same ciphertext, even when encrypting the same data multiple times

        Request example

        The request example is as follows:

        curl --location --request POST 'https://ocapi.ncloud.com/kms/v1/keys/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6/create-custom-key' \
        --header 'x-ncp-ocapi-token: {Access Token}' \
        --data '{
          "requestPlainKey": true,
          "bits": 256,
          "context": "{BASE64_CONTEXT}"
        }'
        Shell

        Response

        This section describes the response format.

        Response body

        The response body includes the following data:

        FieldTypeRequiredDescription
        codeString-Success or Failure
        dataObject-Response result
        data.plaintextString or Array<String>-Base64-encoded random string data
        data.ciphertextString-String data created by encrypting a random plaintext
        data.key_versionInteger-Version of the created custom key

        Response status codes

        For response status codes common to all Key Management Service APIs, see Key Management Service response status codes.

        Response example

        The response example is as follows:

        {
            "code": "SUCCESS",
            "data": {
                "plaintext": "{BASE64_PLAINTEXT}",
                "ciphertext": "{CIPHERTEXT}",
                "key_version": 1
            }
        }
        JSON

        Was this article helpful?

        Changing your password will log you out immediately. Use the new password to log back in.
        First name must have atleast 2 characters. Numbers and special characters are not allowed.
        Last name must have atleast 1 characters. Numbers and special characters are not allowed.
        Enter a valid email
        Enter a valid password
        Your profile has been successfully updated.