pqtransport logopqtransport

API Guide

Frozen v0.1.0 public types for pqtransport. Web barrel vs IO barrel.

Frozen v0.1.0 names. Adding a symbol to the web barrel requires a test that imports only package:pqtransport/pqtransport.dart.

Install#

dependencies:
  pqtransport: ^0.1.0
  pqforge: ^0.4.5
  swissarmyknife: ^0.1.0
import 'package:pqtransport/pqtransport.dart';
// VM / mobile / desktop datagrams:
import 'package:pqtransport/pqtransport_io.dart';

Core#

TypeRole
HybridGroup x25519MlKem768, secP256r1MlKem768, secP384r1MlKem1024
encodeClientShare / decodeClientShare RFC 10024 client key_share
encodeServerShare / decodeServerShare RFC 10024 server key_share
combineSharedSecretGroup-order concatenation of component secrets
requireLength / requireMinLengthLength filter
PqTransportError / PqTransportErrorCode Failures without secret bytes
PqTransportCryptoFacade over pqforge
TranscriptRunning SHA-256 or SHA-384 handshake transcript
zeroize / withSecretsBest-effort wipe

Sockets#

TypeRole
PqTransportSocketBytes in / bytes out
MemoryByteSocket.pair() In-memory duplex; buffers until a listener attaches
MemoryDatagramNetwork In-memory network; multicast only to joined sockets on 224.0.0.251 / ff02::fb
IoDatagramChannel.bind dart:io UDP (IO barrel only); joinMulticast for LAN mDNS

UDP / TLS#

TypeRole
PqUdpSocket / PqDatagramCodec / ReplayWindow Datagram AEAD + replay
peekDatagramSequenceCheap replay check before AEAD
PqEncryptedUdpSocketHybrid session then AEAD datagrams
PqTlsClient / PqTlsServer / PqTlsSocket Handshake + records
PqTlsServerIdentityML-DSA-65 key pair
TlsCipherSuiteIANA 0x1302 / 0x1303
TlsKeySchedule Suite-bound HKDF-SHA-384 (0x1302) or SHA-256 (0x1303) + exporter
TlsRecordLayerEpoch-aware AES-256-GCM or ChaCha20-Poly1305

DNS / mDNS / HTTP / QUIC#

TypeRole
PqDnsClient / PqDnsResolverLookup + cache + breaker
DohExchange / DotExchangeThin adapters
PqMdnsClient / PqMdnsServerProbe / announce / browse
signTxt / verifyTxtML-DSA-65 TXT
PqHttpClientHTTP/1.1 over TLS
QuicPacketCodec / QuicCryptoFrameQUIC sketch

Errors#

Result<T, PqTransportError> for expected protocol failures. Unexpected machine events transition to failed and wrap Result.failure.