gcloud kms raw-encrypt Stay organized with collections Save and categorize content based on your preferences.
- NAME
- gcloud kms raw-encrypt - encrypt a plaintext file using a raw key
- SYNOPSIS
gcloud kms raw-encrypt--ciphertext-file=CIPHERTEXT_FILE--plaintext-file=PLAINTEXT_FILE--version=VERSION[--additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE][--initialization-vector-file=INITIALIZATION_VECTOR_FILE][--key=KEY][--keyring=KEYRING][--location=LOCATION][--skip-integrity-verification][GCLOUD_WIDE_FLAG …]
- DESCRIPTION
- Encrypts the given plaintext file using the given CryptoKey containing a raw keyand writes the result to the named ciphertext file. The plaintext file must notbe larger than 64KiB. For the AES-CBC algorithms, no server-side padding isbeing done, so the plaintext must be a multiple of the block size.
The supported algorithms are:
AES-128-GCM,AES-256-GCM,AES-128-CBC,AES-256-CBC,AES-128-CTR,and AES-256-CTR.AES-GCMprovides authentication which means that it acceptsadditional authenticated data (AAD). So, the flag--additional-authenticated-data-fileis only valid withAES-128-GCMandAES-256-GCMalgorithms.The initialization vector (flag
--initialization-vector-file) isonly supported forAES-CBCandAES-CTRalgorithms, andmust be 16B in length.Therefore, both additional authenticated data and initialization vector can't beprovided during encryption. If an additional authenticated data file isprovided, its contents must also be provided during decryption. The file mustnot be larger than 64KiB.
The flag
--versionindicates the version of the key to use forencryption.If
--plaintext-fileor--additional-authenticated-data-fileor--initialization-vector-fileis set to '-', that file is read fromstdin. Similarly, if--ciphertext-fileis set to '-', theciphertext is written to stdout.By default, the command performs integrity verification on data sent to andreceived from Cloud KMS. Use
--skip-integrity-verificationtodisable integrity verification. - EXAMPLES
- The following command reads and encrypts the file
path/to/input/plaintext. The file will be encrypted using theAES-GCMCryptoKeyKEYNAMEfrom the KeyRingKEYRINGin thegloballocation using the additionalauthenticated data filepath/to/input/aad. The resulting ciphertextwill be written topath/to/output/ciphertext.gcloudkmsraw-encrypt--key=KEYNAME--keyring=KEYRING--location=global--plaintext-file=path/to/input/plaintext--additional-authenticated-data-file=path/to/input/aad--ciphertext-file=path/to/output/ciphertextThe following command reads and encrypts the file
path/to/input/plaintext. The file will be encrypted using theAES-CBCCryptoKeyKEYNAMEfrom the KeyRingKEYRINGin thegloballocation using theinitialization vector stored atpath/to/input/aad. The resultingciphertext will be written topath/to/output/ciphertext.gcloudkmsraw-encrypt--key=KEYNAME--keyring=KEYRING--location=global--plaintext-file=path/to/input/plaintext--initialization-vector-file=path/to/input/iv--ciphertext-file=path/to/output/ciphertext - REQUIRED FLAGS
--ciphertext-file=CIPHERTEXT_FILE- File path of the ciphertext file to output.
--plaintext-file=PLAINTEXT_FILE- File path of the plaintext file to encrypt.
--version=VERSION- Version to use for encryption.
- OPTIONAL FLAGS
--additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE- File path to the optional file containing the additional authenticated data.
--initialization-vector-file=INITIALIZATION_VECTOR_FILE- File path to the optional file containing the initialization vector forencryption.
--key=KEY- The key to use for encryption.
--keyring=KEYRING- Key ring of the key.
--location=LOCATION- Location of the keyring.
--skip-integrity-verification- Skip integrity verification on request and response API fields.
- GCLOUD WIDE FLAGS
- These flags are available to all commands:
--access-token-file,--account,--billing-project,--configuration,--flags-file,--flatten,--format,--help,--impersonate-service-account,--log-http,--project,--quiet,--trace-token,--user-output-enabled,--verbosity.Run
$gcloud helpfor details. - NOTES
- These variants are also available:
gcloudalphakmsraw-encryptgcloudbetakmsraw-encrypt
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-05-07 UTC.