Skip to content

sshkey 4.0 - #54

Merged
bensie merged 2 commits into
mainfrom
v4
Oct 5, 2026
Merged

bensie merged 2 commits into
mainfrom
v4

Conversation

@bensie

@bensie bensie commented Oct 5, 2026

Copy link
Copy Markdown
Owner
  • Require Ruby 3.3+ / JRuby 10+
  • CI: test 3.3, 3.4, 4.0, head, JRuby 10.0/10.1/head; actions/checkout v7; Dependabot for actions
  • No runtime dependencies (drop base64)
  • Ed25519: generate, load, and all outputs
  • Load and write unencrypted OpenSSH format private keys; new #openssh_private_key
  • SSHKey.new accepts an OpenSSL::PKey object
  • ECDSA supported on JRuby; remove JRuby workarounds and OpenSSL::PKey::EC monkey patch
  • generate requires type:; keyword arguments for generate and new
  • RSA default 3072 bits; DSA generation removed (loading still supported)
  • encrypted_private_key uses PKCS#8 (PBKDF2, AES-256)
  • randomart defaults to SHA256 and matches ssh-keygen -lv
  • Error hierarchy: SSHKey::Error, PrivateKeyError, PublicKeyError, UnsupportedError; ArgumentError for bad options
  • Remove fingerprint and rsa_/dsa_ aliases, format_sshfp_record; make internal constants private
  • Fix: no terminal passphrase prompt; "PRIVATE" in a public key comment; DSA/Ed25519 bit length
  • Split tests by area; add CHANGELOG with upgrade guide; README updates; gemspec metadata

Closes #41

@bensie
bensie merged commit 9afd7cf into main Oct 5, 2026
14 checks passed
@bensie
bensie deleted the v4 branch October 5, 2026 05:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Does not work with new algorithms, like ED25519

1 participant