Provided by: libczmq-dev_4.2.0-2_amd64 bug


       zdigest - Class for provides hashing functions (SHA-1 at present)


       //  This is a stable class, and may not change except for emergencies. It
       //  is provided in stable builds.
       //  Constructor - creates new digest object, which you use to build up a
       //  digest by repeatedly calling zdigest_update() on chunks of data.
       CZMQ_EXPORT zdigest_t *
           zdigest_new (void);

       //  Destroy a digest object
       CZMQ_EXPORT void
           zdigest_destroy (zdigest_t **self_p);

       //  Add buffer into digest calculation
       CZMQ_EXPORT void
           zdigest_update (zdigest_t *self, const byte *buffer, size_t length);

       //  Return final digest hash data. If built without crypto support,
       //  returns NULL.
       CZMQ_EXPORT const byte *
           zdigest_data (zdigest_t *self);

       //  Return final digest hash size
       CZMQ_EXPORT size_t
           zdigest_size (zdigest_t *self);

       //  Return digest as printable hex string; caller should not modify nor
       //  free this string. After calling this, you may not use zdigest_update()
       //  on the same digest. If built without crypto support, returns NULL.
       CZMQ_EXPORT char *
           zdigest_string (zdigest_t *self);

       //  Self test of this class.
       CZMQ_EXPORT void
           zdigest_test (bool verbose);

       Please add '@interface' section in './../src/zdigest.c'.


       The zdigest class generates a hash from zchunks of data. The current algorithm is SHA-1,
       chosen for speed. We are aiming to generate a unique digest for a file, and there are no
       security issues in this use case.

       The current code depends on OpenSSL, which might be replaced by hard coded SHA-1
       implementation to reduce build dependencies.


       From zdigest_test method.

           byte *buffer = (byte *) zmalloc (1024);
           memset (buffer, 0xAA, 1024);

           zdigest_t *digest = zdigest_new ();
           assert (digest);
           zdigest_update (digest, buffer, 1024);
           const byte *data = zdigest_data (digest);
           assert (data [0] == 0xDE);
           assert (data [1] == 0xB2);
           assert (data [2] == 0x38);
           assert (data [3] == 0x07);
           assert (streq (zdigest_string (digest),
           zdigest_destroy (&digest);
           freen (buffer);

           #if defined (__WINDOWS__)


       The czmq manual was written by the authors in the AUTHORS file.


       Main web site:

       Report bugs to the email <[1]>


       Copyright (c) the Contributors as noted in the AUTHORS file. This file is part of CZMQ,
       the high-level C binding for 0MQ: This Source Code Form is subject
       to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not
       distributed with this file, You can obtain one at LICENSE
       included with the czmq distribution.