Struct aws_manager::kms::DEK
source · Expand description
Represents the data encryption key.
Fields§
§ciphertext: Vec<u8>§plaintext: Vec<u8>Implementations§
source§impl DEK
impl DEK
sourcepub fn new(cipher: Vec<u8>, plain: Vec<u8>) -> Self
pub fn new(cipher: Vec<u8>, plain: Vec<u8>) -> Self
Examples found in repository?
src/kms/mod.rs (lines 392-395)
370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396
pub async fn generate_data_key(&self, key_id: &str, spec: Option<DataKeySpec>) -> Result<DEK> {
// default to "AES_256" for generate 256-bit symmetric key (32-byte)
let dek_spec = spec.unwrap_or(DataKeySpec::Aes256);
log::info!(
"generating KMS data key for '{}' with key spec {:?}",
key_id,
dek_spec
);
let resp = self
.cli
.generate_data_key()
.key_id(key_id)
.key_spec(dek_spec)
.send()
.await
.map_err(|e| API {
message: format!("failed generate_data_key {:?}", e),
is_retryable: is_error_retryable(&e) || is_error_retryable_generate_data_key(&e),
})?;
let cipher = resp.ciphertext_blob().unwrap();
let plain = resp.plaintext().unwrap();
Ok(DEK::new(
cipher.clone().into_inner(),
plain.clone().into_inner(),
))
}