zrtp 0.1.0

RFC 6189 ZRTP protocol core, crypto helpers, and embeddable engine
Documentation
#![forbid(unsafe_code)]
#![doc = r#"
RFC 6189 ZRTP protocol core, crypto helpers, and embeddable engine.

# Modules

- `wire`: packet/message framing and typed protocol structures
- `crypto`: hash/KDF/Confirm/DH/ECDH helpers
- `cache`: retained shared-secret storage primitives
- `engine`: embeddable handshake state and retransmission helpers

# Feature flags

- `crypto` (enabled by default): hash/KDF, Confirm encryption/MAC, DH/ECDH,
  SAS rendering, and crypto-backed handshake paths.
- Without default features, the crate remains usable for wire/message parsing,
  packet framing, negotiation data structures, retransmission helpers, and cache
  primitives. Crypto-backed APIs return `Error::Unsupported`.

# Example

```rust
use zrtp::*;

let hello = Hello {
    version: VERSION_1_10,
    client_id: *b"example-zrtp    ",
    hash_image_h3: [0; 32],
    zid: [1; 12],
    signature_capable: false,
    mitm_capable: false,
    passive_capable: false,
    hashes: vec![algos::HASH_S256],
    ciphers: vec![algos::CIPHER_AES1],
    auth_tags: vec![algos::AUTH_HS32],
    key_agreements: vec![algos::KEYAGREE_EC25],
    sas_types: vec![algos::SAS_B32],
    mac: [0; 8],
};

let mut engine = ZrtpEngine::new(Role::Initiator, hello, MemorySharedSecretStore::default());
let outbound = engine.start();
assert!(!outbound.is_empty());
```
"#]

pub mod cache;
pub mod crypto;
pub mod engine;
pub mod wire;

pub use cache::*;
pub use crypto::*;
pub use engine::*;
pub use wire::*;