object_storage_proxy/credentials/
hmac_keystore.rs1use pyo3::pyclass;
2
3#[pyclass]
8#[derive(Debug, Clone, Default)]
9pub struct HmacKeyStore {
10 access_key: String,
11 secret_key: String,
12}
13
14impl HmacKeyStore {
15 pub fn new(access_key: String, secret_key: String) -> Self {
17 HmacKeyStore {
18 access_key,
19 secret_key,
20 }
21 }
22
23 pub fn get_access_key(&self) -> &str {
25 &self.access_key
26 }
27
28 pub fn get_secret_key(&self) -> &str {
30 &self.secret_key
31 }
32}
33
34#[cfg(test)]
35mod tests {
36 use super::*;
37
38 #[test]
39 fn new_stores_keys() {
40 let ks = HmacKeyStore::new("AK123".into(), "SK456".into());
41 assert_eq!(ks.get_access_key(), "AK123");
42 assert_eq!(ks.get_secret_key(), "SK456");
43 }
44
45 #[test]
46 fn default_is_empty_strings() {
47 let ks = HmacKeyStore::default();
48 assert_eq!(ks.get_access_key(), "");
49 assert_eq!(ks.get_secret_key(), "");
50 }
51
52 #[test]
53 fn clone_is_independent() {
54 let original = HmacKeyStore::new("AK".into(), "SK".into());
55 let cloned = original.clone();
56 assert_eq!(cloned.get_access_key(), original.get_access_key());
57 assert_eq!(cloned.get_secret_key(), original.get_secret_key());
58 }
59}