An optional parameter to set the Customer-Supplied Encryption key.
Application developers can generate their own encryption keys to protect the data in GCS. This is known as a Customer-Supplied Encryption key (CSEK). If the application provides a CSEK, GCS does not retain the key. The object data, the object CRC32 checksum, and its MD5 hash (if applicable) are all encrypted with this key, and the key is required to read any of these elements back.
Care must be taken to save and protect these keys, if lost, the data is not recoverable. Also, applications should avoid generating predictable keys, as this weakens the encryption.
This option is used in read (download), write (upload), copy, and compose operations. Note that copy and compose operations use the same key for the source and destination objects.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["\u003cp\u003eThis document details the \u003ccode\u003eEncryptionKey\u003c/code\u003e structure within the Google Cloud Storage C++ library, covering versions from 2.11.0 up to the latest release candidate 2.37.0-rc.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eEncryptionKey\u003c/code\u003e structure allows application developers to utilize Customer-Supplied Encryption Keys (CSEK) for enhanced data protection in Google Cloud Storage.\u003c/p\u003e\n"],["\u003cp\u003eThe library provides two static functions, \u003ccode\u003eFromBinaryKey\u003c/code\u003e and \u003ccode\u003eFromBase64Key\u003c/code\u003e, to create encryption keys from binary or base64-encoded formats, requiring a 32-byte key.\u003c/p\u003e\n"],["\u003cp\u003eCSEK is used for read, write, copy, and compose operations, and the same key must be applied for both the source and destination objects during copy and compose actions.\u003c/p\u003e\n"],["\u003cp\u003eIt is critical for users to securely store their CSEK keys because loss of these keys results in irrecoverable data, as Google Cloud Storage does not retain them.\u003c/p\u003e\n"]]],[],null,[]]