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 -8
View File
@@ -171,23 +171,23 @@ type keychainPasswordSetter interface {
// no longer triggers a password prompt.
func newPlatformInjector(opts PickOptions) func(Browser) {
var (
password string
retriever keyretriever.KeyRetriever
resolved bool
password string
retrievers keyretriever.Retrievers
resolved bool
)
return func(b Browser) {
rs, needsRetriever := b.(retrieverSetter)
rs, needsRetrievers := b.(keyRetrieversSetter)
kps, needsKeychainPassword := b.(keychainPasswordSetter)
if !needsRetriever && !needsKeychainPassword {
if !needsRetrievers && !needsKeychainPassword {
return
}
if !resolved {
password = resolveKeychainPassword(opts.KeychainPassword)
retriever = keyretriever.DefaultRetriever(password)
retrievers = keyretriever.DefaultRetrievers(password)
resolved = true
}
if needsRetriever {
rs.SetRetriever(retriever)
if needsRetrievers {
rs.SetKeyRetrievers(retrievers)
}
if needsKeychainPassword {
kps.SetKeychainPassword(password)