OpenHAP::Crypto(3p) Perl Library Manual OpenHAP::Crypto(3p)

OpenHAP::Crypto - Cryptographic operations for HAP protocol

    use OpenHAP::Crypto;
    # Generate Ed25519 keypair
    my ($secret, $public) = OpenHAP::Crypto::generate_keypair_ed25519();
    # Sign and verify
    my $sig = OpenHAP::Crypto::sign_ed25519($message, $secret, $public);
    my $valid = OpenHAP::Crypto::verify_ed25519($sig, $message, $public);
    # X25519 key exchange
    my ($our_secret, $our_public) = OpenHAP::Crypto::generate_keypair_x25519();
    my $shared = OpenHAP::Crypto::derive_shared_secret($our_secret, $their_public);
    # ChaCha20-Poly1305 encryption
    my ($ct, $tag) = OpenHAP::Crypto::chacha20_poly1305_encrypt($key, $nonce, $pt, $aad);
    my $pt = OpenHAP::Crypto::chacha20_poly1305_decrypt($key, $nonce, $ct, $tag, $aad);

This module provides cryptographic primitives required by the HomeKit Accessory Protocol:

- Ed25519 signatures - X25519 key exchange - ChaCha20-Poly1305 authenticated encryption - HKDF-SHA-512 key derivation - SRP-6a parameters

spec/HAP-Pairing.md, spec/HAP-Encryption.md

2026-07-27 OpenBSD