diff options
author | Luke Leighton <lkcl@samba.org> | 1998-05-07 19:59:32 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 1998-05-07 19:59:32 +0000 |
commit | b543829dfceae6781624bebe11a2365c34e2d159 (patch) | |
tree | 6ff2af6dada6447e556f199b4b63508a8dd02cf0 /source3/lib | |
parent | 01df1ed95f880a671ead7bc92b3bcff01a2e2dc0 (diff) | |
download | samba-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.c | 27 |
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); +} |