Update.
[platform/upstream/glibc.git] / sunrpc / rpc / rpc_des.h
1 /*  @(#)des.h   2.2 88/08/10 4.0 RPCSRC; from 2.7 88/02/08 SMI  */
2 /*
3  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
4  * unrestricted use provided that this legend is included on all tape
5  * media and as a part of the software program in whole or part.  Users
6  * may copy or modify Sun RPC without charge, but are not authorized
7  * to license or distribute it to anyone else except as part of a product or
8  * program developed by the user.
9  * 
10  * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
11  * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
12  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
13  * 
14  * Sun RPC is provided with no support and without any obligation on the
15  * part of Sun Microsystems, Inc. to assist in its use, correction,
16  * modification or enhancement.
17  * 
18  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
19  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
20  * OR ANY PART THEREOF.
21  * 
22  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
23  * or profits or other special, indirect and consequential damages, even if
24  * Sun has been advised of the possibility of such damages.
25  * 
26  * Sun Microsystems, Inc.
27  * 2550 Garcia Avenue
28  * Mountain View, California  94043
29  */
30 /*
31  * Generic DES driver interface
32  * Keep this file hardware independent!
33  * Copyright (c) 1986 by Sun Microsystems, Inc.
34  */
35
36 #ifndef _DES_H
37 #define _DES_H
38
39 #include <sys/types.h>
40
41 #define DES_MAXLEN      65536   /* maximum # of bytes to encrypt  */
42 #define DES_QUICKLEN    16      /* maximum # of bytes to encrypt quickly */
43
44 enum desdir
45   {
46     ENCRYPT, DECRYPT
47   };
48 enum desmode
49   {
50     CBC, ECB
51   };
52
53 /*
54  * parameters to ioctl call
55  */
56 struct desparams
57   {
58     u_char des_key[8];          /* key (with low bit parity) */
59     enum desdir des_dir;        /* direction */
60     enum desmode des_mode;      /* mode */
61     u_char des_ivec[8];         /* input vector */
62     unsigned des_len;           /* number of bytes to crypt */
63     union
64       {
65         u_char UDES_data[DES_QUICKLEN];
66         u_char *UDES_buf;
67       }
68     UDES;
69 #define des_data UDES.UDES_data /* direct data here if quick */
70 #define des_buf UDES.UDES_buf   /* otherwise, pointer to data */
71   };
72
73 /*
74  * Encrypt an arbitrary sized buffer
75  */
76 #define DESIOCBLOCK     _IOWR(d, 6, struct desparams)
77
78 /* 
79  * Encrypt of small amount of data, quickly
80  */
81 #define DESIOCQUICK     _IOWR(d, 7, struct desparams)
82
83 #endif