1des(3)                              OpenSSL                             des(3)
2
3
4

NAME

6       DES_random_key, DES_set_key, DES_key_sched, DES_set_key_checked,
7       DES_set_key_unchecked, DES_set_odd_parity, DES_is_weak_key,
8       DES_ecb_encrypt, DES_ecb2_encrypt, DES_ecb3_encrypt, DES_ncbc_encrypt,
9       DES_cfb_encrypt, DES_ofb_encrypt, DES_pcbc_encrypt, DES_cfb64_encrypt,
10       DES_ofb64_encrypt, DES_xcbc_encrypt, DES_ede2_cbc_encrypt,
11       DES_ede2_cfb64_encrypt, DES_ede2_ofb64_encrypt, DES_ede3_cbc_encrypt,
12       DES_ede3_cbcm_encrypt, DES_ede3_cfb64_encrypt, DES_ede3_ofb64_encrypt,
13       DES_cbc_cksum, DES_quad_cksum, DES_string_to_key, DES_string_to_2keys,
14       DES_fcrypt, DES_crypt, DES_enc_read, DES_enc_write - DES encryption
15

SYNOPSIS

17        #include <openssl/des.h>
18
19        void DES_random_key(DES_cblock *ret);
20
21        int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule);
22        int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule);
23        int DES_set_key_checked(const_DES_cblock *key,
24               DES_key_schedule *schedule);
25        void DES_set_key_unchecked(const_DES_cblock *key,
26               DES_key_schedule *schedule);
27
28        void DES_set_odd_parity(DES_cblock *key);
29        int DES_is_weak_key(const_DES_cblock *key);
30
31        void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output,
32               DES_key_schedule *ks, int enc);
33        void DES_ecb2_encrypt(const_DES_cblock *input, DES_cblock *output,
34               DES_key_schedule *ks1, DES_key_schedule *ks2, int enc);
35        void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output,
36               DES_key_schedule *ks1, DES_key_schedule *ks2,
37               DES_key_schedule *ks3, int enc);
38
39        void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output,
40               long length, DES_key_schedule *schedule, DES_cblock *ivec,
41               int enc);
42        void DES_cfb_encrypt(const unsigned char *in, unsigned char *out,
43               int numbits, long length, DES_key_schedule *schedule,
44               DES_cblock *ivec, int enc);
45        void DES_ofb_encrypt(const unsigned char *in, unsigned char *out,
46               int numbits, long length, DES_key_schedule *schedule,
47               DES_cblock *ivec);
48        void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output,
49               long length, DES_key_schedule *schedule, DES_cblock *ivec,
50               int enc);
51        void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out,
52               long length, DES_key_schedule *schedule, DES_cblock *ivec,
53               int *num, int enc);
54        void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out,
55               long length, DES_key_schedule *schedule, DES_cblock *ivec,
56               int *num);
57
58        void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output,
59               long length, DES_key_schedule *schedule, DES_cblock *ivec,
60               const_DES_cblock *inw, const_DES_cblock *outw, int enc);
61
62        void DES_ede2_cbc_encrypt(const unsigned char *input,
63               unsigned char *output, long length, DES_key_schedule *ks1,
64               DES_key_schedule *ks2, DES_cblock *ivec, int enc);
65        void DES_ede2_cfb64_encrypt(const unsigned char *in,
66               unsigned char *out, long length, DES_key_schedule *ks1,
67               DES_key_schedule *ks2, DES_cblock *ivec, int *num, int enc);
68        void DES_ede2_ofb64_encrypt(const unsigned char *in,
69               unsigned char *out, long length, DES_key_schedule *ks1,
70               DES_key_schedule *ks2, DES_cblock *ivec, int *num);
71
72        void DES_ede3_cbc_encrypt(const unsigned char *input,
73               unsigned char *output, long length, DES_key_schedule *ks1,
74               DES_key_schedule *ks2, DES_key_schedule *ks3, DES_cblock *ivec,
75               int enc);
76        void DES_ede3_cbcm_encrypt(const unsigned char *in, unsigned char *out,
77               long length, DES_key_schedule *ks1, DES_key_schedule *ks2,
78               DES_key_schedule *ks3, DES_cblock *ivec1, DES_cblock *ivec2,
79               int enc);
80        void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out,
81               long length, DES_key_schedule *ks1, DES_key_schedule *ks2,
82               DES_key_schedule *ks3, DES_cblock *ivec, int *num, int enc);
83        void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out,
84               long length, DES_key_schedule *ks1,
85               DES_key_schedule *ks2, DES_key_schedule *ks3,
86               DES_cblock *ivec, int *num);
87
88        DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output,
89               long length, DES_key_schedule *schedule,
90               const_DES_cblock *ivec);
91        DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[],
92               long length, int out_count, DES_cblock *seed);
93        void DES_string_to_key(const char *str, DES_cblock *key);
94        void DES_string_to_2keys(const char *str, DES_cblock *key1,
95               DES_cblock *key2);
96
97        char *DES_fcrypt(const char *buf, const char *salt, char *ret);
98        char *DES_crypt(const char *buf, const char *salt);
99
100        int DES_enc_read(int fd, void *buf, int len, DES_key_schedule *sched,
101               DES_cblock *iv);
102        int DES_enc_write(int fd, const void *buf, int len,
103               DES_key_schedule *sched, DES_cblock *iv);
104

DESCRIPTION

106       This library contains a fast implementation of the DES encryption
107       algorithm.
108
109       There are two phases to the use of DES encryption.  The first is the
110       generation of a DES_key_schedule from a key, the second is the actual
111       encryption.  A DES key is of type DES_cblock. This type is consists of
112       8 bytes with odd parity.  The least significant bit in each byte is the
113       parity bit.  The key schedule is an expanded form of the key; it is
114       used to speed the encryption process.
115
116       DES_random_key() generates a random key.  The PRNG must be see