Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Apropos / Subsearch:
optional field

DES_CRYPT(3)               Library Functions Manual               DES_CRYPT(3)

       des_crypt, ecb_crypt, cbc_crypt, des_setparity - fast DES encryption

       #include <&lt;des_crypt.h>&gt;

       int ecb_crypt(key, data, datalen, mode)
       char *key;
       char *data;
       unsigned datalen;
       unsigned mode;

       int cbc_crypt(key, data, datalen, mode, ivec)
       char *key;
       char *data;
       unsigned datalen;
       unsigned mode;
       char *ivec;

       void des_setparity(key)
       char *key;

       ecb_crypt()  and  cbc_crypt()  implement  the  NBS DES (Data Encryption
       Standard).  These routines are faster and  more  general  purpose  than
       crypt(3).   They  also are able to utilize DES hardware if it is avail-
       able.  ecb_crypt() encrypts in ECB (Electronic Code Book)  mode,  which
       encrypts  blocks  of  data  independently.  cbc_crypt() encrypts in CBC
       (Cipher Block Chaining) mode, which chains together successive  blocks.
       CBC  mode  protects  against insertions, deletions and substitutions of
       blocks. Also, regularities in the clear text will  not  appear  in  the
       cipher text.

       Here  is  how  to use these routines.  The first parameter, key, is the
       8-byte encryption key with parity.  To set the key's parity, which  for
       DES  is  in  the  low  bit of each byte, use des_setparity.  The second
       parameter, data, contains the data to be encrypted  or  decrypted.  The
       third parameter, datalen, is the length in bytes of data, which must be
       a multiple of 8. The  fourth  parameter,  mode,  is  formed  by  OR'ing
       together  some  things.   For  the  encryption direction 'or' in either
       DES_ENCRYPT or DES_DECRYPT.  For software versus  hardware  encryption,
       'or'  in either DES_HW or DES_SW.  If DES_HW is specified, and there is
       no hardware, then the encryption is performed in software and the  rou-
       tine  returns  DESERR_NOHWDEVICE.  For cbc_crypt, the parameter ivec is
       the 8-byte initialization vector for the chaining.  It  is  updated  to
       the next initialization vector upon return.

       des(1), crypt(3)

       DESERR_NONE         No error.
       DESERR_NOHWDEVICE   Encryption  succeeded, but done in software instead
                           of the requested hardware.
       DESERR_HWERR        An error occurred in the hardware or driver.
       DESERR_BADPARAM     Bad parameter to routine.

       Given a result status stat, the macro DES_FAILED(stat)  is  false  only
       for the first two statuses.

       These routines are not available for export outside the U.S.

                                6 October 1987                    DES_CRYPT(3)