fix: address v1.23 settings and EC SSH regressions - #180
Merged
Merged
Conversation
pando85
force-pushed
the
fix/v1.23-regressions
branch
2 times, most recently
from
September 23, 2026 15:33
4537b95 to
4ea307e
Compare
|
The spotless formatting violation in |
|
✅ Fix pushed: The spotless formatting violation in |
|
⏸️ CI Auto-Fix paused A user commit was detected after an automated fix. CI auto-fix is now paused To resume CI auto-fix, use the |
pando85
force-pushed
the
fix/v1.23-regressions
branch
from
September 23, 2026 15:40
50e476b to
9cc70e9
Compare
pando85
enabled auto-merge
September 23, 2026 15:42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix two regressions observed after the v1.23.0 release:
SettingsActivityis attached to its base contextGit / EC private-key regression
v1.23.0 upgraded SSHJ from 0.40.0 to 0.41.1. Existing Android Keystore-backed EC SSH keys can then fail during Git operations with:
APS already disables BouncyCastle before handing an Android Keystore key to SSHJ because those private keys are intentionally non-exportable and must be used through the platform provider.
SSHJ 0.41.1 changed
SecurityUtils.setSecurityProvider(null)so that it also resets the BouncyCastle registration mode to automatic. APS was doing:The second call therefore undid the first one. On the next signature operation SSHJ could select the full BC provider installed by APS. BC cannot reconstruct a non-exportable Android Keystore EC private key from
getEncoded()and fails with the reported exception.Fix the provider setup order:
This keeps SSHJ 0.41.1 while ensuring Android Keystore-backed keys are signed by the platform provider.
Settings crash
SettingsActivityconstructs its settings providers as property initializers, before the Activity has been attached to its baseContextand beforeonCreate()runs.The OpenPGP provider integration added this eager initialization to
PGPSettings:That reads
activity.applicationContextduringSettingsActivityconstruction, when the Activity is not yet attached. The crash therefore happens while opening Settings, before the OpenPGP provider picker is ever used.Fix it by constructing
OpenPgpApiBackendlazily, soapplicationContextis only read after the Activity is attached. The Activity Result interaction handler remains eagerly registered because launchers must be registered before the activity reaches STARTED.Scope
No OpenPGP encryption/decryption behavior is changed. The delegated-provider feature remains available, provider discovery behavior is unchanged, and SSHJ remains on 0.41.1.