Provided by: manpages-posix-dev_2017a-2_all bug

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.

NAME

       setkey — set encoding key (CRYPT)

SYNOPSIS

       #include <stdlib.h>

       void setkey(const char *key);

DESCRIPTION

       The setkey() function provides access to an implementation-defined encoding algorithm. The
       argument of setkey() is an array of  length  64  bytes  containing  only  the  bytes  with
       numerical  value of 0 and 1. If this string is divided into groups of 8, the low-order bit
       in each group is ignored; this gives a 56-bit key which is used by the algorithm. This  is
       the  key  that  shall  be  used  with  the  algorithm  to  encode a string block passed to
       encrypt().

       The setkey() function shall not change the setting of errno if successful. An  application
       wishing  to  check for error situations should set errno to 0 before calling setkey().  If
       errno is non-zero on return, an error has occurred.

       The setkey() function need not be thread-safe.

RETURN VALUE

       No values are returned.

ERRORS

       The setkey() function shall fail if:

       ENOSYS The functionality is not supported on this implementation.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       Decoding need not be implemented in  all  environments.  This  is  related  to  government
       restrictions  in some countries on encryption and decryption routines. Historical practice
       has been to ship a different version of the  encryption  library  without  the  decryption
       feature in the routines supplied. Thus the exported version of encrypt() does encoding but
       not decoding.

RATIONALE

       None.

FUTURE DIRECTIONS

       A future version of the standard  may  mark  this  interface  as  obsolete  or  remove  it
       altogether.

SEE ALSO

       crypt(), encrypt()

       The Base Definitions volume of POSIX.1‐2017, <stdlib.h>

COPYRIGHT

       Portions  of  this  text  are  reprinted  and  reproduced in electronic form from IEEE Std
       1003.1-2017, Standard for Information Technology -- Portable  Operating  System  Interface
       (POSIX),  The  Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 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 .

       Any  typographical  or  formatting errors that appear in this page are most likely to have
       been introduced during the conversion of the source files to man page  format.  To  report
       such errors, see https://www.kernel.org/doc/man-pages/reporting_bugs.html .