randomword(3)randomword(3)NAME
randomword, randomchars, randomletters - Generate random passwords
(Enhanced Security)
SYNOPSIS
int randomchars(
char *string,
unsigned short int minlen,
unsigned short int maxlen,
boolean restrict,
long seed ); int randomletters(
char *string,
unsigned short int minlen,
unsigned short int maxlen,
boolean restrict,
long seed ); int randomword(
char *word,
char *hyphenated_word,
unsigned short int minlen,
unsigned short int maxlen,
boolean restrict,
long seed );
LIBRARY
Enhanced Security Library (libsecurity)
PARAMETERS
Points at a user-supplied space to contain a null-terminated password.
Specifies the minimum length that a generated word can have. Specifies
the maximum length that a generated word can have. Specifies whether
restrictions are to be imposed on the generated word. This is a boolean
integer, where a non-zero integer indications restrictions and a 0
(zero) indicates no restrictions. Specifies an initial seed for the
random number generator. Points at a user-supplied space to contain a
null-terminated random pronounceable password. Contains the hyphenated
version of the generated word.
DESCRIPTION
These functions generate random passwords for use in password selec‐
tion. All of them are generated by the system, based on seeds and set
in the function. Such seeds can be created with the drand48(), rand(),
or random() functions.
The randomchars() function places a null-terminated password composed
of random printable ASCII characters into the string parameter and
returns the length of the generated string. The minlen and maxlen
parameters denote the minimum and maximum lengths allowed for string.
The minlen parameter can equal maxlen, but cannot be greater than
maxlen, and cannot be negative. The user space preallocated is at
least maxlen for string. The smaller minlen and maxlen are, the
smaller the selection space of random words.
The restrict parameter is 0 (zero) when no restrictions are placed on
the generated word. It is nonzero when the words generated pass the
tests of the acceptable_password() function. The seed argument speci‐
fies an initial seed for the random number generator used by random‐
chars().
The seed parameter is used by the function only on the first time it is
called; the parameter is ignored on subsequent calls.
The randomletters() function places a null-terminated password composed
of random lower-case letters into the string parameter and returns the
length of the generated word. The minlen, maxlen, restrict, and seed
parameters are the same as for the randomchars() function.
The randomword() function places a null-terminated random pronounceable
password into the word parameter and returns the length of the gener‐
ated word. The hyphenated version of the word is placed in hyphen‐
ated_word. The minlen, maxlen, restrict, and seed parameters are the
same as for the randomchars() and randomletters() functions. The user
space preallocated is at least 2*max - 1 for hyphenated_word.
NOTES
The password generator relies on a random number generator that pro‐
duces uniformly distributed integers. Because the password generator
invokes the random number generator many times even for one word, the
random number generator has to produce a uniform distribution. The
period (distinct numbers produced given a particular seed) and number
space (range of possible numbers) must both be large. The drand48()
functions are used for this purpose.
Programs using these functions must be compiled with -lsecurity.
FILES
System password file. System group file.
SEE ALSO
Commands: login(1), passwd(1)
Functions: acceptable_password(3), drand48(3), rand(3), random(3)randomword(3)