The Open Group Base Specifications Issue 7
IEEE Std 1003.1-2008, 2016 Edition
Copyright © 2001-2016 The IEEE and The Open Group

#### NAME

> setkey - set encoding key (CRYPT)

#### SYNOPSIS

> ``[XSI] #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

> XBD <stdlib.h>

#### CHANGE HISTORY

> First released in Issue 1. Derived from Issue 1 of the SVID.

#### Issue 5

> The DESCRIPTION is updated to indicate that errno is not changed if the function is successful.

#### Issue 7

> Austin Group Interpretation 1003.1-2001 #156 is applied.

> POSIX.1-2008, Technical Corrigendum 2, XSH/TC2-2008/0320 [899] is applied.

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2016 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]