Home | History | Annotate | Download | only in rpc
      1 /*
      2  * Generic DES driver interface
      3  * Keep this file hardware independent!
      4  * Copyright (c) 2010, Oracle America, Inc.
      5  *
      6  * Redistribution and use in source and binary forms, with or without
      7  * modification, are permitted provided that the following conditions are
      8  * met:
      9  *
     10  *     * Redistributions of source code must retain the above copyright
     11  *       notice, this list of conditions and the following disclaimer.
     12  *     * Redistributions in binary form must reproduce the above
     13  *       copyright notice, this list of conditions and the following
     14  *       disclaimer in the documentation and/or other materials
     15  *       provided with the distribution.
     16  *     * Neither the name of the "Oracle America, Inc." nor the names of its
     17  *       contributors may be used to endorse or promote products derived
     18  *       from this software without specific prior written permission.
     19  *
     20  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     21  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     22  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     23  *   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     24  *   COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
     25  *   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     26  *   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
     27  *   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     28  *   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     29  *   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     30  *   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     31  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     32  */
     33 
     34 #ifndef _DES_H
     35 #define _DES_H
     36 
     37 #include <sys/types.h>
     38 
     39 #define DES_MAXLEN	65536	/* maximum # of bytes to encrypt  */
     40 #define DES_QUICKLEN	16	/* maximum # of bytes to encrypt quickly */
     41 
     42 enum desdir
     43   {
     44     ENCRYPT, DECRYPT
     45   };
     46 enum desmode
     47   {
     48     CBC, ECB
     49   };
     50 
     51 /*
     52  * parameters to ioctl call
     53  */
     54 struct desparams
     55   {
     56     u_char des_key[8];		/* key (with low bit parity) */
     57     enum desdir des_dir;	/* direction */
     58     enum desmode des_mode;	/* mode */
     59     u_char des_ivec[8];		/* input vector */
     60     unsigned des_len;		/* number of bytes to crypt */
     61     union
     62       {
     63 	u_char UDES_data[DES_QUICKLEN];
     64 	u_char *UDES_buf;
     65       }
     66     UDES;
     67 #define des_data UDES.UDES_data	/* direct data here if quick */
     68 #define des_buf	UDES.UDES_buf	/* otherwise, pointer to data */
     69   };
     70 
     71 #endif
     72