glibc/conform/data/unistd.h-data
Zack Weinberg b10a0accee Disallow use of DES encryption functions in new programs.
The functions encrypt, setkey, encrypt_r, setkey_r, cbc_crypt,
ecb_crypt, and des_setparity should not be used in new programs,
because they use the DES block cipher, which is unacceptably weak by
modern standards.  Demote all of them to compatibility symbols, and
remove their prototypes from installed headers.  cbc_crypt, ecb_crypt,
and des_setparity were already compat symbols when glibc was
configured with --disable-obsolete-rpc.

POSIX requires encrypt and setkey to be available when _XOPEN_CRYPT
is defined, so this change also removes the definition of X_OPEN_CRYPT
from <unistd.h>.

The entire "DES Encryption" section is dropped from the manual, as is
the mention of AUTH_DES and FIPS 140-2 in the introduction to
crypt.texi.  The documentation of 'memfrob' cross-referenced the DES
Encryption section, which is replaced by a hyperlink to libgcrypt, and
while I was in there I spruced up the actual documentation of
'memfrob' and 'strfry' a little.  It's still fairly jokey, because
those functions _are_ jokes, but they do also have real use cases, so
people trying to use them for real should have all the information
they need.

DES-based authentication for Sun RPC is also insecure and should be
deprecated or even removed, but maybe that can be left as TI-RPC's
problem.
2018-06-29 16:53:18 +02:00

610 lines
16 KiB
Plaintext

#if !defined ISO && !defined ISO99 && !defined ISO11
#ifdef POSIX
# define uid_t __uid_t
# define gid_t __gid_t
# define off_t __off_t
# define pid_t __pid_t
#endif
constant _POSIX_VERSION
#if defined POSIX || defined XPG4 || defined XPG42 || defined UNIX98
constant _POSIX2_C_VERSION
#endif
#ifndef POSIX
optional-constant _XOPEN_VERSION
optional-constant _XOPEN_XCU_VERSION
#endif
#ifndef POSIX
optional-constant _POSIX2_C_BIND
#endif
optional-constant _POSIX2_CHAR_TERM
optional-constant _POSIX2_LOCALEDEF
optional-constant _POSIX2_UPE
#ifndef POSIX
optional-constant _POSIX2_VERSION
#endif
#ifndef POSIX
optional-constant _XOPEN_XPG2
optional-constant _XOPEN_XPG3
optional-constant _XOPEN_XPG4
optional-constant _XOPEN_UNIX
#endif
#ifndef POSIX
optional-constant _POSIX_ADVISORY_INFO
#endif
optional-constant _POSIX_ASYNCHRONOUS_IO
#ifndef POSIX
optional-constant _POSIX_BARRIERS
#endif
optional-constant _POSIX_CHOWN_RESTRICTED
#ifndef POSIX
optional-constant _POSIX_CLOCK_SELECTION
optional-constant _POSIX_CPUTIME
#endif
optional-constant _POSIX_NO_TRUNC
optional-constant _POSIX_VDISABLE
optional-constant _POSIX_SAVED_IDS
optional-constant _POSIX_JOB_CONTROL
#ifndef POSIX
optional-constant _POSIX_MONOTONIC_CLOCK
optional-constant _POSIX_READER_WRITER_LOCKS
optional-constant _POSIX_SHELL
optional-constant _POSIX_SPAWN
optional-constant _POSIX_SPIN_LOCKS
optional-constant _POSIX_SPORADIC_SERVER
optional-constant _POSIX_THREAD_CPUTIME
optional-constant _POSIX_TYPED_MEMORY_OBJECTS
#endif
optional-constant _POSIX_THREADS
optional-constant _POSIX_THREAD_ATTR_STACKADDR
optional-constant _POSIX_THREAD_ATTR_STACKSIZE
optional-constant _POSIX_THREAD_PROCESS_SHARED
optional-constant _POSIX_THREAD_SAFE_FUNCTIONS
#ifndef POSIX
optional-constant _POSIX_THREAD_SPORADIC_SERVER
#endif
# ifdef XOPEN2K
optional-constant _POSIX_V6_ILP32_OFF32
optional-constant _POSIX_V6_ILP32_OFFBIG
optional-constant _POSIX_V6_LP64_OFF64
optional-constant _POSIX_V6_LPBIG_OFFBIG
# endif
# if defined XOPEN2K8 || defined POSIX2008
optional-constant _POSIX_V7_ILP32_OFF32
optional-constant _POSIX_V7_ILP32_OFFBIG
optional-constant _POSIX_V7_LP64_OFF64
optional-constant _POSIX_V7_LPBIG_OFFBIG
# endif
optional-constant _POSIX2_C_DEV
optional-constant _POSIX2_FORT_DEV
optional-constant _POSIX2_FORT_RUN
optional-constant _POSIX2_SW_DEV
# if !defined POSIX && !defined POSIX2008
optional-constant _XOPEN_CRYPT
optional-constant _XOPEN_ENH_I18N
optional-constant _XOPEN_LEGACY
optional-constant _XOPEN_REALTIME
optional-constant _XOPEN_REALTIME_THREADS
optional-constant _XOPEN_SHM
optional-constant _XOPEN_STREAMS
# endif
# ifndef POSIX
allow _XBS5_ILP32_OFF32
allow _XBS5_ILP32_OFBIG
allow _XBS5_LP64_OFF64
allow _XBS5_LPBIG_OFFBIG
#endif
optional-constant _POSIX_MEMLOCK
optional-constant _POSIX_MEMLOCK_RANGE
optional-constant _POSIX_MESSAGE_PASSING
optional-constant _POSIX_PRIORITY_SCHEDULING
optional-constant _POSIX_REALTIME_SIGNALS
optional-constant _POSIX_SEMAPHORES
optional-constant _POSIX_SHARED_MEMORY_OBJECTS
optional-constant _POSIX_SYNCHRONIZED_IO
optional-constant _POSIX_TIMERS
#ifndef POSIX
optional-constant _POSIX_TIMEOUTS
#endif
optional-constant _POSIX_FSYNC
optional-constant _POSIX_MAPPED_FILES
optional-constant _POSIX_MEMORY_PROTECTION
optional-constant _POSIX_PRIORITIZED_IO
optional-constant _POSIX_THREAD_PRIORITY_SCHEDULING
optional-constant _POSIX_THREAD_PRIO_INHERIT
optional-constant _POSIX_THREAD_PRIO_PROTECT
optional-constant _POSIX_ASYNC_IO
optional-constant _POSIX_PRIO_IO
optional-constant _POSIX_SYNC_IO
#ifndef POSIX
optional-constant _POSIX2_PBS
optional-constant _POSIX2_PBS_ACCOUNTING
optional-constant _POSIX2_PBS_CHECKPOINT
optional-constant _POSIX2_PBS_LOCATE
optional-constant _POSIX2_PBS_MESSAGE
optional-constant _POSIX2_PBS_TRACK
#endif
#ifndef POSIX
optional-constant _POSIX_TIMESTAMP_RESOLUTION
#endif
constant NULL
constant R_OK
constant W_OK
constant X_OK
constant F_OK
constant _CS_PATH
#ifndef POSIX
constant _CS_XBS5_ILP32_OFF32_CFLAGS
constant _CS_XBS5_ILP32_OFF32_LDFLAGS
constant _CS_XBS5_ILP32_OFF32_LIBS
constant _CS_XBS5_ILP32_OFF32_LINTFLAGS
constant _CS_XBS5_ILP32_OFFBIG_CFLAGS
constant _CS_XBS5_ILP32_OFFBIG_LDFLAGS
constant _CS_XBS5_ILP32_OFFBIG_LIBS
constant _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
constant _CS_XBS5_LP64_OFF64_CFLAGS
constant _CS_XBS5_LP64_OFF64_LDFLAGS
constant _CS_XBS5_LP64_OFF64_LIBS
constant _CS_XBS5_LP64_OFF64_LINTFLAGS
constant _CS_XBS5_LPBIG_OFFBIG_CFLAGS
constant _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
constant _CS_XBS5_LPBIG_OFFBIG_LIBS
constant _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
#endif
constant SEEK_SET
constant SEEK_CUR
constant SEEK_END
#ifndef POSIX
constant _SC_2_C_BIND
#endif
constant _SC_2_C_DEV
#ifndef POSIX
constant _SC_2_C_VERSION
#endif
constant _SC_2_CHAR_TERM
constant _SC_2_FORT_DEV
constant _SC_2_FORT_RUN
constant _SC_2_LOCALEDEF
#ifndef POSIX
constant _SC_2_PBS
constant _SC_2_PBS_ACCOUNTING
constant _SC_2_PBS_CHECKPOINT
constant _SC_2_PBS_LOCATE
constant _SC_2_PBS_MESSAGE
constant _SC_2_PBS_TRACK
#endif
constant _SC_2_SW_DEV
constant _SC_2_UPE
constant _SC_2_VERSION
constant _SC_ARG_MAX
constant _SC_AIO_LISTIO_MAX
constant _SC_AIO_MAX
constant _SC_AIO_PRIO_DELTA_MAX
constant _SC_ASYNCHRONOUS_IO
#ifndef POSIX
constant _SC_ATEXIT_MAX
constant _SC_BARRIERS
constant _SC_BASE
#endif
constant _SC_BC_BASE_MAX
constant _SC_BC_DIM_MAX
constant _SC_BC_SCALE_MAX
constant _SC_BC_STRING_MAX
constant _SC_CHILD_MAX
constant _SC_CLK_TCK
#ifndef POSIX
constant _SC_CLOCK_SELECTION
#endif
constant _SC_COLL_WEIGHTS_MAX
constant _SC_DELAYTIMER_MAX
#ifndef POSIX
constant _SC_DEVICE_IO
constant _SC_DEVICE_SPECIFIC
constant _SC_DEVICE_SPECIFIC_R
#endif
constant _SC_EXPR_NEST_MAX
#ifndef POSIX
constant _SC_FD_MGMT
constant _SC_FIFO
constant _SC_FILE_ATTRIBUTES
constant _SC_FILE_LOCKING
constant _SC_FILE_SYSTEM
#endif
constant _SC_FSYNC
constant _SC_GETGR_R_SIZE_MAX
constant _SC_GETPW_R_SIZE_MAX
#ifndef POSIX
constant _SC_IOV_MAX
#endif
constant _SC_JOB_CONTROL
constant _SC_LINE_MAX
constant _SC_LOGIN_NAME_MAX
constant _SC_MAPPED_FILES
constant _SC_MEMLOCK
constant _SC_MEMLOCK_RANGE
constant _SC_MEMORY_PROTECTION
constant _SC_MESSAGE_PASSING
#ifndef POSIX
constant _SC_MONOTONIC_CLOCK
#endif
constant _SC_MQ_OPEN_MAX
constant _SC_MQ_PRIO_MAX
#ifndef POSIX
constant _SC_NETWORKING
#endif
constant _SC_NGROUPS_MAX
constant _SC_OPEN_MAX
constant _SC_PAGESIZE
#ifndef POSIX
constant _SC_PAGE_SIZE
constant _SC_PASS_MAX
constant _SC_PIPE
#endif
constant _SC_PRIORITIZED_IO
constant _SC_PRIORITY_SCHEDULING
constant _SC_RE_DUP_MAX
#ifndef POSIX
constant _SC_READER_WRITER_LOCKS
#endif
constant _SC_REALTIME_SIGNALS
#ifndef POSIX
constant _SC_REGEXP
#endif
constant _SC_RTSIG_MAX
constant _SC_SAVED_IDS
constant _SC_SEMAPHORES
constant _SC_SEM_NSEMS_MAX
constant _SC_SEM_VALUE_MAX
constant _SC_SHARED_MEMORY_OBJECTS
#ifndef POSIX
constant _SC_SHELL
constant _SC_SIGNALS
#endif
constant _SC_SIGQUEUE_MAX
#ifndef POSIX
constant _SC_SINGLE_PROCESS
constant _SC_SPIN_LOCKS
#endif
constant _SC_STREAM_MAX
constant _SC_SYNCHRONIZED_IO
constant _SC_THREADS
constant _SC_THREAD_ATTR_STACKADDR
constant _SC_THREAD_ATTR_STACKSIZE
constant _SC_THREAD_DESTRUCTOR_ITERATIONS
constant _SC_THREAD_KEYS_MAX
constant _SC_THREAD_PRIORITY_SCHEDULING
constant _SC_THREAD_PRIO_INHERIT
constant _SC_THREAD_PRIO_PROTECT
constant _SC_THREAD_PROCESS_SHARED
constant _SC_THREAD_SAFE_FUNCTIONS
constant _SC_THREAD_STACK_MIN
constant _SC_THREAD_THREADS_MAX
constant _SC_TIMERS
constant _SC_TIMER_MAX
constant _SC_TTY_NAME_MAX
#ifndef POSIX
constant _SC_TYPED_MEMORY_OBJECTS
#endif
constant _SC_TZNAME_MAX
#ifndef POSIX
constant _SC_USER_GROUPS
constant _SC_USER_GROUPS_R
#endif
# ifdef XOPEN2K
constant _SC_V6_ILP32_OFF32
constant _SC_V6_ILP32_OFFBIG
constant _SC_V6_LP64_OFF64
constant _SC_V6_LPBIG_OFFBIG
# endif
# if defined XOPEN2K8 || defined POSIX2008
constant _SC_V7_ILP32_OFF32
constant _SC_V7_ILP32_OFFBIG
constant _SC_V7_LP64_OFF64
constant _SC_V7_LPBIG_OFFBIG
# endif
constant _SC_VERSION
# if !defined POSIX && !defined POSIX2008
constant _SC_XOPEN_VERSION
constant _SC_XOPEN_CRYPT
constant _SC_XOPEN_ENH_I18N
constant _SC_XOPEN_SHM
constant _SC_XOPEN_UNIX
constant _SC_XOPEN_XCU_VERSION
constant _SC_XOPEN_LEGACY
constant _SC_XOPEN_REALTIME
constant _SC_XOPEN_REALTIME_THREADS
# endif
# ifndef POSIX
constant _SC_STREAMS
constant _SC_XBS5_ILP32_OFF32
constant _SC_XBS5_ILP32_OFFBIG
constant _SC_XBS5_LP64_OFF64
constant _SC_XBS5_LPBIG_OFFBIG
# endif
# ifdef XOPEN2K
constant _CS_POSIX_V6_ILP32_OFF32_CFLAGS
constant _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
constant _CS_POSIX_V6_ILP32_OFF32_LIBS
constant _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
constant _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
constant _CS_POSIX_V6_ILP32_OFFBIG_LIBS
constant _CS_POSIX_V6_LP64_OFF64_CFLAGS
constant _CS_POSIX_V6_LP64_OFF64_LDFLAGS
constant _CS_POSIX_V6_LP64_OFF64_LIBS
constant _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
constant _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
constant _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
constant _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS
constant _CS_V6_ENV
# endif
# if defined XOPEN2K8 || defined POSIX2008
constant _CS_POSIX_V7_ILP32_OFF32_CFLAGS
constant _CS_POSIX_V7_ILP32_OFF32_LDFLAGS
constant _CS_POSIX_V7_ILP32_OFF32_LIBS
constant _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
constant _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
constant _CS_POSIX_V7_ILP32_OFFBIG_LIBS
constant _CS_POSIX_V7_LP64_OFF64_CFLAGS
constant _CS_POSIX_V7_LP64_OFF64_LDFLAGS
constant _CS_POSIX_V7_LP64_OFF64_LIBS
constant _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
constant _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
constant _CS_POSIX_V7_LPBIG_OFFBIG_LIBS
constant _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
constant _CS_V7_ENV
# endif
# ifndef POSIX
constant _SC_THREAD_ROBUST_PRIO_INHERIT
constant _SC_THREAD_ROBUST_PRIO_PROTECT
#endif
#if !defined XPG4 && !defined POSIX && !defined POSIX2008
constant F_LOCK
constant F_ULOCK
constant F_TEST
constant F_TLOCK
#endif
constant _PC_ASYNC_IO
constant _PC_CHOWN_RESTRICTED
#ifndef POSIX
constant _PC_FILESIZEBITS
#endif
constant _PC_LINK_MAX
constant _PC_MAX_CANON
constant _PC_MAX_INPUT
constant _PC_NAME_MAX
constant _PC_NO_TRUNC
constant _PC_PATH_MAX
constant _PC_PIPE_BUF
constant _PC_PRIO_IO
#ifndef POSIX
constant _PC_REC_INCR_XFER_SIZE
constant _PC_REC_MAX_XFER_SIZE
constant _PC_REC_MIN_XFER_SIZE
constant _PC_REC_XFER_ALIGN
#endif
constant _PC_SYNC_IO
constant _PC_VDISABLE
constant STDIN_FILENO
constant STDOUT_FILENO
constant STDERR_FILENO
type size_t
type ssize_t
#ifndef POSIX
type uid_t
type gid_t
type off_t
type pid_t
#endif
#if !defined POSIX && !defined XPG4
type useconds_t
# ifndef XPG42
type intptr_t
# endif
#endif
function int access (const char*, int)
function {unsigned int} alarm (unsigned int)
#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function int brk (void*)
#endif
function int chdir (const char*)
#if defined XPG4 || defined XPG42 || defined UNIX98
function int chroot (const char*)
#endif
function int chown (const char*, uid_t, gid_t)
function int close (int)
function size_t confstr (int, char*, size_t)
#if defined XPG4 || defined XPG42 || defined UNIX98
function {char*} ctermid (char*)
function {char*} cuserid (char*)
#endif
#ifdef POSIX
allow cuserid
#endif
function int dup (int)
function int dup2 (int, int)
function int execl (const char*, const char*, ...)
function int execle (const char*, const char*, ...)
function int execlp (const char*, const char*, ...)
function int execv (const char*, char *const[])
function int execve (const char*, char *const[], char *const[])
function int execvp (const char*, char *const[])
function void _exit (int)
# if defined XOPEN2K8 || defined POSIX2008
function int faccessat (int, const char*, int, int)
# endif
#if !defined XPG4 && !defined POSIX
function int fchown (int, uid_t, gid_t)
#endif
# if defined XOPEN2K8 || defined POSIX2008
function int fchownat (int, const char*, uid_t, gid_t, int)
# endif
#if !defined XPG4 && !defined POSIX
function int fchdir (int)
#endif
#if !defined XPG4 && !defined XPG42
function int fdatasync (int)
#endif
# if defined XOPEN2K8 || defined POSIX2008
function int fexecve (int, char *const[], char *const[])
# endif
function pid_t fork (void)
function {long int} fpathconf (int, int)
function int fsync (int)
#ifndef XPG4
function int ftruncate (int, off_t)
#endif
function {char*} getcwd (char*, size_t)
#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function int getdtablesize (void)
#endif
function gid_t getegid (void)
function uid_t geteuid (void)
function gid_t getgid (void)
function int getgroups (int, gid_t[])
#if !defined XPG4 && !defined POSIX && !defined POSIX2008
function long gethostid (void)
#endif
#if !defined POSIX && !defined XPG4
function int gethostname (char*, size_t)
#endif
function {char*} getlogin (void)
#if !defined XPG4 && !defined XPG42
function int getlogin_r (char*, size_t)
#endif
function int getopt (int, char*const[], const char*)
#if defined XPG42 || defined UNIX98
function int getpagesize (void)
#endif
#if defined XPG4 || defined XPG42 || defined UNIX98
function {char*} getpass (const char*)
#endif
#if !defined XPG4 && !defined POSIX
function pid_t getpgid (pid_t)
#endif
function pid_t getpgrp (void)
function pid_t getpid (void)
function pid_t getppid (void)
#if !defined XPG4 && !defined POSIX
function pid_t getsid (pid_t)
#endif
function uid_t getuid (void)
#if defined XPG42 || defined UNIX98 || defined XOPEN2K
function {char*} getwd (char*)
#endif
function int isatty (int)
#if !defined XPG4 && !defined POSIX
function int lchown (const char*, uid_t, gid_t)
#endif
function int link (const char*, const char*)
# if defined XOPEN2K8 || defined POSIX2008
function int linkat (int, const char*, int, const char*, int)
# endif
# if !defined XPG4 && !defined POSIX && !defined POSIX2008
function int lockf (int, int, off_t)
# endif
function off_t lseek (int, off_t, int)
# if !defined POSIX && !defined POSIX2008
function int nice (int)
# endif
function {long int} pathconf (const char*, int)
function int pause (void)
function int pipe (int[2])
#if !defined POSIX && !defined XPG4 && !defined XPG42
function ssize_t pread (int, void*, size_t, off_t)
#endif
#if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008 && !defined XPG4 && !defined XPG42
function int pthread_atfork (void(*)(void), void(*)(void), void(*)(void))
#endif
#if !defined POSIX && !defined XPG4 && !defined XPG42
function ssize_t pwrite (int, const void*, size_t, off_t)
#endif
function ssize_t read (int, void*, size_t)
#if !defined XPG4 && !defined POSIX
function ssize_t readlink (const char*, char*, size_t)
#endif
# if defined XOPEN2K8 || defined POSIX2008
function ssize_t readlinkat (int, const char*, char*, size_t)
# endif
function int rmdir (const char*)
#if !defined XOPEN2K && !defined XOPEN2K8 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function {void*} sbrk (intptr_t)
#endif
#if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
function int setegid (gid_t)
function int seteuid (uid_t)
#endif
function int setgid (gid_t)
function int setpgid (pid_t, pid_t)
# if !defined XPG4 && !defined POSIX && !defined POSIX2008
function pid_t setpgrp (void)
function int setregid (gid_t, gid_t)
function int setreuid (uid_t, uid_t)
# endif
function pid_t setsid (void)
function int setuid (uid_t)
function {unsigned int} sleep (unsigned int)
# if !defined POSIX && !defined POSIX2008
function void swab (const void*, void*, ssize_t)
# endif
#if !defined XPG4 && !defined POSIX
function int symlink (const char*, const char*)
# endif
# if defined XOPEN2K8 || defined POSIX2008
function int symlinkat (const char*, int, const char*)
# endif
# if !defined XPG4 && !defined POSIX && !defined POSIX2008
function void sync (void)
# endif
function {long int} sysconf (int)
function pid_t tcgetpgrp (int)
function int tcsetpgrp (int, pid_t)
#if !defined XPG4 && !defined POSIX
function int truncate (const char*, off_t)
#endif
function {char*} ttyname (int)
function int ttyname_r (int, char*, size_t)
#if defined XPG42 || defined UNIX98 || defined XOPEN2K
function useconds_t ualarm (useconds_t, useconds_t)
#endif
function int unlink (const char*)
# if defined XOPEN2K8 || defined POSIX2008
function int unlinkat (int, const char*, int)
# endif
#if defined XPG42 || defined UNIX98 || defined XOPEN2K
function int usleep (useconds_t)
function pid_t vfork (void)
#endif
function ssize_t write (int, const void*, size_t)
variable {char*} optarg
variable int optind
variable int opterr
variable int optopt
allow *_t
#endif