~ubuntu-branches/ubuntu/utopic/dropbear/utopic-proposed

« back to all changes in this revision

Viewing changes to libtomcrypt/src/misc/crypt/crypt_find_cipher_any.c

  • Committer: Bazaar Package Importer
  • Author(s): Matt Johnston
  • Date: 2005-12-08 19:20:21 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20051208192021-nyp9rwnt77nsg6ty
Tags: 0.47-1
* New upstream release.
* SECURITY: Fix incorrect buffer sizing.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* LibTomCrypt, modular cryptographic library -- Tom St Denis
 
2
 *
 
3
 * LibTomCrypt is a library that provides various cryptographic
 
4
 * algorithms in a highly modular and flexible manner.
 
5
 *
 
6
 * The library is free for all purposes without any express
 
7
 * guarantee it works.
 
8
 *
 
9
 * Tom St Denis, tomstdenis@gmail.com, http://libtomcrypt.org
 
10
 */
 
11
#include "tomcrypt.h"
 
12
 
 
13
/**
 
14
  @file crypt_find_cipher_any.c
 
15
  Find a cipher in the descriptor tables, Tom St Denis
 
16
*/
 
17
 
 
18
/**
 
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
 
24
*/
 
25
int find_cipher_any(const char *name, int blocklen, int keylen)
 
26
{
 
27
   int x;
 
28
 
 
29
   LTC_ARGCHK(name != NULL);
 
30
 
 
31
   x = find_cipher(name);
 
32
   if (x != -1) return x;
 
33
 
 
34
   LTC_MUTEX_LOCK(&ltc_cipher_mutex);
 
35
   for (x = 0; x < TAB_SIZE; x++) {
 
36
       if (cipher_descriptor[x].name == NULL) {
 
37
          continue;
 
38
       }
 
39
       if (blocklen <= (int)cipher_descriptor[x].block_length && keylen <= (int)cipher_descriptor[x].max_key_length) {
 
40
          LTC_MUTEX_UNLOCK(&ltc_cipher_mutex);
 
41
          return x;
 
42
       }
 
43
   }
 
44
   LTC_MUTEX_UNLOCK(&ltc_cipher_mutex);
 
45
   return -1;
 
46
}
 
47
 
 
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 $ */