summaryrefslogtreecommitdiff
path: root/source3/lib
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1998-05-07 19:59:32 +0000
committerLuke Leighton <lkcl@samba.org>1998-05-07 19:59:32 +0000
commitb543829dfceae6781624bebe11a2365c34e2d159 (patch)
tree6ff2af6dada6447e556f199b4b63508a8dd02cf0 /source3/lib
parent01df1ed95f880a671ead7bc92b3bcff01a2e2dc0 (diff)
downloadsamba-b543829dfceae6781624bebe11a2365c34e2d159.tar.gz
samba-b543829dfceae6781624bebe11a2365c34e2d159.tar.bz2
samba-b543829dfceae6781624bebe11a2365c34e2d159.zip
moving gethexpwd into util.c, because it's used in both smbpass.c and ldap.c
(This used to be commit abe261b2f5ea7036e7be6230876176d134ef4ee4)
Diffstat (limited to 'source3/lib')
-rw-r--r--source3/lib/util.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 2416110857..2f637e1495 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -4965,3 +4965,30 @@ char *dom_sid_to_string(DOM_SID *sid)
DEBUG(7,("dom_sid_to_string returning %s\n", sidstr));
return sidstr;
}
+
+/*************************************************************
+ Routine to get the next 32 hex characters and turn them
+ into a 16 byte array.
+**************************************************************/
+int gethexpwd(char *p, char *pwd)
+{
+ int i;
+ unsigned char lonybble, hinybble;
+ char *hexchars = "0123456789ABCDEF";
+ char *p1, *p2;
+
+ for (i = 0; i < 32; i += 2) {
+ hinybble = toupper(p[i]);
+ lonybble = toupper(p[i + 1]);
+
+ p1 = strchr(hexchars, hinybble);
+ p2 = strchr(hexchars, lonybble);
+ if (!p1 || !p2)
+ return (False);
+ hinybble = PTR_DIFF(p1, hexchars);
+ lonybble = PTR_DIFF(p2, hexchars);
+
+ pwd[i / 2] = (hinybble << 4) | lonybble;
+ }
+ return (True);
+}