Byte-Identical Interoperability
Trois clients (Android, iOS, Desktop), un seul wire format. Layout des frames, labels HKDF, padding CBR : tout est bit-à-bit identique, validé en CI avec Known-Answer-Tests.
Frame layout
Ogni frame audio ha struttura: [Version][Flags][SeqNum BE][Timestamp BE][Nonce][Payload][Tag][DeepfakeScore]. Lunghezza fissa 256 byte dopo padding. Identica su tutte le piattaforme client. Verificabile con Wireshark dissector incluso.
- Version + Flags: 2 byte
- SeqNum: 4 byte big-endian
- Payload + Tag + Score: nel resto del frame
HKDF labels costanti
Tous les KDF utilisent des chaînes label constantes définies dans la spécification : q-audion-frame-key, q-audion-root-ratchet, q-audion-psk-mix, q-audion-next-chain. Modifier un label casse l'interopérabilité. C'est pourquoi ils sont gated par KAT en CI sur toutes les plateformes.
- HKDF-SHA-256 (Android/iOS), HKDF-SHA-512 (Desktop hybrid)
- PRK derivato dal master key del session
- Info string label completa la separazione di dominio
KAT-gated CI
Ogni piattaforma include test che caricano vector di test prodotti da BouncyCastle (Android reference) e verificano bit-per-bit i risultati. Se Desktop o iOS divergono, la CI fallisce. Garanzia continua di interoperabilità.
- BouncyCastle KAT dumper come reference
- tools/android-kat-dumper produce i vectors
- Desktop/iOS check carica i vectors e confronta