![]() |
![]()
| ![]() |
![]()
NAME
SYNOPSIS
void
int
void
void
int
DESCRIPTIONThe
The arguments and security considerations are the same as those described in crypto_eddsa_sign(3monocypher).
RETURN VALUES
SEE ALSOcrypto_eddsa_sign(3monocypher), crypto_x25519(3monocypher), crypto_aead_lock(3monocypher), crypto_sha512(3monocypher), intro(3monocypher) STANDARDSThese functions implement Ed25519 as described in RFC 8032. HISTORYThe In Monocypher 4.0.0, the incremental and custom hash API removed.
The main interface was also reworked to avoid misuse, and
CAVEATSMonocypher does not perform any input validation. Any deviation from the specified input and output length ranges results in undefined behaviour. Make sure your inputs are correct. SECURITY CONSIDERATIONSSignature malleabilitySignature malleability is the ability of an attacker to produce a valid signature with knowledge of only an existing signature and the public key. Monocypher prevents that by checking the encoding of the signature, and guarantees that generating new signatures requires the private key. On the other hand, EdDSA signatures are not unique like
cryptographic hashes. The signing procedure is deterministic by
specification and Fault injection and power analysisFault injection (also known as glitching) and power analysis may be used to manipulate the resulting signature and recover the secret key in some cases. This requires hardware access. We can try to mitigate this attack by prefixing all hashes a random data block, in a construction similar to Ed25519ctx. Note that there may still be other power-related side channels (such as if the CPU leaks information when an operation overflows a register) that must be considered.
|