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_find_cipher_any.c
15
Find a cipher in the descriptor tables, Tom St Denis
19
Find a cipher flexibly. First by name then if not present by block and key size
20
@param name The name of the cipher desired
21
@param blocklen The minimum length of the block cipher desired (octets)
22
@param keylen The minimum length of the key size desired (octets)
23
@return >= 0 if found, -1 if not present
25
int find_cipher_any(const char *name, int blocklen, int keylen)
29
LTC_ARGCHK(name != NULL);
31
x = find_cipher(name);
32
if (x != -1) return x;
34
LTC_MUTEX_LOCK(<c_cipher_mutex);
35
for (x = 0; x < TAB_SIZE; x++) {
36
if (cipher_descriptor[x].name == NULL) {
39
if (blocklen <= (int)cipher_descriptor[x].block_length && keylen <= (int)cipher_descriptor[x].max_key_length) {
40
LTC_MUTEX_UNLOCK(<c_cipher_mutex);
44
LTC_MUTEX_UNLOCK(<c_cipher_mutex);
48
/* $Source: /cvs/libtom/libtomcrypt/src/misc/crypt/crypt_find_cipher_any.c,v $ */
49
/* $Revision: 1.4 $ */
50
/* $Date: 2005/06/19 18:00:28 $ */