X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=contrib%2Fslapd-modules%2Fpasswd%2Fsha2%2Fslapd-sha2.c;h=344e4b610eba20c2f0c022d65ecc02831d81fc37;hb=e1a5177baca44d6ff5dceea3f6f91da329d43b85;hp=20895484c264a9dd81456107d5c2599783abc273;hpb=61129f8d7a2eae4229a32b2a8ca0ce1a31e80ea9;p=openldap diff --git a/contrib/slapd-modules/passwd/sha2/slapd-sha2.c b/contrib/slapd-modules/passwd/sha2/slapd-sha2.c index 20895484c2..344e4b610e 100644 --- a/contrib/slapd-modules/passwd/sha2/slapd-sha2.c +++ b/contrib/slapd-modules/passwd/sha2/slapd-sha2.c @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 2009 The OpenLDAP Foundation. + * Copyright 2009-2011 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,63 +32,6 @@ #include #endif -/* pw_string64 function taken from libraries/liblutil/passwd.c */ -static int pw_string64( - const struct berval *sc, - const struct berval *hash, - struct berval *b64, - const struct berval *salt ) -{ - int rc; - struct berval string; - size_t b64len; - - if( salt ) { - /* need to base64 combined string */ - string.bv_len = hash->bv_len + salt->bv_len; - string.bv_val = ber_memalloc( string.bv_len + 1 ); - - if( string.bv_val == NULL ) { - return LUTIL_PASSWD_ERR; - } - - AC_MEMCPY( string.bv_val, hash->bv_val, - hash->bv_len ); - AC_MEMCPY( &string.bv_val[hash->bv_len], salt->bv_val, - salt->bv_len ); - string.bv_val[string.bv_len] = '\0'; - - } else { - string = *hash; - } - - b64len = LUTIL_BASE64_ENCODE_LEN( string.bv_len ) + 1; - b64->bv_len = b64len + sc->bv_len; - b64->bv_val = ber_memalloc( b64->bv_len + 1 ); - - if( b64->bv_val == NULL ) { - if( salt ) ber_memfree( string.bv_val ); - return LUTIL_PASSWD_ERR; - } - - AC_MEMCPY(b64->bv_val, sc->bv_val, sc->bv_len); - - rc = lutil_b64_ntop( - (unsigned char *) string.bv_val, string.bv_len, - &b64->bv_val[sc->bv_len], b64len ); - - if( salt ) ber_memfree( string.bv_val ); - - if( rc < 0 ) { - return LUTIL_PASSWD_ERR; - } - - /* recompute length */ - b64->bv_len = sc->bv_len + rc; - assert( strlen(b64->bv_val) == b64->bv_len ); - return LUTIL_PASSWD_OK; -} - char * sha256_hex_hash(const char * passwd) { SHA256_CTX ct; @@ -170,7 +113,7 @@ static int hash_sha256( digest.bv_val = (char *) hash256; digest.bv_len = sizeof(hash256); - return pw_string64(scheme, &digest, hash, NULL); + return lutil_passwd_string64(scheme, &digest, hash, NULL); } static int hash_sha384( @@ -193,7 +136,7 @@ static int hash_sha384( digest.bv_val = (char *) hash384; digest.bv_len = sizeof(hash384); - return pw_string64(scheme, &digest, hash, NULL); + return lutil_passwd_string64(scheme, &digest, hash, NULL); } static int hash_sha512( @@ -213,7 +156,7 @@ static int hash_sha512( digest.bv_val = (char *) hash512; digest.bv_len = sizeof(hash512); - return pw_string64(scheme, &digest, hash, NULL); + return lutil_passwd_string64(scheme, &digest, hash, NULL); } static int chk_sha256(