summaryrefslogtreecommitdiff
path: root/pp_sys.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2000-05-08 19:13:37 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2000-05-08 19:13:37 +0000
commitbcf53261a10c1835860a0a005c5c703817c8d6ed (patch)
tree4aae777af5aa6b5591662dd4f6b06f4e8e8d3497 /pp_sys.c
parent44e4f4cc010858081ec3042ec4cadb841cd3b66a (diff)
downloadperl-bcf53261a10c1835860a0a005c5c703817c8d6ed.tar.gz
Add a note about other, yet unsupported, shadow password APIs.
p4raw-id: //depot/cfgperl@6098
Diffstat (limited to 'pp_sys.c')
-rw-r--r--pp_sys.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/pp_sys.c b/pp_sys.c
index 6de171e9b3..5d5b92dfe9 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -4773,6 +4773,50 @@ PP(pp_gpwent)
register SV *sv;
STRLEN n_a;
struct passwd *pwent = NULL;
+ /*
+ * We currently support only the SysV getsp* shadow password interface.
+ * The interface is declared in <shadow.h> and often one needs to link
+ * with -lsecurity or some such.
+ * This interface is used at least by Solaris, HP-UX, IRIX, and Linux.
+ * (and SCO?)
+ *
+ * AIX getpwnam() is clever enough to return the encrypted password
+ * only if the caller (euid?) is root.
+ *
+ * There are at least two other shadow password APIs. Many platforms
+ * seem to contain more than one interface for accessing the shadow
+ * password databases, possibly for compatibility reasons.
+ * The getsp*() is tby far he simplest one, the other two interfaces
+ * are much more complicated, but also very similar to each other.
+ *
+ * <sys/types.h>
+ * <sys/security.h>
+ * <prot.h>
+ * struct pr_passwd *getprpw*();
+ * The password is in
+ * char getprpw*(...).ufld.fd_encrypt[AUTH_MAX_CIPHERTEXT_LENGTH]
+ *
+ * <sys/types.h>
+ * <sys/security.h>
+ * <prot.h>
+ * struct es_passwd *getespw*();
+ * The password is in
+ * char *(getespw*(...).ufld.fd_encrypt)
+ *
+ * XXX Configure test needed for getprpwnam XXX
+ * XXX Configure test needed for getespwnam XXX
+ *
+ * In HP-UX for getprpw*() the manual page claims that one should include
+ * <hpsecurity.h> instead of <sys/security.h>, but that is not needed
+ * if one includes <shadow.h> as that includes <hpsecurity.h>,
+ * and pp_sys.c already includes <shadow.h> if there is such.
+ *
+ * In Digital UNIX/Tru64 if using the getespw*() (which seems to be
+ * be preferred interface, even though also the getprpw*() interface
+ * is available) one needs to link with -lsecurity -ldb -laud -lm.
+ *
+ * --jhi
+ */
# ifdef HAS_GETSPNAM
struct spwd *spwent = NULL;
# endif