components/openssl/common/patches/046-weak-ciphers.patch
changeset 6278 afa90e1c2fbb
parent 6277 073d7b623ddf
child 6279 b8986042dd84
equal deleted inserted replaced
6277:073d7b623ddf 6278:afa90e1c2fbb
     1 # Remove MD2, MD4: some functions need to be stubbed
       
     2 # Deprecate DES, RC2, RC4, and MD5
       
     3 # Patch developed in-house. Solaris-specific; not suitable for upstream.
       
     4 --- openssl-1.x/crypto/des/des.h	Thu Feb 25 07:42:06 2016
       
     5 +++ openssl-1.x/crypto/des/des.h.new	Thu Feb 25 08:37:40 2016
       
     6 @@ -132,24 +132,38 @@
       
     7  void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output,
       
     8                        DES_key_schedule *ks1, DES_key_schedule *ks2,
       
     9                        DES_key_schedule *ks3, int enc);
       
    10 +
       
    11 +#ifndef __has_attribute
       
    12 +# define __has_attribute(x) 0
       
    13 +#endif
       
    14 +
       
    15 +/* Mark DES functions deprecated */
       
    16 +#if __has_attribute(deprecated) \
       
    17 +    || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)) \
       
    18 +    || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5130))
       
    19 +# define DEPRECATED __attribute__((deprecated))
       
    20 +#else
       
    21 +# define DEPRECATED
       
    22 +#endif
       
    23 +
       
    24  DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output,
       
    25                         long length, DES_key_schedule *schedule,
       
    26                         const_DES_cblock *ivec);
       
    27  /* DES_cbc_encrypt does not update the IV!  Use DES_ncbc_encrypt instead. */
       
    28 -void DES_cbc_encrypt(const unsigned char *input, unsigned char *output,
       
    29 +DEPRECATED void DES_cbc_encrypt(const unsigned char *input, unsigned char *output,
       
    30                       long length, DES_key_schedule *schedule,
       
    31                       DES_cblock *ivec, int enc);
       
    32 -void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output,
       
    33 +DEPRECATED void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output,
       
    34                        long length, DES_key_schedule *schedule,
       
    35                        DES_cblock *ivec, int enc);
       
    36 -void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output,
       
    37 +DEPRECATED void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output,
       
    38                        long length, DES_key_schedule *schedule,
       
    39                        DES_cblock *ivec, const_DES_cblock *inw,
       
    40                        const_DES_cblock *outw, int enc);
       
    41 -void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
       
    42 +DEPRECATED void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
       
    43                       long length, DES_key_schedule *schedule,
       
    44                       DES_cblock *ivec, int enc);
       
    45 -void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output,
       
    46 +DEPRECATED void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output,
       
    47                       DES_key_schedule *ks, int enc);
       
    48  
       
    49  /*
       
    50 @@ -204,19 +218,19 @@
       
    51                         DES_cblock *out_white);
       
    52  # endif
       
    53  
       
    54 -int DES_enc_read(int fd, void *buf, int len, DES_key_schedule *sched,
       
    55 +DEPRECATED int DES_enc_read(int fd, void *buf, int len, DES_key_schedule *sched,
       
    56                   DES_cblock *iv);
       
    57 -int DES_enc_write(int fd, const void *buf, int len, DES_key_schedule *sched,
       
    58 +DEPRECATED int DES_enc_write(int fd, const void *buf, int len, DES_key_schedule *sched,
       
    59                    DES_cblock *iv);
       
    60 -char *DES_fcrypt(const char *buf, const char *salt, char *ret);
       
    61 -char *DES_crypt(const char *buf, const char *salt);
       
    62 -void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
       
    63 +DEPRECATED char *DES_fcrypt(const char *buf, const char *salt, char *ret);
       
    64 +DEPRECATED char *DES_crypt(const char *buf, const char *salt);
       
    65 +DEPRECATED void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
       
    66                       long length, DES_key_schedule *schedule,
       
    67                       DES_cblock *ivec);
       
    68 -void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output,
       
    69 +DEPRECATED void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output,
       
    70                        long length, DES_key_schedule *schedule,
       
    71                        DES_cblock *ivec, int enc);
       
    72 -DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[],
       
    73 +DEPRECATED DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[],
       
    74                          long length, int out_count, DES_cblock *seed);
       
    75  int DES_random_key(DES_cblock *ret);
       
    76  void DES_set_odd_parity(DES_cblock *key);
       
    77 @@ -237,10 +251,10 @@
       
    78  # endif
       
    79  void DES_string_to_key(const char *str, DES_cblock *key);
       
    80  void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2);
       
    81 -void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out,
       
    82 +DEPRECATED void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out,
       
    83                         long length, DES_key_schedule *schedule,
       
    84                         DES_cblock *ivec, int *num, int enc);
       
    85 -void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out,
       
    86 +DEPRECATED void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out,
       
    87                         long length, DES_key_schedule *schedule,
       
    88                         DES_cblock *ivec, int *num);
       
    89  
       
    90 --- openssl-1.x/crypto/md5/md5.h	Thu Feb 25 07:42:06 2016
       
    91 +++ openssl-1.x/crypto/md5/md5.h.new	Thu Feb 25 08:39:36 2016
       
    92 @@ -104,14 +104,28 @@
       
    93      unsigned int num;
       
    94  } MD5_CTX;
       
    95  
       
    96 +
       
    97 +#ifndef __has_attribute
       
    98 +# define __has_attribute(x) 0
       
    99 +#endif
       
   100 +
       
   101 +/* Mark MD5 functions deprecated */
       
   102 +#if __has_attribute(deprecated) \
       
   103 +    || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)) \
       
   104 +    || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5130))
       
   105 +# define DEPRECATED __attribute__((deprecated))
       
   106 +#else
       
   107 +# define DEPRECATED
       
   108 +#endif
       
   109 +
       
   110  # ifdef OPENSSL_FIPS
       
   111  int private_MD5_Init(MD5_CTX *c);
       
   112  # endif
       
   113 -int MD5_Init(MD5_CTX *c);
       
   114 -int MD5_Update(MD5_CTX *c, const void *data, size_t len);
       
   115 -int MD5_Final(unsigned char *md, MD5_CTX *c);
       
   116 -unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md);
       
   117 -void MD5_Transform(MD5_CTX *c, const unsigned char *b);
       
   118 +DEPRECATED int MD5_Init(MD5_CTX *c);
       
   119 +DEPRECATED int MD5_Update(MD5_CTX *c, const void *data, size_t len);
       
   120 +DEPRECATED int MD5_Final(unsigned char *md, MD5_CTX *c);
       
   121 +DEPRECATED unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md);
       
   122 +DEPRECATED void MD5_Transform(MD5_CTX *c, const unsigned char *b);
       
   123  #ifdef  __cplusplus
       
   124  }
       
   125  #endif
       
   126 --- openssl-1.x/crypto/rc4/rc4.h	Thu Feb 25 07:42:06 2016
       
   127 +++ openssl-1.x/crypto/rc4/rc4.h.new	Thu Feb 25 08:38:33 2016
       
   128 @@ -75,10 +75,23 @@
       
   129      RC4_INT data[256];
       
   130  } RC4_KEY;
       
   131  
       
   132 -const char *RC4_options(void);
       
   133 -void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data);
       
   134 -void private_RC4_set_key(RC4_KEY *key, int len, const unsigned char *data);
       
   135 -void RC4(RC4_KEY *key, size_t len, const unsigned char *indata,
       
   136 +#ifndef __has_attribute
       
   137 +# define __has_attribute(x) 0
       
   138 +#endif
       
   139 +
       
   140 +/* Mark RC4 functions deprecated */
       
   141 +#if __has_attribute(deprecated) \
       
   142 +    || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)) \
       
   143 +    || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5130))
       
   144 +# define DEPRECATED __attribute__((deprecated))
       
   145 +#else
       
   146 +# define DEPRECATED
       
   147 +#endif
       
   148 +
       
   149 +DEPRECATED const char *RC4_options(void);
       
   150 +DEPRECATED void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data);
       
   151 +DEPRECATED void private_RC4_set_key(RC4_KEY *key, int len, const unsigned char *data);
       
   152 +DEPRECATED void RC4(RC4_KEY *key, size_t len, const unsigned char *indata,
       
   153           unsigned char *outdata);
       
   154  
       
   155  #ifdef  __cplusplus
       
   156 --- openssl-1.x/crypto/pem/pem.h	Fri Sep 11 00:42:09 2015
       
   157 +++ openssl-1.x/crypto/pem/pem.h.new	Thu Feb 25 08:47:04 2016
       
   158 @@ -520,9 +520,24 @@
       
   159  EVP_PKEY *b2i_PublicKey_bio(BIO *in);
       
   160  int i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk);
       
   161  int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk);
       
   162 +
       
   163 +
       
   164 +#ifndef __has_attribute
       
   165 +# define __has_attribute(x) 0
       
   166 +#endif
       
   167 +
       
   168 +/* Mark RC4 functions deprecated */
       
   169 +#if __has_attribute(deprecated) \
       
   170 +    || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)) \
       
   171 +    || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5130))
       
   172 +# define DEPRECATED __attribute__((deprecated))
       
   173 +#else
       
   174 +# define DEPRECATED
       
   175 +#endif
       
   176 +
       
   177  # ifndef OPENSSL_NO_RC4
       
   178 -EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u);
       
   179 -int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel,
       
   180 +DEPRECATED EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u);
       
   181 +DEPRECATED int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel,
       
   182                  pem_password_cb *cb, void *u);
       
   183  # endif
       
   184  
       
   185 --- openssl-1.x/crypto/rsa/rsa.h	Fri Sep 11 00:42:09 2015
       
   186 +++ openssl-1.x/crypto/rsa/rsa.h.new	Thu Feb 25 08:47:08 2016
       
   187 @@ -387,18 +387,31 @@
       
   188  int RSA_print(BIO *bp, const RSA *r, int offset);
       
   189  # endif
       
   190  
       
   191 +
       
   192 +#ifndef __has_attribute
       
   193 +# define __has_attribute(x) 0
       
   194 +#endif
       
   195 +
       
   196 +/* Mark RC4 functions deprecated */
       
   197 +#if __has_attribute(deprecated) \
       
   198 +    || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)) \
       
   199 +    || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5130))
       
   200 +# define DEPRECATED __attribute__((deprecated))
       
   201 +#else
       
   202 +# define DEPRECATED
       
   203 +#endif
       
   204 +
       
   205  # ifndef OPENSSL_NO_RC4
       
   206 -int i2d_RSA_NET(const RSA *a, unsigned char **pp,
       
   207 +DEPRECATED int i2d_RSA_NET(const RSA *a, unsigned char **pp,
       
   208                  int (*cb) (char *buf, int len, const char *prompt,
       
   209                             int verify), int sgckey);
       
   210 -RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length,
       
   211 +DEPRECATED RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length,
       
   212                   int (*cb) (char *buf, int len, const char *prompt,
       
   213                              int verify), int sgckey);
       
   214 -
       
   215 -int i2d_Netscape_RSA(const RSA *a, unsigned char **pp,
       
   216 +DEPRECATED int i2d_Netscape_RSA(const RSA *a, unsigned char **pp,
       
   217                       int (*cb) (char *buf, int len, const char *prompt,
       
   218                                  int verify));
       
   219 -RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length,
       
   220 +DEPRECATED RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length,
       
   221                        int (*cb) (char *buf, int len, const char *prompt,
       
   222                                   int verify));
       
   223  # endif
       
   224 --- openssl-1.x/crypto/x509/x509.h	Fri Sep 11 00:42:09 2015
       
   225 +++ openssl-1.x/crypto/x509/x509.h.new	Thu Feb 25 08:47:12 2016
       
   226 @@ -970,9 +970,22 @@
       
   227  int X509_subject_name_cmp(const X509 *a, const X509 *b);
       
   228  unsigned long X509_subject_name_hash(X509 *x);
       
   229  
       
   230 +#ifndef __has_attribute
       
   231 +# define __has_attribute(x) 0
       
   232 +#endif
       
   233 +
       
   234 +/* Mark MD5 functions deprecated */
       
   235 +#if __has_attribute(deprecated) \
       
   236 +    || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)) \
       
   237 +    || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5130))
       
   238 +# define DEPRECATED __attribute__((deprecated))
       
   239 +#else
       
   240 +# define DEPRECATED
       
   241 +#endif
       
   242 +
       
   243  # ifndef OPENSSL_NO_MD5
       
   244 -unsigned long X509_issuer_name_hash_old(X509 *a);
       
   245 -unsigned long X509_subject_name_hash_old(X509 *x);
       
   246 +DEPRECATED unsigned long X509_issuer_name_hash_old(X509 *a);
       
   247 +DEPRECATED unsigned long X509_subject_name_hash_old(X509 *x);
       
   248  # endif
       
   249  
       
   250  int X509_cmp(const X509 *a, const X509 *b);
       
   251 $ diff -ru e_rc2.c e_rc2.c.new 
       
   252 --- a/crypto/rc2/rc2.h.orig	Thu Apr 14 12:23:50 2016
       
   253 +++ b/crypto/rc2/rc2.h	Thu Apr 14 12:27:16 2016
       
   254 @@ -82,17 +82,32 @@
       
   255  void private_RC2_set_key(RC2_KEY *key, int len, const unsigned char *data,
       
   256                           int bits);
       
   257  # endif
       
   258 -void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits);
       
   259 -void RC2_ecb_encrypt(const unsigned char *in, unsigned char *out,
       
   260 +
       
   261 +
       
   262 +#ifndef __has_attribute
       
   263 +# define __has_attribute(x) 0
       
   264 +#endif
       
   265 +
       
   266 +/* Mark RC2 functions deprecated */
       
   267 +#if __has_attribute(deprecated) \
       
   268 +    || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)) \
       
   269 +    || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5130))
       
   270 +# define DEPRECATED __attribute__((deprecated))
       
   271 +#else
       
   272 +# define DEPRECATED
       
   273 +#endif
       
   274 +
       
   275 +DEPRECATED void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits);
       
   276 +DEPRECATED void RC2_ecb_encrypt(const unsigned char *in, unsigned char *out,
       
   277                       RC2_KEY *key, int enc);
       
   278 -void RC2_encrypt(unsigned long *data, RC2_KEY *key);
       
   279 -void RC2_decrypt(unsigned long *data, RC2_KEY *key);
       
   280 -void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
       
   281 +DEPRECATED void RC2_encrypt(unsigned long *data, RC2_KEY *key);
       
   282 +DEPRECATED void RC2_decrypt(unsigned long *data, RC2_KEY *key);
       
   283 +DEPRECATED void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
       
   284                       RC2_KEY *ks, unsigned char *iv, int enc);
       
   285 -void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out,
       
   286 +DEPRECATED void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out,
       
   287                         long length, RC2_KEY *schedule, unsigned char *ivec,
       
   288                         int *num, int enc);
       
   289 -void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out,
       
   290 +DEPRECATED void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out,
       
   291                         long length, RC2_KEY *schedule, unsigned char *ivec,
       
   292                         int *num);
       
   293  
       
   294 --- old/crypto/md4/md4.h	Thu Apr 21 09:34:15 2016
       
   295 +++ new/crypto/md4/md4.h	Thu Apr 21 09:36:51 2016
       
   296 @@ -104,14 +104,30 @@
       
   297      unsigned int num;
       
   298  } MD4_CTX;
       
   299  
       
   300 +/*
       
   301 + * Deprecate MD4
       
   302 + */
       
   303 +#ifndef	__has_attribute
       
   304 +# define__has_attribute(x)	0
       
   305 +#endif
       
   306 +
       
   307 +#if __has_attribute(deprecated) \
       
   308 +    || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)) \
       
   309 +    || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5130))
       
   310 +# define DEPRECATED __attribute__((deprecated))
       
   311 +#else
       
   312 +# define DEPRECATED
       
   313 +#endif
       
   314 +
       
   315 +
       
   316  # ifdef OPENSSL_FIPS
       
   317 -int private_MD4_Init(MD4_CTX *c);
       
   318 +DEPRECATED int private_MD4_Init(MD4_CTX *c);
       
   319  # endif
       
   320 -int MD4_Init(MD4_CTX *c);
       
   321 -int MD4_Update(MD4_CTX *c, const void *data, size_t len);
       
   322 -int MD4_Final(unsigned char *md, MD4_CTX *c);
       
   323 -unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md);
       
   324 -void MD4_Transform(MD4_CTX *c, const unsigned char *b);
       
   325 +DEPRECATED int MD4_Init(MD4_CTX *c);
       
   326 +DEPRECATED int MD4_Update(MD4_CTX *c, const void *data, size_t len);
       
   327 +DEPRECATED int MD4_Final(unsigned char *md, MD4_CTX *c);
       
   328 +DEPRECATED unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md);
       
   329 +DEPRECATED void MD4_Transform(MD4_CTX *c, const unsigned char *b);
       
   330  #ifdef  __cplusplus
       
   331  }
       
   332  #endif
       
   333 --- old/crypto/evp/evp.h	Tue Mar  1 05:35:53 2016
       
   334 +++ new/crypto/evp/evp.h	Thu Apr 21 09:35:07 2016
       
   335 @@ -705,15 +705,31 @@
       
   336                      const unsigned char *i, int enc);
       
   337  # endif
       
   338  
       
   339 +
       
   340 +/*
       
   341 + * Deprecate MD4, MD5, RC2, RC4, and DES
       
   342 + */
       
   343 +#ifndef __has_attribute
       
   344 +# define __has_attribute(x) 0
       
   345 +#endif
       
   346 +
       
   347 +#if __has_attribute(deprecated) \
       
   348 +    || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)) \
       
   349 +    || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5130))
       
   350 +# define DEPRECATED __attribute__((deprecated))
       
   351 +#else
       
   352 +# define DEPRECATED
       
   353 +#endif
       
   354 +
       
   355  const EVP_MD *EVP_md_null(void);
       
   356  # ifndef OPENSSL_NO_MD2
       
   357  const EVP_MD *EVP_md2(void);
       
   358  # endif
       
   359  # ifndef OPENSSL_NO_MD4
       
   360 -const EVP_MD *EVP_md4(void);
       
   361 +DEPRECATED const EVP_MD *EVP_md4(void);
       
   362  # endif
       
   363  # ifndef OPENSSL_NO_MD5
       
   364 -const EVP_MD *EVP_md5(void);
       
   365 +DEPRECATED const EVP_MD *EVP_md5(void);
       
   366  # endif
       
   367  # ifndef OPENSSL_NO_SHA
       
   368  const EVP_MD *EVP_sha(void);
       
   369 @@ -741,16 +757,16 @@
       
   370  # endif
       
   371  const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */
       
   372  # ifndef OPENSSL_NO_DES
       
   373 -const EVP_CIPHER *EVP_des_ecb(void);
       
   374 -const EVP_CIPHER *EVP_des_ede(void);
       
   375 +DEPRECATED const EVP_CIPHER *EVP_des_ecb(void);
       
   376 +DEPRECATED const EVP_CIPHER *EVP_des_ede(void);
       
   377  const EVP_CIPHER *EVP_des_ede3(void);
       
   378 -const EVP_CIPHER *EVP_des_ede_ecb(void);
       
   379 +DEPRECATED const EVP_CIPHER *EVP_des_ede_ecb(void);
       
   380  const EVP_CIPHER *EVP_des_ede3_ecb(void);
       
   381 -const EVP_CIPHER *EVP_des_cfb64(void);
       
   382 +DEPRECATED const EVP_CIPHER *EVP_des_cfb64(void);
       
   383  #  define EVP_des_cfb EVP_des_cfb64
       
   384 -const EVP_CIPHER *EVP_des_cfb1(void);
       
   385 -const EVP_CIPHER *EVP_des_cfb8(void);
       
   386 -const EVP_CIPHER *EVP_des_ede_cfb64(void);
       
   387 +DEPRECATED const EVP_CIPHER *EVP_des_cfb1(void);
       
   388 +DEPRECATED const EVP_CIPHER *EVP_des_cfb8(void);
       
   389 +DEPRECATED const EVP_CIPHER *EVP_des_ede_cfb64(void);
       
   390  #  define EVP_des_ede_cfb EVP_des_ede_cfb64
       
   391  #  if 0
       
   392  const EVP_CIPHER *EVP_des_ede_cfb1(void);
       
   393 @@ -760,13 +776,13 @@
       
   394  #  define EVP_des_ede3_cfb EVP_des_ede3_cfb64
       
   395  const EVP_CIPHER *EVP_des_ede3_cfb1(void);
       
   396  const EVP_CIPHER *EVP_des_ede3_cfb8(void);
       
   397 -const EVP_CIPHER *EVP_des_ofb(void);
       
   398 -const EVP_CIPHER *EVP_des_ede_ofb(void);
       
   399 +DEPRECATED const EVP_CIPHER *EVP_des_ofb(void);
       
   400 +DEPRECATED const EVP_CIPHER *EVP_des_ede_ofb(void);
       
   401  const EVP_CIPHER *EVP_des_ede3_ofb(void);
       
   402 -const EVP_CIPHER *EVP_des_cbc(void);
       
   403 -const EVP_CIPHER *EVP_des_ede_cbc(void);
       
   404 +DEPRECATED const EVP_CIPHER *EVP_des_cbc(void);
       
   405 +DEPRECATED const EVP_CIPHER *EVP_des_ede_cbc(void);
       
   406  const EVP_CIPHER *EVP_des_ede3_cbc(void);
       
   407 -const EVP_CIPHER *EVP_desx_cbc(void);
       
   408 +DEPRECATED const EVP_CIPHER *EVP_desx_cbc(void);
       
   409  const EVP_CIPHER *EVP_des_ede3_wrap(void);
       
   410  /*
       
   411   * This should now be supported through the dev_crypto ENGINE. But also, why
       
   412 @@ -782,10 +798,10 @@
       
   413  #  endif
       
   414  # endif
       
   415  # ifndef OPENSSL_NO_RC4
       
   416 -const EVP_CIPHER *EVP_rc4(void);
       
   417 -const EVP_CIPHER *EVP_rc4_40(void);
       
   418 +DEPRECATED const EVP_CIPHER *EVP_rc4(void);
       
   419 +DEPRECATED const EVP_CIPHER *EVP_rc4_40(void);
       
   420  #  ifndef OPENSSL_NO_MD5
       
   421 -const EVP_CIPHER *EVP_rc4_hmac_md5(void);
       
   422 +DEPRECATED const EVP_CIPHER *EVP_rc4_hmac_md5(void);
       
   423  #  endif
       
   424  # endif
       
   425  # ifndef OPENSSL_NO_IDEA
       
   426 @@ -796,13 +812,13 @@
       
   427  const EVP_CIPHER *EVP_idea_cbc(void);
       
   428  # endif
       
   429  # ifndef OPENSSL_NO_RC2
       
   430 -const EVP_CIPHER *EVP_rc2_ecb(void);
       
   431 -const EVP_CIPHER *EVP_rc2_cbc(void);
       
   432 -const EVP_CIPHER *EVP_rc2_40_cbc(void);
       
   433 -const EVP_CIPHER *EVP_rc2_64_cbc(void);
       
   434 -const EVP_CIPHER *EVP_rc2_cfb64(void);
       
   435 +DEPRECATED const EVP_CIPHER *EVP_rc2_ecb(void);
       
   436 +DEPRECATED const EVP_CIPHER *EVP_rc2_cbc(void);
       
   437 +DEPRECATED const EVP_CIPHER *EVP_rc2_40_cbc(void);
       
   438 +DEPRECATED const EVP_CIPHER *EVP_rc2_64_cbc(void);
       
   439 +DEPRECATED const EVP_CIPHER *EVP_rc2_cfb64(void);
       
   440  #  define EVP_rc2_cfb EVP_rc2_cfb64
       
   441 -const EVP_CIPHER *EVP_rc2_ofb(void);
       
   442 +DEPRECATED const EVP_CIPHER *EVP_rc2_ofb(void);
       
   443  # endif
       
   444  # ifndef OPENSSL_NO_BF
       
   445  const EVP_CIPHER *EVP_bf_ecb(void);