Files
tai/research/whatsapp-automation/github-tulir-libsignal-protocol-go.md
T
retoorandClaude Opus 5.5 1a1448ddd0 docs: WhatsApp research and native C++ build spec
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>
2026-10-27 16:55:18 +01:00

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).