P2P encrypted iOS keyboard
A custom iOS keyboard for encrypted pasteboard-style messaging when Telegram and similar apps are unavailable. Works in theory in any app that accepts the system keyboard (English input path).
Quick start
- Install: fir.im/k1vh (password:
test124) - Source: github.com/galenzhao/ioskeyboard
v205 update (2019-01-23)
Some screens (e.g. long WeChat Moments text) never show a keyboard, so decoding from the keyboard alone fails. Added a Today extension: after copying ciphertext, pull down notifications → Today view → decode label (auto or manual button).
Key setup (current)
Use the script: RSA key generation gist
iOS cannot import password-only PKCS#12 the way we need; export DER public/private keys instead.
- Public key: any name, e.g.
username.der - Private key for others to import:
username.private.der(fixed.private.dersuffix)
Example private key for decoding my messages: p2p-keyboard-example.private.der
If a public key leaks, rotate and redistribute.
Configuration
- Import keys via iTunes/Finder into the app Documents folder (and others’ private keys if you want to read their traffic).
- Settings → Keyboard → add this keyboard, enable Full Access (needs pasteboard; app is offline).
- In app Config: set public key filename, private prefix (matches ciphertext prefix), choose toast vs. text field for decode output → Gen RSA key (imports keys into app storage; removes them from Documents).
Usage
- Type normally, switch to this keyboard, cursor at end → Lock encrypts text in the field.
- To decrypt: copy full ciphertext → Unlock on the keyboard.
Deprecated (struck through in original post)
Older PKCS#12 naming (galenzhao.pwd123456.p12) and lvjian700’s gist — superseded by the DER workflow above.