Encrypts or decrypts data.
Standard C Library (libc.a)
The crypt and encrypt subroutines encrypt or decrypt data. The crypt subroutine performs a one-way encryption of a fixed data array with the supplied PW parameter. The subroutine uses the Salt parameter to vary the encryption algorithm.
The encrypt subroutine encrypts or decrypts the data supplied in the Block parameter using the key supplied by an earlier call to the setkey subroutine. The data in the Block parameter on input must be an array of 64 characters. Each character must be an char 0 or char 1.
If you need to statically bind functions from libc.a for crypt do the following:
#!
___setkey
___encrypt
___crypt
-bI:YourFileName
where YourFileName is
the name of the file you created in step 1. It should look like the
following: LDFLAGS=bnoautoimp -bI:/lib/syscalls.exp -bI:YourFileName -lc
These subroutines are provided for compatibility with UNIX system implementations.
Item | Description |
---|---|
Block | Identifies a 64-character array containing the values (char) 0 and (char) 1. Upon return, this buffer contains the encrypted or decrypted data. |
EdFlag | Determines whether the subroutine encrypts or decrypts the data. If this parameter is 0, the data is encrypted. If this is a nonzero value, the data is decrypted. If the /usr/lib/libdes.a file does not exist and the EdFlag parameter is set to nonzero, the encrypt subroutine returns the ENOSYS error code. |
Key | Specifies an 64-element array of 0's and 1's cast as a const char data type. The Key parameter is used to encrypt or decrypt data. |
PW | Specifies the string to be encrypted. |
Salt | Determines the algorithm that the PW parameter
applies to generate the returned output string. If the left brace
( { ) is not the first character of the value that the Salt parameter
specifies, then the subroutine uses the Data Encryption Standard (DES)
algorithm. For the DES algorithm, use the Salt parameter
to vary the hashing algorithm in the one of 4096 ways. The Salt parameter
must be a 2-character string that is from the following character
types:
If the left brace ( { ) is the first character
of the value that the Salt parameter specifies,
then the Loadable Password Algorithm (LPA) uses the name that is specified
within the braces ( {} ). A set of salt characters follows the LPA
name and ends with a dollar sign ($). The length of the salt character
depends on the specified LPA. The following example shows a possible
value for the SMD5 LPA that the Salt parameter
specifies:
|
The crypt subroutine returns a pointer to the encrypted password. The static area this pointer indicates may be overwritten by subsequent calls.
If the crypt subroutine is unsuccessful, a null pointer is returned and the errno global variable is set to indicate the error.
The encrypt subroutine returns the following:
Item | Description |
---|---|
ENOSYS | The encrypt subroutine was called with the EdFlag parameter which was set to a nonzero value. Also, the /usr/lib/libdes.a file does not exist. |