Files
omnivox-rs/reference/README.md
T
michael 268b986bb9 Rust port of OmniVox, wire-compatible with the C++ original
Byte-exact cereal binary layout, RFC 8439 ChaCha20-Poly1305, RFC 7914
scrypt defaults; tokio transport preserving the original's observable
behavior (contract B1-B3, B5 quirks included). Parity evidence: golden
C++ vectors in tests/vectors.rs and loopback behavior tests; both
cross-directions verified against the unmodified C++ binaries.

Source: https://git.0xfeedc0de.com/michael/OmniVox
2026-09-30 06:35:24 -04:00

646 B

Provenance of the golden vectors in tests/vectors.txt.

Generate with (from a checkout of the original C++ OmniVox tree, which provides common.h, include/, cereal/, asio/, cryptopp/; requires libcryptopp.a and system fmt):

g++ -std=c++20 -O1 -DDEBUG -I<cpp-root> -I<cpp-root>/include \
    -I<cpp-root>/cereal/include -I<cpp-root>/asio/include -I<cpp-root>/cryptopp \
    $(pkg-config --cflags fmt) reference/cppgen.cpp \
    <cpp-root>/cryptopp/libcryptopp.a $(pkg-config --libs fmt) -lpthread

The scrypt derivations take ~1 s and 128 MiB each. Any change to these bytes means the Rust port has regressed against the original.