File indexing completed on 2025-01-18 10:05:42
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef OPENSSL_DES_H
0011 # define OPENSSL_DES_H
0012 # pragma once
0013
0014 # include <openssl/macros.h>
0015 # ifndef OPENSSL_NO_DEPRECATED_3_0
0016 # define HEADER_DES_H
0017 # endif
0018
0019 # include <openssl/opensslconf.h>
0020
0021 # ifndef OPENSSL_NO_DES
0022 # ifdef __cplusplus
0023 extern "C" {
0024 # endif
0025 # include <openssl/e_os2.h>
0026
0027 # ifndef OPENSSL_NO_DEPRECATED_3_0
0028 typedef unsigned int DES_LONG;
0029
0030 # ifdef OPENSSL_BUILD_SHLIBCRYPTO
0031 # undef OPENSSL_EXTERN
0032 # define OPENSSL_EXTERN OPENSSL_EXPORT
0033 # endif
0034
0035 typedef unsigned char DES_cblock[8];
0036 typedef unsigned char const_DES_cblock[8];
0037
0038
0039
0040
0041
0042 typedef struct DES_ks {
0043 union {
0044 DES_cblock cblock;
0045
0046
0047
0048 DES_LONG deslong[2];
0049 } ks[16];
0050 } DES_key_schedule;
0051
0052 # define DES_KEY_SZ (sizeof(DES_cblock))
0053 # define DES_SCHEDULE_SZ (sizeof(DES_key_schedule))
0054
0055 # define DES_ENCRYPT 1
0056 # define DES_DECRYPT 0
0057
0058 # define DES_CBC_MODE 0
0059 # define DES_PCBC_MODE 1
0060
0061 # define DES_ecb2_encrypt(i,o,k1,k2,e) \
0062 DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e))
0063
0064 # define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \
0065 DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e))
0066
0067 # define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \
0068 DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e))
0069
0070 # define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \
0071 DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n))
0072
0073 # define DES_fixup_key_parity DES_set_odd_parity
0074 # endif
0075 # ifndef OPENSSL_NO_DEPRECATED_3_0
0076 OSSL_DEPRECATEDIN_3_0 const char *DES_options(void);
0077 OSSL_DEPRECATEDIN_3_0
0078 void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output,
0079 DES_key_schedule *ks1, DES_key_schedule *ks2,
0080 DES_key_schedule *ks3, int enc);
0081 OSSL_DEPRECATEDIN_3_0
0082 DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output,
0083 long length, DES_key_schedule *schedule,
0084 const_DES_cblock *ivec);
0085 # endif
0086
0087 # ifndef OPENSSL_NO_DEPRECATED_3_0
0088 OSSL_DEPRECATEDIN_3_0
0089 void DES_cbc_encrypt(const unsigned char *input, unsigned char *output,
0090 long length, DES_key_schedule *schedule, DES_cblock *ivec,
0091 int enc);
0092 OSSL_DEPRECATEDIN_3_0
0093 void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output,
0094 long length, DES_key_schedule *schedule, DES_cblock *ivec,
0095 int enc);
0096 OSSL_DEPRECATEDIN_3_0
0097 void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output,
0098 long length, DES_key_schedule *schedule, DES_cblock *ivec,
0099 const_DES_cblock *inw, const_DES_cblock *outw, int enc);
0100 OSSL_DEPRECATEDIN_3_0
0101 void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
0102 long length, DES_key_schedule *schedule, DES_cblock *ivec,
0103 int enc);
0104 OSSL_DEPRECATEDIN_3_0
0105 void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output,
0106 DES_key_schedule *ks, int enc);
0107 # endif
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119 # ifndef OPENSSL_NO_DEPRECATED_3_0
0120 OSSL_DEPRECATEDIN_3_0
0121 void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc);
0122 # endif
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132 # ifndef OPENSSL_NO_DEPRECATED_3_0
0133 OSSL_DEPRECATEDIN_3_0
0134 void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc);
0135 OSSL_DEPRECATEDIN_3_0
0136 void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, DES_key_schedule *ks2,
0137 DES_key_schedule *ks3);
0138 OSSL_DEPRECATEDIN_3_0
0139 void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, DES_key_schedule *ks2,
0140 DES_key_schedule *ks3);
0141 OSSL_DEPRECATEDIN_3_0
0142 void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output,
0143 long length, DES_key_schedule *ks1,
0144 DES_key_schedule *ks2, DES_key_schedule *ks3,
0145 DES_cblock *ivec, int enc);
0146 OSSL_DEPRECATEDIN_3_0
0147 void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out,
0148 long length, DES_key_schedule *ks1,
0149 DES_key_schedule *ks2, DES_key_schedule *ks3,
0150 DES_cblock *ivec, int *num, int enc);
0151 OSSL_DEPRECATEDIN_3_0
0152 void DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out,
0153 int numbits, long length, DES_key_schedule *ks1,
0154 DES_key_schedule *ks2, DES_key_schedule *ks3,
0155 DES_cblock *ivec, int enc);
0156 OSSL_DEPRECATEDIN_3_0
0157 void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out,
0158 long length, DES_key_schedule *ks1,
0159 DES_key_schedule *ks2, DES_key_schedule *ks3,
0160 DES_cblock *ivec, int *num);
0161 OSSL_DEPRECATEDIN_3_0
0162 char *DES_fcrypt(const char *buf, const char *salt, char *ret);
0163 OSSL_DEPRECATEDIN_3_0
0164 char *DES_crypt(const char *buf, const char *salt);
0165 OSSL_DEPRECATEDIN_3_0
0166 void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
0167 long length, DES_key_schedule *schedule, DES_cblock *ivec);
0168 OSSL_DEPRECATEDIN_3_0
0169 void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output,
0170 long length, DES_key_schedule *schedule,
0171 DES_cblock *ivec, int enc);
0172 OSSL_DEPRECATEDIN_3_0
0173 DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[],
0174 long length, int out_count, DES_cblock *seed);
0175 OSSL_DEPRECATEDIN_3_0 int DES_random_key(DES_cblock *ret);
0176 OSSL_DEPRECATEDIN_3_0 void DES_set_odd_parity(DES_cblock *key);
0177 OSSL_DEPRECATEDIN_3_0 int DES_check_key_parity(const_DES_cblock *key);
0178 OSSL_DEPRECATEDIN_3_0 int DES_is_weak_key(const_DES_cblock *key);
0179 # endif
0180
0181
0182
0183
0184 # ifndef OPENSSL_NO_DEPRECATED_3_0
0185 OSSL_DEPRECATEDIN_3_0
0186 int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule);
0187 OSSL_DEPRECATEDIN_3_0
0188 int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule);
0189 OSSL_DEPRECATEDIN_3_0
0190 int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule);
0191 OSSL_DEPRECATEDIN_3_0
0192 void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule);
0193 OSSL_DEPRECATEDIN_3_0 void DES_string_to_key(const char *str, DES_cblock *key);
0194 OSSL_DEPRECATEDIN_3_0
0195 void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2);
0196 OSSL_DEPRECATEDIN_3_0
0197 void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out,
0198 long length, DES_key_schedule *schedule,
0199 DES_cblock *ivec, int *num, int enc);
0200 OSSL_DEPRECATEDIN_3_0
0201 void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out,
0202 long length, DES_key_schedule *schedule,
0203 DES_cblock *ivec, int *num);
0204 # endif
0205
0206 # ifdef __cplusplus
0207 }
0208 # endif
0209 # endif
0210
0211 #endif