Header Ads Widget

[MAN] zdigest

Content-type: text/html; charset=UTF-8 Man page of ZDIGEST

ZDIGEST

Section: CZMQ Manual (3)
Updated: 01/01/2018
Index Return to Main Contents
 

NAME

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

SYNOPSIS

//  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'.
 

DESCRIPTION

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.  

EXAMPLE

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),
               "DEB23807D4FE025E900FE9A9C7D8410C3DDE9671"));
zdigest_destroy (&digest);
freen (buffer);

#if defined (__WINDOWS__)
zsys_shutdown();
#endif

 

AUTHORS

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

RESOURCES

Main web site: m[blue]m[]

Report bugs to the email <m[blue]zeromq-dev@lists.zeromq.orgm[][1]>  

COPYRIGHT

Copyright (c) the Contributors as noted in the AUTHORS file. This file is part of CZMQ, the high-level C binding for 0MQ: http://czmq.zeromq.org. 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 http://mozilla.org/MPL/2.0/. LICENSE included with the czmq distribution.  

NOTES

1.
zeromq-dev@lists.zeromq.org
mailto:zeromq-dev@lists.zeromq.org


 

Index

NAME
SYNOPSIS
DESCRIPTION
EXAMPLE
AUTHORS
RESOURCES
COPYRIGHT
NOTES

This document was created by man2html, using the manual pages.
Time: 04:45:47 GMT, September 16, 2022

댓글 쓰기

0 댓글