berryssh 是一个专为 BlackBerry OS 7.x 设计的 SSH 客户端,采用现代密码学算法(curve25519、Ed25519、chacha20-poly1305),能在不降低服务器安全性的前提下连接当前 OpenSSH 服务器。

Stars

7

7 天增长

暂无数据

Fork 数

0

开放 Issue

2

开源协议

GPL-2.0

最近更新

2026-07-29

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

它让二十年前的设备能够使用默认的 OpenSSH 算法安全地访问现代服务器,同时避免使用已废弃的 RIM API 和代码签名要求。

适合谁使用

  • 需要 SSH 访问的 BlackBerry OS 7.x 用户
  • 复古计算爱好者和收藏家
  • 对受限环境下的密码学实现感兴趣的开发者
  • 研究最小信任 SSH 实现的安全研究人员

典型使用场景

  • 从老旧 BlackBerry 设备连接现代服务器
  • 通过 WebSocket 桥接 SSH 以接入 tailnet
  • 学习如何在有限硬件上用纯 Java 实现现代密码算法(X25519、ChaCha20-Poly1305)

项目优势

  • 使用当前 OpenSSH 算法,无需降低服务器安全性
  • 无需 RIM 专有 API 或代码签名(规避了已终止的签名授权)
  • 全面的测试套件:58 个密码学测试向量、129 个传输层测试,以及真实服务器验证
  • 构建过程简洁,仅使用开源工具和容器化的 JDK 8

使用前须知

  • 仅支持 BlackBerry OS 7.x(不适用于其他平台)
  • 安装必须通过纯 HTTP(不支持 TLS),因为设备浏览器无法协商现代 HTTPS
  • 键盘映射尚未在实际硬件上完全确认

README 快速开始

berryssh

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 twenty-year-old handset can reach a modern server without that server being weakened to meet it.

Target hardware is a BlackBerry Bold 9790: a 480×360 screen, a hardware QWERTY keyboard, and a real terminal on it.

The wiki is the place to start if you want to use it rather than read it: installing and connecting, reaching servers outside your network, and troubleshooting — which on this platform is mostly a list of failures that produce no error message.

Design

No RIM APIs. Everything is standard MIDP and CLDC. This is a deliberate constraint, not a portability exercise: BlackBerry code signing is a runtime check inside the device VM that fires when a module touches a protected API, and every signature had to be issued by BlackBerry's signing authority, which no longer exists. Code that touches no protected API needs no signature. It also means the build needs no BlackBerry tooling at all.

Crypto from scratch. CLDC 1.1 has no java.security, no javax.crypto, and no BigInteger, so the primitives are implemented here. The modern algorithms make that tractable rather than harder:

Why it suits this hardware
curve25519-sha256Fixed 32-byte field arithmetic instead of 2048-bit modular exponentiation, and no BigInteger
ssh-ed25519Same curve arithmetic, nothing extra to carry
chacha20-poly1305Pure 32-bit add/xor/rotate, no lookup tables; AEAD, so no separate MAC
SHA-256Small and self-contained

The classic 2011 SSH stack is anchored on 2048-bit modexp, which is genuinely slow in interpreted Java on this class of CPU. Modern cryptography is the cheaper option here, not the more expensive one.

Building

No BlackBerry SDK is involved. Dependencies are fetched, not vendored:

lib/fetch.sh          # MIDP/CLDC API stubs and ProGuard, from Maven Central
tools/make_atlas.sh   # regenerate the font atlases (only if the charset changes)

项目描述

SSH client for BlackBerry OS 7.x — plain MIDP/CLDC MIDlet with curve25519, ed25519 and chacha20-poly1305

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

suiyuebaobao
suiyuebaobao GitHub avatar

C-SSH

Creation-SSH is a cross-platform SSH operations client that enables persistent terminals, real-time monitoring, file management, and an AI assistant on Android, Windows, and Linux.

Empty
148
LearnAIHubC
LearnAIHubC GitHub avatar

LearnSSH

LearnSSH is a Codex skill with a bundled Node.js CLI that enables alias-based SSH server operations including remote command execution, SFTP file transfer, local tunnels, and secure credential management.

JavaScript
26
oversecured
oversecured GitHub avatar

Samsung_Vulnerabilities

Oversecured discloses a report of 176 vulnerabilities discovered in Samsung preinstalled apps between 2022 and 2025, with 140 detailed, all fixed in collaboration with Samsung.

Java
310