fix: per-tier master-key retrievers for mixed-cipher profiles (#579)

* fix: per-tier master-key retrievers for mixed-cipher profiles
This commit is contained in:
Roger
2026-04-20 17:33:38 +08:00
committed by GitHub
parent e50c623db0
commit 7b9a973c9c
29 changed files with 699 additions and 227 deletions
+8 -5
View File
@@ -67,13 +67,16 @@ func platformBrowsers() []types.BrowserConfig {
}
}
// newPlatformInjector returns a closure that injects the Chromium master-key
// retriever chain into each Browser.
// newPlatformInjector returns a closure that wires the Linux Chromium master-key retrievers into
// each Browser. Linux has two tiers: V10 uses the "peanuts" hardcoded password (kV10Key); V11
// uses the D-Bus Secret Service keyring (kV11Key). V20 is nil — App-Bound Encryption is Windows-
// only. Both V10 and V11 run independently so a profile carrying mixed cipher prefixes decrypts
// both tiers.
func newPlatformInjector(_ PickOptions) func(Browser) {
retriever := keyretriever.DefaultRetriever()
retrievers := keyretriever.DefaultRetrievers()
return func(b Browser) {
if s, ok := b.(retrieverSetter); ok {
s.SetRetriever(retriever)
if s, ok := b.(keyRetrieversSetter); ok {
s.SetKeyRetrievers(retrievers)
}
}
}