No native Python WhatsApp library exists (neonize is whatsmeow over ctypes, yowsup is dead) and no browser is needed. Spec for detz::wa: native C++ transpiled from wa-go (MIT, golden vectors) with whatsmeow as referee, libcurl WebSocket plus OpenSSL, no new dependencies, build vs deep-research table, caps, tests, phases, and a whatsapp-mcp shortcut. Research archive: research/whatsapp-automation (70 sources, 3 conclusions). Nothing built. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.0 KiB
2.0 KiB
tulir/libsignal-protocol-go (go.mau.fi/libsignal)
Metadata
| Field | Value |
|---|---|
| Institute | Molodetz Institute — Research & Retrieval Division |
| Subject | whatsapp-automation |
| Document type | Source Dossier |
| Tier | 1 |
| Source title | tulir/libsignal-protocol-go (go.mau.fi/libsignal) |
| Source URL | https://github.com/tulir/libsignal-protocol-go |
| Source publisher / author | Tulir Asokan, fork of RadicalApp libsignal-protocol-go |
| Source type | repository |
| Source date (published) | Unknown — not stated |
| Date researched | 2026-10-27 |
| Researched by | tai (agent), model: Claude Opus 5.5, on behalf of retoor |
| Research method | both |
| Confidence | High |
| Status | Active |
Summary
The Signal protocol implementation whatsmeow uses. Cloned and its ecc package read. It implements XEdDSA signing over Curve25519 keys on top of filippo.io/edwards25519.
Key findings
- ecc/SignCurve25519.go computes XEdDSA: clamped scalar, A = aB, r from SHA-512 over a prefix, the key, the message and random bytes, R = rB, s = h*a + r with
MultiplyAdd, using filippo.io/edwards25519 and its field package. - License GPL-3.0 (LICENSE file).
- Measured package sizes (non-blank non-comment Go): state 924, session 531, groups 520, protocol 515, serialize 421, keys 332, ratchet 282, ecc 202, cipher 159, util 159; 5,416 total non-test.
- The 1:1 subset (no groups, fingerprint, logger, provision) is about 3,585 lines.
Pros / strengths
Shows exactly how XEdDSA is done for WhatsApp in about 60 lines of logic.
Cons / limitations / caveats
GPL-3.0, so not a transpile source for a commercial product. Only the ecc package was read closely.
Relevance to tai
Explains the one primitive OpenSSL lacks (XEdDSA signing) and why the Signal layer must come from elsewhere (wa-go, MIT).
Changelog
| Date | Change |
|---|---|
| 2026-10-27 | Initial dossier created (repository shallow-cloned and read; sizes measured with line counts; activity from the GitHub API). |