]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink++.h
Implement meshlink_sign() and _verify().
[meshlink] / src / meshlink++.h
index 02cd01a2d1ae26ad486340b028135689629c7cf9..a4829a4505204bb0c2f8b5a4494e1804cee36c45 100644 (file)
@@ -168,12 +168,13 @@ namespace meshlink {
                 *
                 *  @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.
@@ -183,11 +184,12 @@ namespace meshlink {
                 *  @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.