#include "lutil.h"
+// #define SLAP_AUTHPASSWD 1
+
/*
* Password Test Program
*/
char *hash[] = {
- "{SMD5}", "{SSHA}",
- "{MD5}", "{SHA}",
+#ifdef SLAP_AUTHPASSWD
+ "SHA1", "MD5",
+#else
#ifdef SLAPD_CRYPT
"{CRYPT}",
+#endif
+ "{SSHA}", "{SMD5}",
+ "{SHA}", "{MD5}",
+ "{BOGUS}",
#endif
NULL
};
static struct berval pw[] = {
{ sizeof("secret")-1, "secret" },
- { sizeof("binary\0secret")-1, "secret\0binary" },
+ { sizeof("binary\0secret")-1, "binary\0secret" },
{ 0, NULL }
};
{
int i, j, rc;
struct berval *passwd;
+#ifdef SLAP_AUTHPASSWD
+ struct berval *salt;
+#endif
+ struct berval bad;
+ bad.bv_val = "bad password";
+ bad.bv_len = sizeof("bad password")-1;
for( i= 0; hash[i]; i++ ) {
for( j = 0; pw[j].bv_len; j++ ) {
+#ifdef SLAP_AUTHPASSWD
+ rc = lutil_authpasswd_hash( &pw[j],
+ &passwd, &salt, hash[i] );
+
+ if( rc )
+#else
passwd = lutil_passwd_hash( &pw[j], hash[i] );
+
+ if( passwd == NULL )
+#endif
+ {
+ printf("%s generate fail: %s (%d)\n",
+ hash[i], pw[j].bv_val, pw[j].bv_len );
+ continue;
+ }
+
+
+#ifdef SLAP_AUTHPASSWD
+ rc = lutil_authpasswd( &pw[j], passwd, salt, NULL );
+#else
rc = lutil_passwd( passwd, &pw[j], NULL );
+#endif
- printf("%s (%d): %s (%d) %s\n",
+ printf("%s (%d): %s (%d)\t(%d) %s\n",
pw[j].bv_val, pw[j].bv_len, passwd->bv_val, passwd->bv_len,
- rc == 0 ? "OKAY" : "BAD" );
+ rc, rc == 0 ? "OKAY" : "BAD" );
+
+#ifdef SLAP_AUTHPASSWD
+ rc = lutil_authpasswd( passwd, salt, &bad, NULL );
+#else
+ rc = lutil_passwd( passwd, &bad, NULL );
+#endif
+
+ printf("%s (%d): %s (%d)\t(%d) %s\n",
+ bad.bv_val, bad.bv_len, passwd->bv_val, passwd->bv_len,
+ rc, rc != 0 ? "OKAY" : "BAD" );
}
+
+ printf("\n");
}
+
return EXIT_SUCCESS;
}
\ No newline at end of file