package google.cloud.kms.v1

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

service KeyManagementService

service.proto:44

Google Cloud Key Management Service Manages cryptographic keys and operations using those keys. Implements a REST model with the following objects: * [KeyRing][google.cloud.kms.v1.KeyRing] * [CryptoKey][google.cloud.kms.v1.CryptoKey] * [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] If you are using manual gRPC libraries, see [Using gRPC with Cloud KMS](https://cloud.google.com/kms/docs/grpc).

message CryptoKey

resources.proto:47

A [CryptoKey][google.cloud.kms.v1.CryptoKey] represents a logical key that can be used for cryptographic operations. A [CryptoKey][google.cloud.kms.v1.CryptoKey] is made up of one or more [versions][google.cloud.kms.v1.CryptoKeyVersion], which represent the actual key material used in cryptographic operations.

Used as response type in: KeyManagementService.CreateCryptoKey, KeyManagementService.GetCryptoKey, KeyManagementService.UpdateCryptoKey, KeyManagementService.UpdateCryptoKeyPrimaryVersion

Used as field type in: CreateCryptoKeyRequest, ListCryptoKeysResponse, UpdateCryptoKeyRequest

enum CryptoKey.CryptoKeyPurpose

resources.proto:52

[CryptoKeyPurpose][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose] describes the cryptographic capabilities of a [CryptoKey][google.cloud.kms.v1.CryptoKey]. A given key can only be used for the operations allowed by its purpose. For more information, see [Key purposes](https://cloud.google.com/kms/docs/algorithms#key_purposes).

Used in: CryptoKey

message CryptoKeyVersion

resources.proto:187

A [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] represents an individual cryptographic key, and the associated key material. An [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] version can be used for cryptographic operations. For security reasons, the raw cryptographic key material represented by a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] can never be viewed or exported. It can only be used to encrypt, decrypt, or sign data when an authorized user or application invokes Cloud KMS.

Used as response type in: KeyManagementService.CreateCryptoKeyVersion, KeyManagementService.DestroyCryptoKeyVersion, KeyManagementService.GetCryptoKeyVersion, KeyManagementService.ImportCryptoKeyVersion, KeyManagementService.RestoreCryptoKeyVersion, KeyManagementService.UpdateCryptoKeyVersion

Used as field type in: CreateCryptoKeyVersionRequest, CryptoKey, ListCryptoKeyVersionsResponse, UpdateCryptoKeyVersionRequest

enum CryptoKeyVersion.CryptoKeyVersionAlgorithm

resources.proto:222

The algorithm of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating what parameters must be used for each cryptographic operation. The [GOOGLE_SYMMETRIC_ENCRYPTION][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION] algorithm is usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]. Algorithms beginning with "RSA_SIGN_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN]. The fields in the name after "RSA_SIGN_" correspond to the following parameters: padding algorithm, modulus bit length, and digest algorithm. For PSS, the salt length used is equal to the length of digest algorithm. For example, [RSA_SIGN_PSS_2048_SHA256][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.RSA_SIGN_PSS_2048_SHA256] will use PSS with a salt length of 256 bits or 32 bytes. Algorithms beginning with "RSA_DECRYPT_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] [ASYMMETRIC_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_DECRYPT]. The fields in the name after "RSA_DECRYPT_" correspond to the following parameters: padding algorithm, modulus bit length, and digest algorithm. Algorithms beginning with "EC_SIGN_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN]. The fields in the name after "EC_SIGN_" correspond to the following parameters: elliptic curve, digest algorithm. For more information, see [Key purposes and algorithms] (https://cloud.google.com/kms/docs/algorithms).

Used in: CryptoKeyVersion, CryptoKeyVersionTemplate, ImportCryptoKeyVersionRequest, PublicKey

enum CryptoKeyVersion.CryptoKeyVersionState

resources.proto:273

The state of a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating if it can be used.

Used in: CryptoKeyVersion

enum CryptoKeyVersion.CryptoKeyVersionView

resources.proto:315

A view for [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]s. Controls the level of detail returned for [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] in [KeyManagementService.ListCryptoKeyVersions][google.cloud.kms.v1.KeyManagementService.ListCryptoKeyVersions] and [KeyManagementService.ListCryptoKeys][google.cloud.kms.v1.KeyManagementService.ListCryptoKeys].

Used in: ListCryptoKeyVersionsRequest, ListCryptoKeysRequest

message CryptoKeyVersionTemplate

resources.proto:137

A [CryptoKeyVersionTemplate][google.cloud.kms.v1.CryptoKeyVersionTemplate] specifies the properties to use when creating a new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], either manually with [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] or automatically as a result of auto-rotation.

Used in: CryptoKey

message Digest

service.proto:698

A [Digest][google.cloud.kms.v1.Digest] holds a cryptographic message digest.

Used in: AsymmetricSignRequest

message ImportJob

resources.proto:434

An [ImportJob][google.cloud.kms.v1.ImportJob] can be used to create [CryptoKeys][google.cloud.kms.v1.CryptoKey] and [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] using pre-existing key material, generated outside of Cloud KMS. When an [ImportJob][google.cloud.kms.v1.ImportJob] is created, Cloud KMS will generate a "wrapping key", which is a public/private key pair. You use the wrapping key to encrypt (also known as wrap) the pre-existing key material to protect it during the import process. The nature of the wrapping key depends on the choice of [import_method][google.cloud.kms.v1.ImportJob.import_method]. When the wrapping key generation is complete, the [state][google.cloud.kms.v1.ImportJob.state] will be set to [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE] and the [public_key][google.cloud.kms.v1.ImportJob.public_key] can be fetched. The fetched public key can then be used to wrap your pre-existing key material. Once the key material is wrapped, it can be imported into a new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in an existing [CryptoKey][google.cloud.kms.v1.CryptoKey] by calling [ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion]. Multiple [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] can be imported with a single [ImportJob][google.cloud.kms.v1.ImportJob]. Cloud KMS uses the private key portion of the wrapping key to unwrap the key material. Only Cloud KMS has access to the private key. An [ImportJob][google.cloud.kms.v1.ImportJob] expires 3 days after it is created. Once expired, Cloud KMS will no longer be able to import or unwrap any key material that was wrapped with the [ImportJob][google.cloud.kms.v1.ImportJob]'s public key. For more information, see [Importing a key](https://cloud.google.com/kms/docs/importing-a-key).

Used as response type in: KeyManagementService.CreateImportJob, KeyManagementService.GetImportJob

Used as field type in: CreateImportJobRequest, ListImportJobsResponse

enum ImportJob.ImportJobState

resources.proto:470

The state of the [ImportJob][google.cloud.kms.v1.ImportJob], indicating if it can be used.

Used in: ImportJob

enum ImportJob.ImportMethod

resources.proto:448

[ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod] describes the key wrapping method chosen for this [ImportJob][google.cloud.kms.v1.ImportJob].

Used in: ImportJob

message ImportJob.WrappingPublicKey

resources.proto:437

The public key component of the wrapping key. For details of the type of key this public key corresponds to, see the [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod].

Used in: ImportJob

message KeyOperationAttestation

resources.proto:154

Contains an HSM-generated attestation about a key operation. For more information, see [Verifying attestations] (https://cloud.google.com/kms/docs/attest-key).

Used in: CryptoKeyVersion, ImportJob

enum KeyOperationAttestation.AttestationFormat

resources.proto:156

Attestation formats provided by the HSM.

Used in: KeyOperationAttestation

message KeyRing

resources.proto:33

A [KeyRing][google.cloud.kms.v1.KeyRing] is a toplevel logical grouping of [CryptoKeys][google.cloud.kms.v1.CryptoKey].

Used as response type in: KeyManagementService.CreateKeyRing, KeyManagementService.GetKeyRing

Used as field type in: CreateKeyRingRequest, ListKeyRingsResponse

message LocationMetadata

service.proto:713

Cloud KMS metadata for the given [google.cloud.location.Location][google.cloud.location.Location].

enum ProtectionLevel

resources.proto:396

[ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] specifies how cryptographic operations are performed. For more information, see [Protection levels] (https://cloud.google.com/kms/docs/algorithms#protection_levels).

Used in: CryptoKeyVersion, CryptoKeyVersionTemplate, ImportJob