BSD 4_3_Net_2 release
[unix-history] / usr / src / lib / libc / gen / getpass.3
index 1f71a2d..db9d744 100644 (file)
@@ -1,31 +1,88 @@
-.\"    @(#)getpass.3   6.2 (Berkeley) %G%
+.\" Copyright (c) 1989, 1991 The Regents of the University of California.
+.\" All rights reserved.
 .\"
 .\"
-.TH GETPASS 3  ""
-.AT 3
-.SH NAME
-getpass \- read a password
-.SH SYNOPSIS
-.nf
-.B char *getpass(prompt)
-.B char *prompt;
-.fi
-.SH DESCRIPTION
-.I Getpass
-reads a password from the file
-.IR /dev/tty ,
-or if that cannot be opened, from the standard input,
-after prompting with the null-terminated string
-.I prompt
-and disabling echoing.
-A pointer is returned to a null-terminated string
-of at most 8 characters.
-A calling process should zero the password as soon
-as possible to avoid leaving the cleartext password
-visible in the process' address space.
-.SH FILES
-/dev/tty
-.SH "SEE ALSO"
-crypt(3)
-.SH BUGS
-The return value points to static data
-whose content is overwritten by each call.
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"    This product includes software developed by the University of
+.\"    California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     @(#)getpass.3  6.5 (Berkeley) 5/21/91
+.\"
+.Dd May 21, 1991
+.Dt GETPASS 3
+.Os
+.Sh NAME
+.Nm getpass
+.Nd get a password
+.Sh SYNOPSIS
+.Fd #include <pwd.h>
+.Fd #include <unistd.h>
+.Ft char *
+.Fn getpass "const char *prompt"
+.Sh DESCRIPTION
+The
+.Fn getpass
+function displays a prompt to, and reads in a password from,
+.Pa /dev/tty .
+If this file is not accessible,
+.Nm getpass
+displays the prompt on the standard error output and reads from the standard
+input.
+.Pp
+The password may be up to _PASSWORD_LEN (currently 128)
+characters in length.
+Any additional
+characters and the terminating newline character are discarded.
+.Pp
+.Nm Getpass
+turns off character echoing while reading the password.
+.Pp
+.Sh RETURN VALUES
+.Nm Getpass
+returns a pointer to the null terminated password.
+.Sh FILES
+.Bl -tag -width /dev/tty - compact
+.It Pa /dev/tty
+.El
+.Sh SEE ALSO
+.Xr crypt 3
+.Sh HISTORY
+A
+.Nm getpass
+function appeared in
+.At v7 .
+.Sh BUGS
+The
+.Nm getpass
+function leaves its result in an internal static object and returns
+a pointer to that object.
+Subsequent calls to
+.Nm getpass
+will modify the same object.
+.Pp
+The calling process should zero the password as soon as possible to
+avoid leaving the cleartext password visible in the process's address
+space.