Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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
       intro((3)).

								    ENCRYPT(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=encrypt&sektion=3&manpath=FreeBSD+Ports+15.0.quarterly>

home | help