rpc_des.h 2.1 KB

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