*
* @param data A pointer to a buffer containing the data to be signed.
* @param len The length of the data to be signed.
+ * @param signature A pointer to a buffer where the signature will be stored.
+ * @param siglen The size of the signature buffer. Will be changed after the call to match the size of the signature itself.
*
- * @return This function returns a pointer to a string containing the signature, or NULL in case of an error.
- * The application should call free() after it has finished using the signature.
+ * @return This function returns true if the signature is valid, false otherwise.
*/
- char *sign(const char *data, size_t len) {
- return meshlink_sign(this, data, len);
+ bool sign(const void *data, size_t len, void *signature, size_t *siglen) {
+ return meshlink_sign(this, data, len, signature, siglen);
}
/// Verify the signature generated by another node of a piece of data.
* @param data A pointer to a buffer containing the data to be verified.
* @param len The length of the data to be verified.
* @param signature A pointer to a string containing the signature.
+ * @param siglen The size of the signature.
*
* @return This function returns true if the signature is valid, false otherwise.
*/
- bool verify(node *source, const char *data, size_t len, const char *signature) {
- return meshlink_verify(this, source, data, len, signature);
+ bool verify(node *source, const void *data, size_t len, const void *signature, size_t siglen) {
+ return meshlink_verify(this, source, data, len, signature, siglen);
}
/// Add an Address for the local node.