diff options
| author | Danilo M. <danix@danix.xyz> | 2026-11-02 19:28:09 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-11-02 19:28:09 +0100 |
| commit | bf07c157071bea82000850ee431917fd5983d96d (patch) | |
| tree | 42f674305e772554e23bcd04055369d7786c637c /scripts/signing-setup.sh | |
| parent | a638af6fd58c767ed448134e6527c5c5f8429889 (diff) | |
| download | HardenedPass-bf07c157071bea82000850ee431917fd5983d96d.tar.gz HardenedPass-bf07c157071bea82000850ee431917fd5983d96d.zip | |
build(deps): update sshj to 0.41.2 and drop eddsa
sshj 0.40 replaced the unmaintained net.i2p.crypto:eddsa 0.3.0 (last
release 2019) with Bouncy Castle's Ed25519. 0.41.2 still targets Java 8.
The app used eddsa directly for wrapped Ed25519 SSH keys. Generate the
32-byte seed with SecureRandom and build the key pair with sshj's
Ed25519KeyFactory and Bouncy Castle's public key derivation. The wrapped
format is still the raw RFC 8032 seed, so keys generated by 0.1.3 keep
working; Ed25519KeyPairTest pins this with the RFC 8032 test vector.
sshj 0.40 also changed setSecurityProvider(null) to reset the
registerBouncyCastle flag, which undid the earlier
setRegisterBouncyCastle(false): sshj then forced every operation through
Bouncy Castle, which cannot sign with Android Keystore keys ("no encoding
for EC private key"), and hardware-backed SSH keys failed to
authenticate. Call the two in the opposite order; SshjConfigTest checks
that sshj leaves provider selection to the JCA.
Verified with the R8 release build on the emulator against the e2e
server: a hardware ECDSA key, a newly generated wrapped Ed25519 key and
an imported OpenSSH Ed25519 key all authenticated and synced.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'scripts/signing-setup.sh')
0 files changed, 0 insertions, 0 deletions
