diff options
author | Simo Sorce <ssorce@redhat.com> | 2007-08-20 15:38:47 -0400 |
---|---|---|
committer | Simo Sorce <ssorce@redhat.com> | 2007-08-20 15:38:47 -0400 |
commit | aacfce9cf17862dfa7f44a529e5b2eb2753e35bd (patch) | |
tree | 9e31b496cf8a895fa28ddeb33d6e0acb8b1d16b2 /ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c | |
parent | 14d78e9170e6b3a338cb18e412602925ee6a42a5 (diff) | |
download | freeipa-aacfce9cf17862dfa7f44a529e5b2eb2753e35bd.tar.gz freeipa-aacfce9cf17862dfa7f44a529e5b2eb2753e35bd.tar.xz freeipa-aacfce9cf17862dfa7f44a529e5b2eb2753e35bd.zip |
Remove dependncy on libmhash and use openssl md4 functions
Remove all dependencies on mhash
Remove code optimizatrion from Makefiles, right now these are
developers targeted builds, so it is better to have debugging
symbols around
Diffstat (limited to 'ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c')
-rw-r--r-- | ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c b/ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c index b4dafb847..f3771204a 100644 --- a/ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c +++ b/ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c @@ -66,8 +66,8 @@ #include <lber.h> #include <time.h> #include <iconv.h> -#include <mhash.h> #include <openssl/des.h> +#include <openssl/md4.h> /* Type of connection for this operation;*/ #define LDAP_EXTOP_PASSMOD_CONN_SECURE @@ -576,7 +576,7 @@ static int encode_ntlm_keys(char *newPasswd, unsigned int flags, struct ntlm_key size_t cs, il, ol, sl; char *inc, *outc; char *ucs2Passwd; - MHASH td; + MD4_CTX md4ctx; /* TODO: must store the dos charset somewhere in the directory */ cd = iconv_open(KTF_UCS2, KTF_UTF8); @@ -615,20 +615,31 @@ static int encode_ntlm_keys(char *newPasswd, unsigned int flags, struct ntlm_key sl = 28; } - td = mhash_init(MHASH_MD4); - if (td == MHASH_FAILED) { + ret = MD4_Init(&md4ctx); + if (ret == 0) { + ret = -1; + free(ucs2Passwd); + goto done; + } + ret = MD4_Update(&md4ctx, ucs2Passwd, sl); + if (ret == 0) { + ret = -1; + free(ucs2Passwd); + goto done; + } + ret = MD4_Final(keys->nt, &md4ctx); + if (ret == 0) { ret = -1; free(ucs2Passwd); goto done; } - - mhash(td, ucs2Passwd, sl); - mhash_deinit(td, keys->nt); } else { memset(keys->nt, 0, 16); } + ret = 0; + done: return ret; } |