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_cipher.c
15
Register a cipher, Tom St Denis
19
Register a cipher with the descriptor table
20
@param cipher The cipher you wish to register
21
@return value >= 0 if successfully added (or already present), -1 if unsuccessful
23
int register_cipher(const struct ltc_cipher_descriptor *cipher)
27
LTC_ARGCHK(cipher != NULL);
29
/* is it already registered? */
30
LTC_MUTEX_LOCK(<c_cipher_mutex);
31
for (x = 0; x < TAB_SIZE; x++) {
32
if (cipher_descriptor[x].name != NULL && cipher_descriptor[x].ID == cipher->ID) {
33
LTC_MUTEX_UNLOCK(<c_cipher_mutex);
38
/* find a blank spot */
39
for (x = 0; x < TAB_SIZE; x++) {
40
if (cipher_descriptor[x].name == NULL) {
41
XMEMCPY(&cipher_descriptor[x], cipher, sizeof(struct ltc_cipher_descriptor));
42
LTC_MUTEX_UNLOCK(<c_cipher_mutex);
48
LTC_MUTEX_UNLOCK(<c_cipher_mutex);
52
/* $Source: /cvs/libtom/libtomcrypt/src/misc/crypt/crypt_register_cipher.c,v $ */
53
/* $Revision: 1.4 $ */
54
/* $Date: 2005/06/19 18:00:28 $ */