diff options
author | Marco d'Itri <md@linux.it> | 2018-10-14 03:41:14 +0200 |
---|---|---|
committer | Marco d'Itri <md@linux.it> | 2018-10-14 03:41:14 +0200 |
commit | 4d24d493ff9e2e706a9d025b33956e8764a87c01 (patch) | |
tree | 83616d7b1773e4673ca46e7e024577f745da2def | |
parent | 80c36bb8e584758def534fc2520a40447007422d (diff) | |
download | whois-4d24d493ff9e2e706a9d025b33956e8764a87c01.tar.gz |
mkpasswd: implement a generic way to provide the hash type
-rw-r--r-- | mkpasswd.1 | 4 | ||||
-rw-r--r-- | mkpasswd.c | 11 |
2 files changed, 15 insertions, 0 deletions
@@ -25,6 +25,8 @@ The behavior is undefined if this option is used without \fI--method\fP. .B -m, --method=TYPE Compute the password using the \fITYPE\fP method. If \fITYPE\fP is \fIhelp\fP then the available methods are printed. +If \fITYPE\fP begins and end with \fI$\fP characters then the string +is passed to \fIcrypt_gensalt(3)\fP as-is. .TP .B -5 Like \fI--method=md5\fP. @@ -50,6 +52,8 @@ This programs suffers of a bad case of featuritis. .IR passwd(1), .IR passwd(5), .IR crypt(3), +.IR crypt(5), +.IR crypt_gensalt(3), .IR getpass(3) .SH AUTHOR .B mkpasswd @@ -181,6 +181,17 @@ int main(int argc, char *argv[]) display_methods(); exit(0); } +#if defined HAVE_LINUX_CRYPT_GENSALT || defined HAVE_SOLARIS_CRYPT_GENSALT + if (optarg[0] == '$' + && strlen(optarg) > 2 + && *(optarg + strlen(optarg) - 1) == '$') { + salt_prefix = NOFAIL(strdup(optarg)); + salt_minlen = 0; + salt_maxlen = 0; + rounds_support = 0; + break; + } +#endif for (i = 0; methods[i].method != NULL; i++) if (strcaseeq(methods[i].method, optarg)) { salt_prefix = methods[i].prefix; |