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(