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
12 @file crypt_find_cipher_any.c
13 Find a cipher in the descriptor tables, Tom St Denis
17 Find a cipher flexibly. First by name then if not present by block and key size
18 @param name The name of the cipher desired
19 @param blocklen The minimum length of the block cipher desired (octets)
20 @param keylen The minimum length of the key size desired (octets)
21 @return >= 0 if found, -1 if not present
23 int find_cipher_any(const char *name, int blocklen, int keylen)
28 x = find_cipher(name);
29 if (x != -1) return x;
32 LTC_MUTEX_LOCK(<c_cipher_mutex);
33 for (x = 0; x < TAB_SIZE; x++) {
34 if (cipher_descriptor[x].name == NULL) {
37 if (blocklen <= (int)cipher_descriptor[x].block_length && keylen <= (int)cipher_descriptor[x].max_key_length) {
38 LTC_MUTEX_UNLOCK(<c_cipher_mutex);
42 LTC_MUTEX_UNLOCK(<c_cipher_mutex);
46 /* ref: $Format:%D$ */
47 /* git commit: $Format:%H$ */
48 /* commit time: $Format:%ai$ */