From 3ea5189ad8781944dedd50146addaef3ca10e9f9 Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 2 Jun 2024 14:22:21 -0700 Subject: [PATCH] + remove deprecated stuff --- go_client/TODO.md | 14 ---- src/storage/sled.rs | 167 -------------------------------------------- 2 files changed, 181 deletions(-) delete mode 100644 go_client/TODO.md delete mode 100644 src/storage/sled.rs diff --git a/go_client/TODO.md b/go_client/TODO.md deleted file mode 100644 index 5b618bf..0000000 --- a/go_client/TODO.md +++ /dev/null @@ -1,14 +0,0 @@ -# Testing module proposals - -- Basic API calls - - Login/logout -- kv IO test module -- Token - - Lookup - - Generation - -(- TLS module) -(- Auth module) - - -==> Nur KvV2 testen \ No newline at end of file diff --git a/src/storage/sled.rs b/src/storage/sled.rs deleted file mode 100644 index d7108ea..0000000 --- a/src/storage/sled.rs +++ /dev/null @@ -1,167 +0,0 @@ -#[cfg(test)] -mod tests { - use super::*; - use base::create_mock_meta; - #[test] - fn test_update_secret() { - let db: sled::Db = sled::open("sled_db").unwrap(); - update_secret(&db, "foo", TempSecret{version: -99, content: "cool".to_string()}); - } - #[test] - fn test_get_secret() { - let db: sled::Db = sled::open("sled_db").unwrap(); - get_secret(&db, "foo"); - } - #[test] - fn test_delete_secret(){ - let db: sled::Db = sled::open("sled_db").unwrap(); - delete_secret(&db, "foo"); - } - #[test] - fn test_meta(){ - let db: sled::Db = sled::open("sled_db").unwrap(); - println!("writing metadata:"); - update_secret_meta(&db, "metatest", create_mock_meta()); - println!("getting metadata:"); - get_secretmeta(&db, "metatest"); - } -} - -use sled::Db; -use base::{deserialize_metadata_struct, deserialize_secret_struct, serialize_metadata_json, serialize_secret_json, SecretMeta, TempSecret}; - -/// [TODO] Currently no proper versioning -/// inserts a secret. If there was already a secret in the given path, the version is incremented -fn update_secret(db: &Db, path: &str, mut secret: TempSecret) { - match get_secret(db, path) { - Some(old_secret) => { - // case secret found. TODO save it somewhere for versioning - secret.version = old_secret.version + 1; - #[cfg(test)] - print!("something was found. new version {} \n", secret.version) - } - None => { - // case new secret - secret.version = 1; - } - } - // if let secret_json = serialize_secret_json(&secret) { - // let _res = db.insert(path, secret_json); // maybe this can be handled cleaner - match serialize_secret_json(&secret) { - Ok(secret_json) => { - #[cfg(test)] - println!("String: {:?}", secret_json.clone()); - let as_ivec = sled::IVec::from(secret_json.into_bytes()); // maybe outsource this in a fn later - #[cfg(test)] - println!("ivec: {:?}", as_ivec); - match db.insert(path, as_ivec) { - Ok(_) => println!("Secret inserted"), - Err(e) => eprintln!("Failed to insert secret: {}", e), - } - } - Err(e) => eprintln!("Failed to serialize secret: {}", e), - } -} - -// !TODO eliminate redundancy: refactor get and update functions to accept generic types! - -// read and return a secret from the DB -//if there is no secret, return None -fn get_secret(db: &Db, path: &str) -> Option{ - let raw_secret; - match db.get(path) { - Ok(Some(ivec)) => { - raw_secret = ivec; - } - Err(e) => { - eprintln!("Error on retrieving secret: {}", e); - return None; - } - Ok(None) => { - return None; - } - } - // outsource this in a fn later. TODO maybe deal with unwrap - let as_str = String::from_utf8(raw_secret.to_vec()).unwrap(); - match deserialize_secret_struct(&as_str) { - Ok(secret) => { - #[cfg(test)] - println!("got some secret: {:?}", secret); - return Some(secret); - } - Err(e) => { - eprintln!("error on secret deserialization: {}", e); - return None; - } - - } -} - - -// TODO write abstract get_something fn -// https://developer.hashicorp.com/vault/api-docs/secret/kv/kv-v2#read-secret-metadata -fn get_secretmeta(db: &Db, path: &str) -> Option{ - let raw_metadata; - match db.get(path) { - Ok(Some(ivec)) => { - raw_metadata = ivec; - } - Err(e) => { - eprintln!("Error on retrieving metadata: {}", e); - return None; - } - Ok(None) => { - return None; - } - } - let as_str = String::from_utf8(raw_metadata.to_vec()).unwrap(); - match deserialize_metadata_struct(&as_str) { - Ok(meta) => { - #[cfg(test)] - println!("got some metadata: {:?}", meta); - return Some(meta); - } - Err(e) => { - eprintln!("error on secret deserialization: {}", e); - return None; - } - - } -} - -// currently early version (copied from update_secret) -fn update_secret_meta(db: &Db, path: &str, mut meta: SecretMeta) { - match get_secretmeta(db, path) { - Some(meta) => { - // case secret found. TODO save it somewhere for versioning - #[cfg(test)] - print!("something was found. new version {:?} \n", meta) - } - None => { - } - } - match serialize_metadata_json(&meta) { - Ok(meta_json) => { - #[cfg(test)] - println!("String: {:?}", meta_json.clone()); - let as_ivec = sled::IVec::from(meta_json.into_bytes()); // maybe outsource this in a fn later - #[cfg(test)] - println!("ivec: {:?}", as_ivec); - match db.insert(path, as_ivec) { - Ok(_) => println!("Metadata inserted"), - Err(e) => eprintln!("Failed to insert meta: {}", e), - } - } - Err(e) => eprintln!("Failed to serialize meta: {}", e), - } -} - - -/// TODO soft delete the secret version at path. can be undone with undelete_secret -// https://developer.hashicorp.com/vault/api-docs/secret/kv/kv-v2#delete-latest-version-of-secret -// https://developer.hashicorp.com/vault/api-docs/secret/kv/kv-v2#delete-secret-versions - -/// hard delete secret at path -fn delete_secret(db: &Db, path: &str) { - let rem = db.remove(path); -} \ No newline at end of file