The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

#### 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 reentrant. A function that is not required to be reentrant is not required to 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

> None.

#### SEE ALSO

> crypt(), encrypt(), the Base Definitions volume of IEEE Std 1003.1-2001, <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.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]