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
       /usr/local/plan9/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  in-
       tro(3).

								    ENCRYPT(3)

NAME | SYNOPSIS | DESCRIPTION | SOURCE | DIAGNOSTICS | BUGS

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

home | help