* @param nodes A pointer to an array of pointers to meshlink::node, which should be allocated by the application.
* @param nmemb The maximum number of pointers that can be stored in the nodes array.
*
- * @param return The number of known nodes. This can be larger than nmemb, in which case not all nodes were stored in the nodes array.
+ * @return The number of known nodes. This can be larger than nmemb, in which case not all nodes were stored in the nodes array.
*/
size_t get_all_nodes(node **nodes, size_t nmemb) {
return meshlink_get_all_nodes(this, (meshlink_node_t **)nodes, nmemb);
*
* @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.