crypt_gensalt_impl(3C)




NAME

     crypt_gensalt_impl - generate salt for password encryption


SYNOPSIS

     #include <crypt.h>

     char *crypt_gensalt_impl(char *gsbuffer,  size_t  gsbufflen,
     const  char  *oldsalt,  const struct passwd *userinfo, const
     char **params);


DESCRIPTION

     The   crypt_gensalt_impl()    function    is    called    by
     crypt_gensalt(3C)  to generate the salt for password encryp-
     tion.

     The gsbuffer argument is a pointer to an MT-safe  buffer  of
     size gsbufflen.

     The oldsalt and userinfo arguments are passed unchanged from
     crypt_gensalt(3C).

     The params argument is an argv-like null  terminated  vector
     of  type  char *. The first element of params represents the
     mechanism token name from crypt.conf(4). The remaining  ele-
     ments    of   params   represent   strings   of   the   form
     <parameter>[=<value>] to allow passing in additional  infor-
     mation  from the crypt.conf entry, such as specifying rounds
     information "rounds=4096".

     The value  returned  by  crypt_gensalt_impl()  points  to  a
     thread-specific   buffer  to  be  freed  by  the  caller  of
     crypt_gensalt(3C) after calling crypt(3C).


RETURN VALUES

     Upon successful completion, crypt_gensalt_impl()  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_impl() function will fail if:

     EINVAL
           The configuration file crypt.conf contains an  invalid
           entry.

     ELIBACC
           The required crypt shared library was not found.

     ENOMEM
           There is insufficient memory to perform hashing.


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(3C),     getpassphrase(3C),     crypt.conf(4),
     passwd(4), attributes(5)


Man(1) output converted with man2html