Use string keyring APIs for JSON storage

This commit is contained in:
mikhail-oai
2026-03-25 17:35:33 -04:00
parent 6e90f9e05d
commit 4b01a5ee4e
2 changed files with 17 additions and 9 deletions

View File

@@ -79,7 +79,8 @@ fn load_secret_from_keyring<K: KeyringStore + ?Sized>(
field: &str,
) -> Result<Option<Vec<u8>>, FullJsonKeyringError> {
keyring_store
.load_secret(service, key)
.load(service, key)
.map(|value| value.map(String::into_bytes))
.map_err(|err| credential_store_error("load", field, err))
}
@@ -90,8 +91,11 @@ fn save_secret_to_keyring<K: KeyringStore + ?Sized>(
value: &[u8],
field: &str,
) -> Result<(), FullJsonKeyringError> {
let value = std::str::from_utf8(value).map_err(|err| {
FullJsonKeyringError::new(format!("failed to encode {field} as UTF-8: {err}"))
})?;
keyring_store
.save_secret(service, key, value)
.save(service, key, value)
.map_err(|err| credential_store_error("write", field, err))
}
@@ -145,8 +149,8 @@ mod tests {
.expect("JSON should exist");
assert_eq!(loaded, expected);
assert_eq!(
store.saved_secret(BASE_KEY),
Some(serde_json::to_vec(&expected).expect("JSON should serialize")),
store.saved_value(BASE_KEY),
Some(serde_json::to_string(&expected).expect("JSON should serialize")),
);
}

View File

@@ -395,7 +395,8 @@ fn load_secret_from_keyring<K: KeyringStore + ?Sized>(
field: &str,
) -> Result<Option<Vec<u8>>, SplitJsonKeyringError> {
keyring_store
.load_secret(service, key)
.load(service, key)
.map(|value| value.map(String::into_bytes))
.map_err(|err| credential_store_error("load", field, err))
}
@@ -406,8 +407,11 @@ fn save_secret_to_keyring<K: KeyringStore + ?Sized>(
value: &[u8],
field: &str,
) -> Result<(), SplitJsonKeyringError> {
let value = std::str::from_utf8(value).map_err(|err| {
SplitJsonKeyringError::new(format!("failed to encode {field} as UTF-8: {err}"))
})?;
keyring_store
.save_secret(service, key, value)
.save(service, key, value)
.map_err(|err| credential_store_error("write", field, err))
}
@@ -662,7 +666,7 @@ mod tests {
let root_value_key = value_key(BASE_KEY, "");
assert_eq!(
store.saved_secret_utf8(&root_value_key),
store.saved_value(&root_value_key),
Some("\"value\"".to_string())
);
@@ -715,11 +719,11 @@ mod tests {
assert!(!store.contains(&stale_value_key));
assert!(store.contains(&manifest_key));
assert_eq!(
store.saved_secret_utf8(&value_key(BASE_KEY, "/value")),
store.saved_value(&value_key(BASE_KEY, "/value")),
Some("\"second\"".to_string())
);
assert_eq!(
store.saved_secret_utf8(&value_key(BASE_KEY, "/extra")),
store.saved_value(&value_key(BASE_KEY, "/extra")),
Some("1".to_string())
);