It seems it failed on version 26.4. When I called
kc, err := keychainbreaker.Open(openOpts...)
kc.Unlock(keychainbreaker.WithPassword(*password))
it returned the error: keychainbreaker: wrong key or password: invalid padding value 186: keychainbreaker: wrong key or password. Has anyone else encountered this?
[Update 2026-04-22 — maintainer @moonD4rk reverse-engineering notes]: Root cause identified. macOS 26.4 re-keyed the login keychain to blobVersion=0x200; the user password is now pre-processed by the Secure Enclave before reaching PBKDF2, which makes offline brute force infeasible. Recovery is still possible on the originating machine via a one-time masterKey capture, after which the existing --key flag fully decrypts everything offline. Full analysis in the comment below.
[Update 2026-07-11 — how to recover full data on macOS 26.4+] On the machine that created the keychain (with SIP temporarily disabled), capture the 24-byte master key with an lldb breakpoint on securityd's CSSM_DeriveKey, then decrypt everything offline with keychainbreaker dump --key=<hex> (or WithKey(<hex>) in the library). Step-by-step lldb commands are in the README: Recover the master key on macOS 26.4+ (v2). Method contributed by @gmazzola (details).
It seems it failed on version 26.4. When I called
kc, err := keychainbreaker.Open(openOpts...)
kc.Unlock(keychainbreaker.WithPassword(*password))
it returned the error:
keychainbreaker: wrong key or password: invalid padding value 186: keychainbreaker: wrong key or password. Has anyone else encountered this?