Method: cryptoKeyVersions.import

Full name: projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.import

Import wrapped key material into a CryptoKeyVersion.

All requests must specify a CryptoKey. If a CryptoKeyVersion is additionally specified in the request, key material will be reimported into that version. Otherwise, a new version will be created, and will be assigned the next sequential id within the CryptoKey.

HTTP request

POST https://cloudkms.googleapis.com/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions:import

The URL uses gRPC Transcoding syntax.

Path parameters

Parameters
parent

string

Required. The name of the CryptoKey to be imported into.

The create permission is only required on this key when creating a new CryptoKeyVersion.

Authorization requires the following IAM permission on the specified resource parent:

  • cloudkms.cryptoKeyVersions.create

Request body

The request body contains data with the following structure:

JSON representation
{
  "cryptoKeyVersion": string,
  "algorithm": enum (CryptoKeyVersionAlgorithm),
  "importJob": string,
  "rsaAesWrappedKey": string
}
Fields
cryptoKeyVersion

string

Optional. The optional name of an existing CryptoKeyVersion to target for an import operation. If this field is not present, a new CryptoKeyVersion containing the supplied key material is created.

If this field is present, the supplied key material is imported into the existing CryptoKeyVersion. To import into an existing CryptoKeyVersion, the CryptoKeyVersion must be a child of ImportCryptoKeyVersionRequest.parent, have been previously created via [cryptoKeyVersions.import][], and be in DESTROYED or IMPORT_FAILED state. The key material and algorithm must match the previous CryptoKeyVersion exactly if the CryptoKeyVersion has ever contained key material.

Authorization requires the following IAM permission on the specified resource cryptoKeyVersion:

  • cloudkms.cryptoKeyVersions.update
algorithm

enum (CryptoKeyVersionAlgorithm)

Required. The algorithm of the key being imported. This does not need to match the versionTemplate of the CryptoKey this version imports into.

importJob

string

Required. The name of the ImportJob that was used to wrap this key material.

Authorization requires the following IAM permission on the specified resource importJob:

  • cloudkms.importjobs.useToImport
rsaAesWrappedKey

string (bytes format)

Wrapped key material produced with RSA_OAEP_3072_SHA1_AES_256 or RSA_OAEP_4096_SHA1_AES_256.

This field contains the concatenation of two wrapped keys:

  1. An ephemeral AES-256 wrapping key wrapped with the publicKey using RSAES-OAEP with SHA-1/SHA-256, MGF1 with SHA-1/SHA-256, and an empty label.
  2. The key to be imported, wrapped with the ephemeral AES-256 key using AES-KWP (RFC 5649).

If importing symmetric key material, it is expected that the unwrapped key contains plain bytes. If importing asymmetric key material, it is expected that the unwrapped key is in PKCS#8-encoded DER format (the PrivateKeyInfo structure from RFC 5208).

This format is the same as the format produced by PKCS#11 mechanism CKM_RSA_AES_KEY_WRAP.

A base64-encoded string.

Response body

If successful, the response body contains an instance of CryptoKeyVersion.

Authorization Scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/cloudkms
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.