summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2007-08-20 15:38:47 -0400
committerSimo Sorce <ssorce@redhat.com>2007-08-20 15:38:47 -0400
commitaacfce9cf17862dfa7f44a529e5b2eb2753e35bd (patch)
tree9e31b496cf8a895fa28ddeb33d6e0acb8b1d16b2 /ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c
parent14d78e9170e6b3a338cb18e412602925ee6a42a5 (diff)
downloadfreeipa-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.c25
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;
}