diff options
author | Pauli <paul.dale@oracle.com> | 2020-01-16 13:50:03 +1000 |
---|---|---|
committer | Pauli <paul.dale@oracle.com> | 2020-01-25 09:30:59 +1000 |
commit | c6fec81b88131d08c1022504ccf6effa95497afb (patch) | |
tree | 8f9875a9f3a83fa13c6404faa8b7fa71f2c1f6f6 /include | |
parent | f6edde4f06d2cadaf0949399e5df0b6f6a5b3598 (diff) |
Deprecate the low level DES functions.
Use of the low level DES functions has been informally discouraged for a
long time. We now formally deprecate them.
Applications should instead use the EVP APIs, e.g. EVP_EncryptInit_ex,
EVP_EncryptUpdate, EVP_EncryptFinal_ex, and the equivalently named decrypt
functions.
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/10858)
Diffstat (limited to 'include')
-rw-r--r-- | include/openssl/des.h | 205 |
1 files changed, 118 insertions, 87 deletions
diff --git a/include/openssl/des.h b/include/openssl/des.h index 1ca9436c7c..bd5d5b4431 100644 --- a/include/openssl/des.h +++ b/include/openssl/des.h @@ -24,12 +24,13 @@ extern "C" { # endif # include <openssl/e_os2.h> +# ifndef OPENSSL_NO_DEPRECATED_3_0 typedef unsigned int DES_LONG; -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif typedef unsigned char DES_cblock[8]; typedef /* const */ unsigned char const_DES_cblock[8]; @@ -48,50 +49,61 @@ typedef struct DES_ks { } ks[16]; } DES_key_schedule; -# define DES_KEY_SZ (sizeof(DES_cblock)) -# define DES_SCHEDULE_SZ (sizeof(DES_key_schedule)) +# define DES_KEY_SZ (sizeof(DES_cblock)) +# define DES_SCHEDULE_SZ (sizeof(DES_key_schedule)) -# define DES_ENCRYPT 1 -# define DES_DECRYPT 0 +# define DES_ENCRYPT 1 +# define DES_DECRYPT 0 -# define DES_CBC_MODE 0 -# define DES_PCBC_MODE 1 +# define DES_CBC_MODE 0 +# define DES_PCBC_MODE 1 -# define DES_ecb2_encrypt(i,o,k1,k2,e) \ +# define DES_ecb2_encrypt(i,o,k1,k2,e) \ DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) -# define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ +# define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) -# define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ +# define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) -# define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ +# define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) -const char *DES_options(void); -void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, int enc); -DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output, - long length, DES_key_schedule *schedule, - const_DES_cblock *ivec); +# define DES_fixup_key_parity DES_set_odd_parity +# endif + +DEPRECATEDIN_3_0(const char *DES_options(void)) +DEPRECATEDIN_3_0(void DES_ecb3_encrypt(const_DES_cblock *input, + DES_cblock *output, + DES_key_schedule *ks1, + DES_key_schedule *ks2, + DES_key_schedule *ks3, int enc)) +DEPRECATEDIN_3_0(DES_LONG DES_cbc_cksum(const unsigned char *input, + DES_cblock *output, long length, + DES_key_schedule *schedule, + const_DES_cblock *ivec)) /* DES_cbc_encrypt does not update the IV! Use DES_ncbc_encrypt instead. */ -void DES_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, const_DES_cblock *inw, - const_DES_cblock *outw, int enc); -void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks, int enc); +DEPRECATEDIN_3_0(void DES_cbc_encrypt(const unsigned char *input, + unsigned char *output, long length, + DES_key_schedule *schedule, + DES_cblock *ivec, int enc)) +DEPRECATEDIN_3_0(void DES_ncbc_encrypt(const unsigned char *input, + unsigned char *output, long length, + DES_key_schedule *schedule, + DES_cblock *ivec, int enc)) +DEPRECATEDIN_3_0(void DES_xcbc_encrypt(const unsigned char *input, + unsigned char *output, long length, + DES_key_schedule *schedule, + DES_cblock *ivec, const_DES_cblock *inw, + const_DES_cblock *outw, int enc)) +DEPRECATEDIN_3_0(void DES_cfb_encrypt(const unsigned char *in, + unsigned char *out, int numbits, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int enc)) +DEPRECATEDIN_3_0(void DES_ecb_encrypt(const_DES_cblock *input, + DES_cblock *output, DES_key_schedule *ks, + int enc)) /* * This is the DES encryption function that gets called by just about every @@ -103,7 +115,8 @@ void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output, * long's and ks is the DES_key_schedule to use. enc, is non zero specifies * encryption, zero if decryption. */ -void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc); +DEPRECATEDIN_3_0(void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, + int enc)) /* * This functions is the same as DES_encrypt1() except that the DES initial @@ -113,60 +126,78 @@ void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc); * DES_encrypt2() DES_encrypt2() FP() is the same as DES_encrypt1() * DES_encrypt1() DES_encrypt1() except faster :-). */ -void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc); - -void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3); -void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3); -void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, DES_cblock *ivec, int enc); -void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num, int enc); -void DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out, - int numbits, long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int enc); -void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num); -char *DES_fcrypt(const char *buf, const char *salt, char *ret); -char *DES_crypt(const char *buf, const char *salt); -void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, - DES_cblock *ivec); -void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[], - long length, int out_count, DES_cblock *seed); -int DES_random_key(DES_cblock *ret); -void DES_set_odd_parity(DES_cblock *key); -int DES_check_key_parity(const_DES_cblock *key); -int DES_is_weak_key(const_DES_cblock *key); +DEPRECATEDIN_3_0(void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, + int enc)) + +DEPRECATEDIN_3_0(void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3)) +DEPRECATEDIN_3_0(void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3)) +DEPRECATEDIN_3_0(void DES_ede3_cbc_encrypt(const unsigned char *input, + unsigned char *output, long length, + DES_key_schedule *ks1, + DES_key_schedule *ks2, + DES_key_schedule *ks3, + DES_cblock *ivec, int enc)) +DEPRECATEDIN_3_0(void DES_ede3_cfb64_encrypt(const unsigned char *in, + unsigned char *out, long length, + DES_key_schedule *ks1, + DES_key_schedule *ks2, + DES_key_schedule *ks3, + DES_cblock *ivec, int *num, + int enc)) +DEPRECATEDIN_3_0(void DES_ede3_cfb_encrypt(const unsigned char *in, + unsigned char *out, int numbits, + long length, DES_key_schedule *ks1, + DES_key_schedule *ks2, + DES_key_schedule *ks3, + DES_cblock *ivec, int enc)) +DEPRECATEDIN_3_0(void DES_ede3_ofb64_encrypt(const unsigned char *in, + unsigned char *out, long length, + DES_key_schedule *ks1, + DES_key_schedule *ks2, + DES_key_schedule *ks3, + DES_cblock *ivec, int *num)) +DEPRECATEDIN_3_0(char *DES_fcrypt(const char *buf, const char *salt, char *ret)) +DEPRECATEDIN_3_0(char *DES_crypt(const char *buf, const char *salt)) +DEPRECATEDIN_3_0(void DES_ofb_encrypt(const unsigned char *in, + unsigned char *out, int numbits, + long length, DES_key_schedule *schedule, + DES_cblock *ivec)) +DEPRECATEDIN_3_0(void DES_pcbc_encrypt(const unsigned char *input, + unsigned char *output, long length, + DES_key_schedule *schedule, + DES_cblock *ivec, int enc)) +DEPRECATEDIN_3_0(DES_LONG DES_quad_cksum(const unsigned char *input, + DES_cblock output[], long length, + int out_count, DES_cblock *seed)) +DEPRECATEDIN_3_0(int DES_random_key(DES_cblock *ret)) +DEPRECATEDIN_3_0(void DES_set_odd_parity(DES_cblock *key)) +DEPRECATEDIN_3_0(int DES_check_key_parity(const_DES_cblock *key)) +DEPRECATEDIN_3_0(int DES_is_weak_key(const_DES_cblock *key)) /* * DES_set_key (= set_key = DES_key_sched = key_sched) calls * DES_set_key_checked */ -int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule); -int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule); -int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule); -void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule); -void DES_string_to_key(const char *str, DES_cblock *key); -void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2); -void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num, int enc); -void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num); - -# define DES_fixup_key_parity DES_set_odd_parity +DEPRECATEDIN_3_0(int DES_set_key(const_DES_cblock *key, + DES_key_schedule *schedule)) +DEPRECATEDIN_3_0(int DES_key_sched(const_DES_cblock *key, + DES_key_schedule *schedule)) +DEPRECATEDIN_3_0(int DES_set_key_checked(const_DES_cblock *key, + DES_key_schedule *schedule)) +DEPRECATEDIN_3_0(void DES_set_key_unchecked(const_DES_cblock *key, + DES_key_schedule *schedule)) +DEPRECATEDIN_3_0(void DES_string_to_key(const char *str, DES_cblock *key)) +DEPRECATEDIN_3_0(void DES_string_to_2keys(const char *str, DES_cblock *key1, + DES_cblock *key2)) +DEPRECATEDIN_3_0(void DES_cfb64_encrypt(const unsigned char *in, + unsigned char *out, long length, + DES_key_schedule *schedule, + DES_cblock *ivec, int *num, int enc)) +DEPRECATEDIN_3_0(void DES_ofb64_encrypt(const unsigned char *in, + unsigned char *out, long length, + DES_key_schedule *schedule, + DES_cblock *ivec, int *num)) # ifdef __cplusplus } |