ExWapp.Signal.Keys (ExWapp v0.1.2)

Copy Markdown View Source

Generates Signal Curve25519 key material and implements XEdDSA signatures.

This is the cryptographic key boundary for identities, one-time prekeys, signed prekeys, and ADV device signatures.

Summary

Functions

Generate a new Curve25519 key pair suitable for Signal identity or pre-keys.

Generate an unsigned one-time pre-key map.

Generate a signed pre-key using the identity key pair.

Sign the given Curve25519 public key using the identity private key with the Signal-specific XEdDSA scheme.

Sign an arbitrary message using XEdDSA (Signal's curve25519 signature scheme). This is used for device signatures in ADV pairing.

Verify a signature produced by sign_message/2 for an arbitrary message.

Functions

generate_key_pair()

Generate a new Curve25519 key pair suitable for Signal identity or pre-keys.

generate_prekey(id)

Generate an unsigned one-time pre-key map.

generate_signed_prekey(map, id)

Generate a signed pre-key using the identity key pair.

sign(identity_private, curve25519_public)

Sign the given Curve25519 public key using the identity private key with the Signal-specific XEdDSA scheme.

sign_message(identity_private, message)

Sign an arbitrary message using XEdDSA (Signal's curve25519 signature scheme). This is used for device signatures in ADV pairing.

verify(identity_public, curve25519_public, signature)

Verify a signature produced by sign/2.

verify_message(identity_public, message, signature)

Verify a signature produced by sign_message/2 for an arbitrary message.