From 22857c96da905c49940eb527c34a789196a4927f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Fri, 21 Apr 2006 15:01:20 +0000 Subject: [PATCH] Add EVP_get_cipherbyname, unbreak EVP_BytesToKey git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@17136 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/des/evp.c | 34 ++++++++++++++++++++++++++++++---- lib/des/evp.h | 6 +++++- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/lib/des/evp.c b/lib/des/evp.c index 579830466..9fc21800b 100644 --- a/lib/des/evp.c +++ b/lib/des/evp.c @@ -764,6 +764,33 @@ EVP_aes_256_cbc(void) return &aes_256_cbc; } +/* + * + */ + +static const struct cipher_name { + const char *name; + const EVP_CIPHER *(*func)(void); +} cipher_name[] = { + { "des-ede3-cbc", EVP_des_ede3_cbc }, + { "aes-128-cbc", EVP_aes_128_cbc }, + { "aes-192-cbc", EVP_aes_192_cbc }, + { "aes-256-cbc", EVP_aes_256_cbc } +}; + + +const EVP_CIPHER * +EVP_get_cipherbyname(const char *name) +{ + int i; + for (i = 0; i < sizeof(cipher_name)/sizeof(cipher_name[0]); i++) { + if (strcasecmp(cipher_name[i].name, name) == 0) + return (*cipher_name[i].func)(); + } + return NULL; +} + + /* * */ @@ -773,10 +800,9 @@ EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, const void *salt, const void *data, size_t datalen, - int count, - const void *key, - const void *iv) + unsigned int count, + void *keydata, + void *ivdata) { - return 0; } diff --git a/lib/des/evp.h b/lib/des/evp.h index 19e8d345d..b1084be54 100644 --- a/lib/des/evp.h +++ b/lib/des/evp.h @@ -88,6 +88,7 @@ #define EVP_sha256 hc_EVP_sha256 #define PKCS5_PBKDF2_HMAC_SHA1 hc_PKCS5_PBKDF2_HMAC_SHA1 #define EVP_BytesToKey hc_EVP_BytesToKey +#define EVP_get_cipherbyname hc_EVP_get_cipherbyname /* * @@ -204,6 +205,9 @@ int EVP_Digest(const void *, size_t, void *, unsigned int *, * */ +const EVP_CIPHER * + EVP_get_cipherbyname(const char *); + size_t EVP_CIPHER_block_size(const EVP_CIPHER *); size_t EVP_CIPHER_key_length(const EVP_CIPHER *); size_t EVP_CIPHER_iv_length(const EVP_CIPHER *); @@ -234,7 +238,7 @@ int PKCS5_PBKDF2_HMAC_SHA1(const void *, size_t, const void *, size_t, int EVP_BytesToKey(const EVP_CIPHER *, const EVP_MD *, const void *, const void *, size_t, - int, const void *, const void *); + unsigned int, void *, void *); #endif /* HEIM_EVP_H */