[init] aecs init supports base64 encoded data
This commit is contained in:
parent
e2f7e6109a
commit
6e48dcce50
23
tools/init_aecs/Cargo.lock
generated
23
tools/init_aecs/Cargo.lock
generated
@ -2,10 +2,27 @@
|
|||||||
# It is not intended for manual editing.
|
# It is not intended for manual editing.
|
||||||
version = 3
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "base64"
|
||||||
|
version = "0.9.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
|
||||||
|
dependencies = [
|
||||||
|
"byteorder",
|
||||||
|
"safemem",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "byteorder"
|
||||||
|
version = "1.4.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "init_aecs"
|
name = "init_aecs"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"base64",
|
||||||
"libc",
|
"libc",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@ -47,6 +64,12 @@ version = "1.0.13"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
|
checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "safemem"
|
||||||
|
version = "0.3.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde"
|
name = "serde"
|
||||||
version = "1.0.158"
|
version = "1.0.158"
|
||||||
|
@ -11,3 +11,4 @@ edition = "2021"
|
|||||||
libc = "0.2.84"
|
libc = "0.2.84"
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
|
base64 = "0.9"
|
@ -1,3 +1,4 @@
|
|||||||
|
extern crate base64;
|
||||||
extern crate libc;
|
extern crate libc;
|
||||||
extern crate serde;
|
extern crate serde;
|
||||||
extern crate serde_json;
|
extern crate serde_json;
|
||||||
@ -75,6 +76,9 @@ struct KmsKeys {
|
|||||||
key: String,
|
key: String,
|
||||||
path: String,
|
path: String,
|
||||||
service: String,
|
service: String,
|
||||||
|
// Encode option, currently only support base64
|
||||||
|
#[serde(default)]
|
||||||
|
encode: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize, Debug)]
|
#[derive(Deserialize, Serialize, Debug)]
|
||||||
@ -133,6 +137,17 @@ fn get_kms_keys(
|
|||||||
|
|
||||||
buffer.resize(buffer_len as usize, 0);
|
buffer.resize(buffer_len as usize, 0);
|
||||||
|
|
||||||
|
// Do decode if necessary
|
||||||
|
if let Some(encode) = keys.encode {
|
||||||
|
if encode == "base64" {
|
||||||
|
println!("base64 encoded key {:}", keys.key);
|
||||||
|
let base64_string = String::from_utf8(buffer).expect("error converting to string");
|
||||||
|
let mut buf = Vec::<u8>::new();
|
||||||
|
base64::decode_config_buf(&base64_string, base64::STANDARD, &mut buf).unwrap();
|
||||||
|
buffer = buf.clone();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let key_info: KeyInfo = KeyInfo {
|
let key_info: KeyInfo = KeyInfo {
|
||||||
path: keys.path.clone(),
|
path: keys.path.clone(),
|
||||||
val_buf: buffer.clone(),
|
val_buf: buffer.clone(),
|
||||||
|
Loading…
Reference in New Issue
Block a user