crypt_gensalt(3C)
NAME
crypt_gensalt - generate salt string for string encoding
SYNOPSIS
#include <crypt.h>
char *crypt_gensalt(const char *oldsalt, const struct passwd
*userinfo);
DESCRIPTION
The crypt_gensalt() function generates the salt string
required by crypt(3C).
If oldsalt is NULL, crypt_gensalt() uses the algorithm
defined by CRYPT_DEFAULT in /etc/security/policy.conf. See
policy.conf(4).
If oldsalt is non-null, crypt_gensalt() determines if the
algorithm specified by oldsalt is allowable by checking the
CRYPT_ALGORITHMS_ALLOW and CRYPT_ALGORITHMS_DEPRECATE vari-
ables in /etc/security/policy.conf. If the algorithm is
allowed, crypt_gensalt() loads the appropriate shared
library and calls crypt_gensalt_impl(3C). If the algorithm
is not allowed or there is no entry for it in crypt.conf,
crypt_gensalt() uses the default algorithm.
The mechanism just described provides a means to migrate
users to new password hashing algorithms when the password
is changed.
RETURN VALUES
Upon successful completion, crypt_gensalt() returns a
pointer to the new salt. Otherwise a null pointer is
returned and errno is set to indicate the error.
ERRORS
The crypt_gensalt() function will fail if:
EINVAL
The configuration file crypt.conf contains an invalid
entry.
ELIBACC
The required shared library was not found.
ENOMEM
There is insufficient memory to perform hashing.
USAGE
The value returned by crypt_gensalt() points to a null-
terminated string. The caller of crypt_gensalt() is respon-
sible for calling free(3C).
Applications dealing with user authentication and password
changing should not call crypt_gensalt() directly but should
instead call the appropriate pam(3PAM) functions.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Evolving |
|_____________________________|_____________________________|
| MT-Level | MT-Safe |
|_____________________________|_____________________________|
SEE ALSO
passwd(1), crypt(3C), crypt_genhash_impl(3C),
crypt_gensalt_impl(3C), getpassphrase(3C), malloc(3C),
pam(3PAM), crypt.conf(4), passwd(4), policy.conf(4), attri-
butes(5)
Man(1) output converted with
man2html