20#ifndef DETERMINISTICESPASYNCWEBSERVER_SSH_ED25519_H
21#define DETERMINISTICESPASYNCWEBSERVER_SSH_ED25519_H
27#define SSH_ED25519_SEED_LEN 32
29#define SSH_ED25519_PUBKEY_LEN 32
31#define SSH_ED25519_SIG_LEN 64
#define SSH_ED25519_SIG_LEN
Ed25519 signature length (R || S).
#define SSH_ED25519_PUBKEY_LEN
Ed25519 public key length.
void ssh_ed25519_sign(uint8_t sig[SSH_ED25519_SIG_LEN], const uint8_t *msg, size_t mlen, const uint8_t seed[SSH_ED25519_SEED_LEN])
Deterministically sign mlen bytes of msg with seed (RFC 8032 §5.1.6).
#define SSH_ED25519_SEED_LEN
Ed25519 seed (private key) length.
void ssh_ed25519_pubkey(uint8_t pub[SSH_ED25519_PUBKEY_LEN], const uint8_t seed[SSH_ED25519_SEED_LEN])
Derive the 32-byte public key A from a 32-byte seed.
bool ssh_ed25519_verify(const uint8_t pub[SSH_ED25519_PUBKEY_LEN], const uint8_t *msg, size_t mlen, const uint8_t sig[SSH_ED25519_SIG_LEN])
Verify an Ed25519 signature (RFC 8032 §5.1.7).