/**
* @ingroup crypto
- * EdDSA sign a given block.
+ * EdDSA sign a given block. The @a purpose data is the
+ * beginning of the data of which the signature is to be
+ * created. The `size` field in @a purpose must correctly
+ * indicate the number of bytes of the data structure, including
+ * its header.
*
* @param priv private key to use for the signing
* @param purpose what to sign (size, purpose)
/**
* @ingroup crypto
- * ECDSA Sign a given block.
+ * ECDSA Sign a given block. The @a purpose data is the
+ * beginning of the data of which the signature is to be
+ * created. The `size` field in @a purpose must correctly
+ * indicate the number of bytes of the data structure, including
+ * its header.
*
* @param priv private key to use for the signing
* @param purpose what to sign (size, purpose)
/**
* @ingroup crypto
- * Verify EdDSA signature.
+ * Verify EdDSA signature. The @a validate data is the
+ * beginning of the data of which the signature is to be
+ * verified. The `size` field in @a validate must correctly
+ * indicate the number of bytes of the data structure, including
+ * its header. If @a purpose does not match the purpose given
+ * in @a validate (the latter must be in big endian), signature
+ * verification fails.
*
* @param purpose what is the purpose that the signature should have?
* @param validate block to validate (size, purpose, data)
/**
* @ingroup crypto
- * Verify ECDSA signature.
+ * Verify ECDSA signature. The @a validate data is the
+ * beginning of the data of which the signature is to be
+ * verified. The `size` field in @a validate must correctly
+ * indicate the number of bytes of the data structure, including
+ * its header. If @a purpose does not match the purpose given
+ * in @a validate (the latter must be in big endian), signature
+ * verification fails.
*
* @param purpose what is the purpose that the signature should have?
* @param validate block to validate (size, purpose, data)
/**
- * Sign a given block.
+ * Sign a given block. The @a purpose data is the
+ * beginning of the data of which the signature is to be
+ * created. The `size` field in @a purpose must correctly
+ * indicate the number of bytes of the data structure, including
+ * its header.
*
* @param priv private key to use for the signing
* @param purpose what to sign (size, purpose)
/**
- * Sign a given block.
+ * Sign a given block. The @a purpose data is the
+ * beginning of the data of which the signature is to be
+ * created. The `size` field in @a purpose must correctly
+ * indicate the number of bytes of the data structure, including
+ * its header.
*
* @param priv private key to use for the signing
* @param purpose what to sign (size, purpose)
/**
- * Verify signature.
+ * Verify signature. The @a validate data is the
+ * beginning of the data of which the signature is to be
+ * verified. The `size` field in @a validate must correctly
+ * indicate the number of bytes of the data structure, including
+ * its header. If @a purpose does not match the purpose given
+ * in @a validate (the latter
*
* @param purpose what is the purpose that the signature should have?
* @param validate block to validate (size, purpose, data)
/**
- * Verify signature.
+ * Verify signature. The @a validate data is the
+ * beginning of the data of which the signature is to be
+ * verified. The `size` field in @a validate must correctly
+ * indicate the number of bytes of the data structure, including
+ * its header. If @a purpose does not match the purpose given
+ * in @a validate (the latter must be in big endian), signature
+ * verification fails.
*
* @param purpose what is the purpose that the signature should have?
* @param validate block to validate (size, purpose, data)