Implement complete Android settings and recovery controls (#104)
Android ARM verification / rust (push) Failing after 46m46s
Android ARM verification / android (push) Failing after 7s
Dependency security audit / rustsec (push) Successful in 22s

This commit is contained in:
hugo committed 2026-10-10 12:07:28 +02:00
1 parent 06575363a2
commit 43f660ace3
34 files changed
+2720 -64

No files matched your search

+12
View File
@@ -228,6 +228,16 @@ fn totp_cache_reuses_ciphertext_hashes_and_removes_deleted_entries() -> TestResu
assert_eq!(warm_secrets.requests, 0);
assert_eq!(warm.progress().cache_hits(), warm.progress().total());
assert_eq!(warm_page.rows(), page.rows());
assert_eq!(service.cache_status(&cache).0 as usize, page.rows().len());
let rebuild = MobileTotpOperation::default();
let mut rebuild_secrets = CountingSecrets::all(&fixture);
let rebuilt = service.rebuild(&BTreeSet::new(), &mut rebuild_secrets, &cache, &rebuild)?;
assert_eq!(rebuilt.rows(), page.rows());
assert_eq!(rebuild.progress().cache_hits(), 0);
assert!(
rebuild_secrets.requests > 0,
"explicit rebuild must inspect ciphertext again"
);
assert_eq!(
service
.cached_page(&BTreeSet::new(), &cache)
@@ -328,6 +338,8 @@ fn totp_cache_reuses_ciphertext_hashes_and_removes_deleted_entries() -> TestResu
);
fs::write(&cache, "not a TOTP catalog")?;
assert_eq!(service.cache_status(&cache).0, 0);
assert!(service.cache_status(&cache).1.contains("damaged"));
let recovery = MobileTotpOperation::default();
let mut recovery_secrets = CountingSecrets::all(&fixture);
let recovered = service.discover(&BTreeSet::new(), &mut recovery_secrets, &cache, &recovery)?;