FreeBSD Manual Pages
ENCRYPT(3) Library Functions Manual ENCRYPT(3) NAME encrypt, decrypt, netcrypt - DES encryption SYNOPSIS #include <u.h> #include <libc.h> int encrypt(void *key, void *data, int len) int decrypt(void *key, void *data, int len) int netcrypt(void *key, void *data) DESCRIPTION Encrypt and decrypt perform DES encryption and decryption. Key is an array of DESKEYLEN (defined as 7 in <auth.h>) bytes containing the en- cryption key. Data is an array of len bytes; it must be at least 8 bytes long. The bytes are encrypted or decrypted in place. The DES algorithm encrypts an individual 8-byte block of data. Encrypt uses the following method to encrypt data longer than 8 bytes. The first 8 bytes are encrypted as usual. The last byte of the encrypted result is prefixed to the next 7 unencrypted bytes to make the next 8 bytes to encrypt. This is repeated until fewer than 7 bytes remain un- encrypted. Any remaining unencrypted bytes are encrypted with enough of the preceding encrypted bytes to make a full 8-byte block. Decrypt uses the inverse algorithm. Netcrypt performs the same encryption as a SecureNet Key. Data points to an ASCII string of decimal digits with numeric value between 0 and 10000. These digits are copied into an 8-byte buffer with trailing bi- nary zero fill and encrypted as one DES block. The first four bytes are each formatted as two digit ASCII hexadecimal numbers, and the string is copied into data. SOURCE /src/lib9 DIAGNOSTICS These routines return 1 if the data was encrypted, and 0 if the encryp- tion fails. Encrypt and decrypt fail if the data passed is less than 8 bytes long. Netcrypt can fail if it is passed invalid data. BUGS The implementation is broken in a way that makes it unsuitable for any- thing but authentication. To avoid name conflicts with the underlying system, encrypt and decrypt are preprocessor macros defined as p9encrypt and p9decrypt; see ENCRYPT(3)
NAME | SYNOPSIS | DESCRIPTION | SOURCE | DIAGNOSTICS | BUGS
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=encrypt&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>