4.3BSD-UWisc/include/sys/des.h
/* @(#)des.h 1.1 85/05/30 SMI */
/*
* Copyright (c) 1984 by Sun Microsystems, Inc.
*/
/*
* Generic DES driver interface
* Keep this file hardware independent!
*/
struct deskey {
u_char des_key[8]; /* key (with low bit parity) */
enum { ENCRYPT, DECRYPT} des_dir; /* direction */
enum { ECB, CBC } des_mode; /* mode */
};
/*
* Initial vector for CBC mode
*/
struct desivec {
u_char des_ivec[8]; /* initial vector */
};
/*
* Data block descriptor
*/
struct desblock {
char *des_data; /* data address */
int des_len; /* data length (mult of 8) */
};
typedef char deschunk_t[8];
/*
* Setting modes also sets the initial vector to zero
*/
#define DESIOCSETKEY _IOW(d, 0, struct deskey) /* set des mode */
#define DESIOCGETKEY _IOR(d, 1, struct deskey) /* get des mode */
#define DESIOCSETIVEC _IOW(d, 2, struct desivec) /* set init vector */
#define DESIOCGETIVEC _IOR(d, 3, struct desivec) /* get init vector */
#define DESIOCBLOCK _IOW(d, 4, struct desblock) /* process block */
#define DESIOCCHUNK _IOWR(d, 5, deschunk_t) /* process 8 bytes */