An optional parameter to set the Customer-Supplied Encryption key for rewrite source object.
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 only in rewrite operations and it defines the key used for the source object.
[[["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 webpage provides documentation for the \u003ccode\u003eSourceEncryptionKey\u003c/code\u003e structure in the Google Cloud Storage C++ library, detailing its use in managing customer-supplied encryption keys.\u003c/p\u003e\n"],["\u003cp\u003eThe page lists available versions of the \u003ccode\u003eSourceEncryptionKey\u003c/code\u003e documentation, ranging from version 2.11.0 to the latest release candidate 2.37.0-rc.\u003c/p\u003e\n"],["\u003cp\u003eCustomer-supplied encryption keys (CSEK) are used to protect data in Google Cloud Storage, and the key is required to read the encrypted data.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eSourceEncryptionKey\u003c/code\u003e structure offers methods to create encryption keys from either a binary key (\u003ccode\u003eFromBinaryKey\u003c/code\u003e) or a base64-encoded key (\u003ccode\u003eFromBase64Key\u003c/code\u003e), and they both require keys of exactly 32 bytes.\u003c/p\u003e\n"],["\u003cp\u003eThis feature is specifically designed for rewrite operations, where it defines the key associated with the source object.\u003c/p\u003e\n"]]],[],null,[]]