-
Notifications
You must be signed in to change notification settings - Fork 0
Home
An SSH client for BlackBerry OS 7.x, written as a plain MIDP 2.0 / CLDC 1.1
MIDlet. It speaks curve25519-sha256, ssh-ed25519 and
chacha20-poly1305@openssh.com — the algorithms a current OpenSSH offers by
default — so a handset from 2011 can reach a modern server without that server
being weakened to meet it.
It needs no BlackBerry code signature. That is not a convenience, it is the reason the project exists in this shape: signing was a runtime check inside the device VM, every signature had to come from BlackBerry's signing authority, and that authority is gone. Code that touches no protected API needs no signature — so berryssh touches none. No RIM APIs, no BlackBerry SDK, nothing to apply for.
| Installing | Getting it onto a handset, over the air |
| Your first connection | Making a connection and understanding what it asks you |
| Reaching remote servers | The bridge: how to reach machines that are not on your local network |
| How it works | The design, and why it is the way it is |
| Building from source | Toolchain, tests, and the traps |
| Troubleshooting | Mostly a list of failures that produce no error message |
Key exchange, host key verification, password and Ed25519 public key
authentication, channels, pty-req, a shell, VT320 emulation with scrollback,
saved connections, and SSH carried over a WebSocket for networks whose only
entrance speaks HTTP.
Verified against OpenSSH 9.2p1 and against macOS's own sshd: 228 offline
vectors plus 39 tests that run against a real server. The keyboard mapping is
the one thing still open, because it needs measurements only the hardware can
give.
A BlackBerry Bold 9790 — 480×360 screen, hardware QWERTY. Anything running BlackBerry OS 7.x with MIDP 2.0 and CLDC 1.1 should work; nothing in the code is specific to the 9790 except the font atlas sizes, which are chosen for a 480×360 screen.
GPL-2.0-or-later. Source at github.com/cobanov/berryssh.