Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ZDIGEST(3)			  CZMQ Manual			    ZDIGEST(3)

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:

       Report bugs to the email	<zeromq-dev@lists.zeromq.org[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

CZMQ 4.2.1			  11/01/2025			    ZDIGEST(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zdigest&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help