vox-trust (Python)
Seal real voices, verify them anywhere. Python bindings for the Vox Trust protocol, built from the Rust reference implementation.
A speaker seals a WAV file with their own key; anyone who pinned that key verifies it and sees which seconds changed if it was edited. HMAC-SHA-256 (circle mode) or Ed25519 (public mode).
Pre-1.0, not audited. The seal travels in the file, so it survives bit-exact copies but not re-encoding into a voice message or a phone call.
pip install vox-trust
import os, time
import vox_trust as vt
seed = os.urandom(32) # keep secret; share the public key
public_key = vt.public_key(seed)
wav = open("note.wav", "rb").read() # 16-bit PCM WAV
sealed = vt.seal_wav(wav, vt.SealMode.PUBLIC, seed, 0, int(time.time()), 0, 16000)
report = vt.verify_wav(sealed, vt.Trust(pinned_public_key=public_key))
verdict = vt.decide(report.check, vt.Contact(always_seals=True, strict=False))
print(verdict, report.modified_chunks) # Verdict.VERIFIED []
seal_wav(wav, mode, key, key_id, created_unix, counter, chunk_frames): chunk_frames is the unit of tamper localization (the sample rate gives one-second chunks); key_id is used in circle mode (vt.circle_key_id(key)). decide(check, None) when the speaker is not a known contact. Errors raise vt.VoxTrustError.
| Verdict | Meaning |
|---|---|
VERIFIED |
Valid seal from a key you trust |
UNSEALED |
No seal you can check, from someone who never seals: neutral, never "fake" |
WARNING |
No seal from a contact who always seals |
ALERT |
Broken seal, a different key for a pinned contact, or a missing seal in strict mode |
Integration guide · Specification · Threat model
Licensed under Apache-2.0.
Metadata
Release files for vox-trust 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| vox_trust-0.6.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| vox_trust-0.6.0-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details |
| vox_trust-0.6.0-py3-none-manylinux_2_28_aarch64.whl | Python 3 | none | Linux glibc 2.28+ ARM64 | Details |
| vox_trust-0.6.0-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl | Python 3 | none | macOS 11.0+ ARM64, macOS 10.12+ x86-64, macOS 10.12+ universal2 (ARM64, x86-64) | Details |
Total release size: 1.1 MB
Release files / vox_trust-0.6.0-py3-none-win_amd64.whl
| Download URL | vox_trust-0.6.0-py3-none-win_amd64.whl |
|---|---|
| Size | 162.7 kB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0300248513cb739a54c40e4fc1b42a102b026052c2a92dcfaebb7e377bac1611
|
|
BLAKE2b-256 checksum How to use checksums |
7e75ce7825c4d0d22be5e4ae17a2bcad5ede0c7ba88d6eac18af629c762b3185
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / vox_trust-0.6.0-py3-none-manylinux_2_28_x86_64.whl
| Download URL | vox_trust-0.6.0-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 263.9 kB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
5a9243abfa5de045b84a6e8810d63653a3320a4d2d1d5a3b18fb17eefcc88512
|
|
BLAKE2b-256 checksum How to use checksums |
0318435c12c0bb939026e21143a2efcda33732383fe6efe95952f889073265a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / vox_trust-0.6.0-py3-none-manylinux_2_28_aarch64.whl
| Download URL | vox_trust-0.6.0-py3-none-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 253.7 kB |
| Tags | Linux glibc 2.28+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
24ed957c95c33069ca22f53f92317c9c4d5f93abd9ef9a26c37ec2f6fdbb33c0
|
|
BLAKE2b-256 checksum How to use checksums |
8e21ee236e121daa8693510a22197127ba7e5ee4ded06836c8b8466f9db9405a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / vox_trust-0.6.0-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | vox_trust-0.6.0-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl |
|---|---|
| Size | 464.1 kB |
| Tags | Python 3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3cb168425c7abc7872001cce6f8413fb8aa6b1dd511f0383f6dbd1bf7af79b39
|
|
BLAKE2b-256 checksum How to use checksums |
f27447c99022704dac72ece3a80942370f63cfaef7341ee2e25b5036810f75ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|