summaryrefslogtreecommitdiff
path: root/src/lib/libc/crypt/cryptutil.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libc/crypt/cryptutil.c')
-rw-r--r--src/lib/libc/crypt/cryptutil.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/lib/libc/crypt/cryptutil.c b/src/lib/libc/crypt/cryptutil.c
index 4a8c46be49..f9045ed601 100644
--- a/src/lib/libc/crypt/cryptutil.c
+++ b/src/lib/libc/crypt/cryptutil.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: cryptutil.c,v 1.2 2014/11/17 16:47:28 tedu Exp $ */ 1/* $OpenBSD: cryptutil.c,v 1.3 2014/11/21 05:13:44 tedu Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Ted Unangst <tedu@openbsd.org> 3 * Copyright (c) 2014 Ted Unangst <tedu@openbsd.org>
4 * 4 *
@@ -55,16 +55,14 @@ fail:
55} 55}
56 56
57int 57int
58crypt_newhash(const char *pass, login_cap_t *lc, char *hash, size_t hashlen) 58crypt_newhash(const char *pass, const char *pref, char *hash, size_t hashlen)
59{ 59{
60 int rv = -1; 60 int rv = -1;
61 char *pref; 61 const char *defaultpref = "blowfish,8";
62 char *defaultpref = "blowfish,8";
63 const char *errstr; 62 const char *errstr;
64 int rounds; 63 int rounds;
65 64
66 if (lc == NULL || 65 if (pref == NULL)
67 (pref = login_getcapstr(lc, "localcipher", NULL, NULL)) == NULL)
68 pref = defaultpref; 66 pref = defaultpref;
69 if (strncmp(pref, "blowfish,", 9) != 0) { 67 if (strncmp(pref, "blowfish,", 9) != 0) {
70 errno = EINVAL; 68 errno = EINVAL;
@@ -76,7 +74,5 @@ crypt_newhash(const char *pass, login_cap_t *lc, char *hash, size_t hashlen)
76 rv = bcrypt_newhash(pass, rounds, hash, hashlen); 74 rv = bcrypt_newhash(pass, rounds, hash, hashlen);
77 75
78err: 76err:
79 if (pref != defaultpref)
80 free(pref);
81 return rv; 77 return rv;
82} 78}