aboutsummaryrefslogtreecommitdiffstats
path: root/man-pages-posix-2003/man3p/crypt.3p
diff options
context:
space:
mode:
Diffstat (limited to 'man-pages-posix-2003/man3p/crypt.3p')
-rw-r--r--man-pages-posix-2003/man3p/crypt.3p137
1 files changed, 137 insertions, 0 deletions
diff --git a/man-pages-posix-2003/man3p/crypt.3p b/man-pages-posix-2003/man3p/crypt.3p
new file mode 100644
index 0000000..833df2a
--- /dev/null
+++ b/man-pages-posix-2003/man3p/crypt.3p
@@ -0,0 +1,137 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "CRYPT" 3P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" crypt
+.SH PROLOG
+This manual page is part of the POSIX Programmer's Manual.
+The Linux implementation of this interface may differ (consult
+the corresponding Linux manual page for details of Linux behavior),
+or the interface may not be implemented on Linux.
+.SH NAME
+crypt \- string encoding function (\fBCRYPT\fP)
+.SH SYNOPSIS
+.LP
+\fB#include <unistd.h>
+.br
+.sp
+char *crypt(const char *\fP\fIkey\fP\fB, const char *\fP\fIsalt\fP\fB);
+\fP
+\fB
+.br
+\fP
+.SH DESCRIPTION
+.LP
+The \fIcrypt\fP() function is a string encoding function. The algorithm
+is implementation-defined.
+.LP
+The \fIkey\fP argument points to a string to be encoded. The \fIsalt\fP
+argument is a string chosen from the set:
+.sp
+.RS
+.nf
+
+\fBa b c d e f g h i j k l m n o p q r s t u v w x y z
+A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
+0 1 2 3 4 5 6 7 8 9 . /
+\fP
+.fi
+.RE
+.LP
+The first two characters of this string may be used to perturb the
+encoding algorithm.
+.LP
+The return value of \fIcrypt\fP() points to static data that is overwritten
+by each call.
+.LP
+The \fIcrypt\fP() function need not be reentrant. A function that
+is not required to be reentrant is not required to be
+thread-safe.
+.SH RETURN VALUE
+.LP
+Upon successful completion, \fIcrypt\fP() shall return a pointer to
+the encoded string. The first two characters of the
+returned value shall be those of the \fIsalt\fP argument. Otherwise,
+it shall return a null pointer and set \fIerrno\fP to
+indicate the error.
+.SH ERRORS
+.LP
+The \fIcrypt\fP() function shall fail if:
+.TP 7
+.B ENOSYS
+The functionality is not supported on this implementation.
+.sp
+.LP
+\fIThe following sections are informative.\fP
+.SH EXAMPLES
+.SS Encoding Passwords
+.LP
+The following example finds a user database entry matching a particular
+user name and changes the current password to a new
+password. The \fIcrypt\fP() function generates an encoded version
+of each password. The first call to \fIcrypt\fP() produces an
+encoded version of the old password; that encoded password is then
+compared to the password stored in the user database. The second
+call to \fIcrypt\fP() encodes the new password before it is stored.
+.LP
+The \fIputpwent\fP() function, used in the following example, is not
+part of IEEE\ Std\ 1003.1-2001.
+.sp
+.RS
+.nf
+
+\fB#include <unistd.h>
+#include <pwd.h>
+#include <string.h>
+#include <stdio.h>
+\&...
+int valid_change;
+int pfd; /* Integer for file descriptor returned by open(). */
+FILE *fpfd; /* File pointer for use in putpwent(). */
+struct passwd *p;
+char user[100];
+char oldpasswd[100];
+char newpasswd[100];
+char savepasswd[100];
+\&...
+valid_change = 0;
+while ((p = getpwent()) != NULL) {
+ /* Change entry if found. */
+ if (strcmp(p->pw_name, user) == 0) {
+ if (strcmp(p->pw_passwd, crypt(oldpasswd, p->pw_passwd)) == 0) {
+ strcpy(savepasswd, crypt(newpasswd, user));
+ p->pw_passwd = savepasswd;
+ valid_change = 1;
+ }
+ else {
+ fprintf(stderr, "Old password is not valid\\n");
+ }
+ }
+ /* Put passwd entry into ptmp. */
+ putpwent(p, fpfd);
+}
+\fP
+.fi
+.RE
+.SH APPLICATION USAGE
+.LP
+The values returned by this function need not be portable among XSI-conformant
+systems.
+.SH RATIONALE
+.LP
+None.
+.SH FUTURE DIRECTIONS
+.LP
+None.
+.SH SEE ALSO
+.LP
+\fIencrypt\fP(), \fIsetkey\fP(), the Base Definitions volume of
+IEEE\ Std\ 1003.1-2001, \fI<unistd.h>\fP
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group. In the
+event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .