Skip to content

Commit 0008518

Browse files
committed
docs(lib): propagate errors in the encryption quick start (LAB-8004)
The crate-level encryption example unwrapped every fallible call, so a short key from a secret manager panicked. It now runs in a Result-returning main and uses ?, matching the README quick start.
1 parent c10b5c1 commit 0008518

1 file changed

Lines changed: 17 additions & 13 deletions

File tree

‎src/lib.rs‎

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,23 @@
4242
//! use cachekit_core::{ZeroKnowledgeEncryptor, derive_domain_key};
4343
//! use zeroize::Zeroizing; // add the zeroize crate to your Cargo.toml
4444
//!
45-
//! // Derive tenant-isolated key
46-
//! // From your secret manager or CACHEKIT_MASTER_KEY, hex-decoded to 32 raw bytes.
47-
//! // Never hard-code it, and never pass the hex string's bytes.
48-
//! // Zeroizing wipes each key from memory when it is dropped.
49-
//! let master_key = Zeroizing::new(load_master_key_from_secret_manager());
50-
//! let tenant_key = Zeroizing::new(derive_domain_key(master_key.as_slice(), "cache", b"tenant-123").unwrap());
51-
//!
52-
//! // Encrypt
53-
//! let encryptor = ZeroKnowledgeEncryptor::new().unwrap();
54-
//! let ciphertext = encryptor.encrypt_aes_gcm(b"secret", tenant_key.as_slice(), b"tenant-123").unwrap();
55-
//!
56-
//! // Decrypt
57-
//! let plaintext = encryptor.decrypt_aes_gcm(&ciphertext, tenant_key.as_slice(), b"tenant-123").unwrap();
45+
//! fn main() -> Result<(), Box<dyn std::error::Error>> {
46+
//! // Derive tenant-isolated key
47+
//! // From your secret manager or CACHEKIT_MASTER_KEY, hex-decoded to 32 raw bytes.
48+
//! // Never hard-code it, and never pass the hex string's bytes.
49+
//! // Zeroizing wipes each key from memory when it is dropped.
50+
//! let master_key = Zeroizing::new(load_master_key_from_secret_manager()?);
51+
//! let tenant_key = Zeroizing::new(derive_domain_key(master_key.as_slice(), "cache", b"tenant-123")?);
52+
//!
53+
//! // Encrypt
54+
//! let encryptor = ZeroKnowledgeEncryptor::new()?;
55+
//! let ciphertext = encryptor.encrypt_aes_gcm(b"secret", tenant_key.as_slice(), b"tenant-123")?;
56+
//!
57+
//! // Decrypt
58+
//! let plaintext = encryptor.decrypt_aes_gcm(&ciphertext, tenant_key.as_slice(), b"tenant-123")?;
59+
//! assert_eq!(plaintext, b"secret");
60+
//! Ok(())
61+
//! }
5862
//! ```
5963
//!
6064
//! ## Security Properties

0 commit comments

Comments
 (0)