crypt_find_cipher_any.c 826 B

1234567891011121314151617181920212223242526272829303132
  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, [email protected], http://libtomcrypt.org
  10. */
  11. #include "mycrypt.h"
  12. /* idea from Wayne Scott */
  13. int find_cipher_any(const char *name, int blocklen, int keylen)
  14. {
  15. int x;
  16. _ARGCHK(name != NULL);
  17. x = find_cipher(name);
  18. if (x != -1) return x;
  19. for (x = 0; x < TAB_SIZE; x++) {
  20. if (cipher_descriptor[x].name == NULL) {
  21. continue;
  22. }
  23. if (blocklen <= (int)cipher_descriptor[x].block_length && keylen <= (int)cipher_descriptor[x].max_key_length) {
  24. return x;
  25. }
  26. }
  27. return -1;
  28. }