(root)/
glibc-2.38/
sunrpc/
rpc/
des_crypt.h
       1  /*
       2   * @(#)des_crypt.h	2.1 88/08/11 4.0 RPCSRC
       3   *
       4   * des_crypt.h, des library routine interface
       5   * Copyright (c) 2010, Oracle America, Inc.
       6   *
       7   * Redistribution and use in source and binary forms, with or without
       8   * modification, are permitted provided that the following conditions are
       9   * met:
      10   *
      11   *     * Redistributions of source code must retain the above copyright
      12   *       notice, this list of conditions and the following disclaimer.
      13   *     * Redistributions in binary form must reproduce the above
      14   *       copyright notice, this list of conditions and the following
      15   *       disclaimer in the documentation and/or other materials
      16   *       provided with the distribution.
      17   *     * Neither the name of the "Oracle America, Inc." nor the names of its
      18   *       contributors may be used to endorse or promote products derived
      19   *       from this software without specific prior written permission.
      20   *
      21   *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
      22   *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
      23   *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
      24   *   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
      25   *   COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
      26   *   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
      27   *   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
      28   *   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
      29   *   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
      30   *   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
      31   *   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
      32   *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      33   */
      34  
      35  #ifndef __DES_CRYPT_H__
      36  #define __DES_CRYPT_H__ 1
      37  
      38  #include <features.h>
      39  
      40  __BEGIN_DECLS
      41  
      42  #define DES_MAXDATA 8192	/* max bytes encrypted in one call */
      43  #define DES_DIRMASK (1 << 0)
      44  #define DES_ENCRYPT (0*DES_DIRMASK)	/* Encrypt */
      45  #define DES_DECRYPT (1*DES_DIRMASK)	/* Decrypt */
      46  
      47  
      48  #define DES_DEVMASK (1 << 1)
      49  #define	DES_HW (0*DES_DEVMASK)	/* Use hardware device */
      50  #define DES_SW (1*DES_DEVMASK)	/* Use software device */
      51  
      52  
      53  #define DESERR_NONE 0	/* succeeded */
      54  #define DESERR_NOHWDEVICE 1	/* succeeded, but hw device not available */
      55  #define DESERR_HWERROR 2	/* failed, hardware/driver error */
      56  #define DESERR_BADPARAM 3	/* failed, bad parameter to call */
      57  
      58  #define DES_FAILED(err) \
      59  	((err) > DESERR_NOHWDEVICE)
      60  
      61  /*
      62   * cbc_crypt()
      63   * ecb_crypt()
      64   *
      65   * Encrypt (or decrypt) len bytes of a buffer buf.
      66   * The length must be a multiple of eight.
      67   * The key should have odd parity in the low bit of each byte.
      68   * ivec is the input vector, and is updated to the new one (cbc only).
      69   * The mode is created by oring together the appropriate parameters.
      70   * DESERR_NOHWDEVICE is returned if DES_HW was specified but
      71   * there was no hardware to do it on (the data will still be
      72   * encrypted though, in software).
      73   */
      74  
      75  
      76  /*
      77   * Cipher Block Chaining mode
      78   */
      79  extern int cbc_crypt (char *__key, char *__buf, unsigned __len,
      80  		      unsigned __mode, char *__ivec) __THROW;
      81  
      82  /*
      83   * Electronic Code Book mode
      84   */
      85  extern int ecb_crypt (char *__key, char *__buf, unsigned __len,
      86  		      unsigned __mode) __THROW;
      87  
      88  /*
      89   * Set des parity for a key.
      90   * DES parity is odd and in the low bit of each byte
      91   */
      92  extern void des_setparity (char *__key) __THROW;
      93  
      94  __END_DECLS
      95  
      96  #endif