1
/* LibTomCrypt, modular cryptographic library -- Tom St Denis
3
* LibTomCrypt is a library that provides various cryptographic
4
* algorithms in a highly modular and flexible manner.
6
* The library is free for all purposes without any express
9
* Tom St Denis, tomstdenis@gmail.com, http://libtomcrypt.org
14
@file crypt_register_hash.c
15
Register a HASH, Tom St Denis
19
Register a hash with the descriptor table
20
@param hash The hash you wish to register
21
@return value >= 0 if successfully added (or already present), -1 if unsuccessful
23
int register_hash(const struct ltc_hash_descriptor *hash)
27
LTC_ARGCHK(hash != NULL);
29
/* is it already registered? */
30
LTC_MUTEX_LOCK(<c_hash_mutex);
31
for (x = 0; x < TAB_SIZE; x++) {
32
if (memcmp(&hash_descriptor[x], hash, sizeof(struct ltc_hash_descriptor)) == 0) {
33
LTC_MUTEX_UNLOCK(<c_hash_mutex);
38
/* find a blank spot */
39
for (x = 0; x < TAB_SIZE; x++) {
40
if (hash_descriptor[x].name == NULL) {
41
XMEMCPY(&hash_descriptor[x], hash, sizeof(struct ltc_hash_descriptor));
42
LTC_MUTEX_UNLOCK(<c_hash_mutex);
48
LTC_MUTEX_UNLOCK(<c_hash_mutex);
52
/* $Source: /cvs/libtom/libtomcrypt/src/misc/crypt/crypt_register_hash.c,v $ */
53
/* $Revision: 1.4 $ */
54
/* $Date: 2005/06/19 18:00:28 $ */