diff options
author | dlenev@mysql.com <> | 2003-09-12 22:33:43 +0400 |
---|---|---|
committer | dlenev@mysql.com <> | 2003-09-12 22:33:43 +0400 |
commit | 1c11077d60ed0d94bcc79968a96b58511c88cad7 (patch) | |
tree | 1d852e8ef118cc78b1b79f1d6afc97e881c0647e | |
parent | 4871a35e8a66c584e4cf87461929eb6c643026aa (diff) | |
download | mariadb-git-1c11077d60ed0d94bcc79968a96b58511c88cad7.tar.gz |
Replaced deprecated since OpenSSL 0.9.7 des_ calls and types with
their newer DES_ versions.
Provided macros for backward compatibility.
-rw-r--r-- | include/my_global.h | 10 | ||||
-rw-r--r-- | sql/des_key_file.cc | 8 | ||||
-rw-r--r-- | sql/item_strfunc.cc | 34 | ||||
-rw-r--r-- | sql/mysql_priv.h | 4 |
4 files changed, 33 insertions, 23 deletions
diff --git a/include/my_global.h b/include/my_global.h index 9d08977a7cd..59e0c43f18d 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -1105,4 +1105,14 @@ typedef union { #define statistic_add(V,C,L) (V)+=(C) #endif +#ifdef HAVE_OPENSSL +#include <openssl/opensslv.h> +#if OPENSSL_VERSION_NUMBER < 0x0090700f +#define DES_cblock des_cblock +#define DES_key_schedule des_key_schedule +#define DES_set_key_unchecked(k,ks) des_set_key_unchecked((k),*(ks)) +#define DES_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e) des_ede3_cbc_encrypt((i),(o),(l),*(k1),*(k2),*(k3),(iv),(e)) +#endif +#endif + #endif /* my_global_h */ diff --git a/sql/des_key_file.cc b/sql/des_key_file.cc index 891cf18ee53..619691d183e 100644 --- a/sql/des_key_file.cc +++ b/sql/des_key_file.cc @@ -76,16 +76,16 @@ load_des_key_file(const char *file_name) if (start != end) { - des_cblock ivec; + DES_cblock ivec; bzero((char*) &ivec,sizeof(ivec)); // We make good 24-byte (168 bit) key from given plaintext key with MD5 EVP_BytesToKey(EVP_des_ede3_cbc(),EVP_md5(),NULL, (uchar *) start, (int) (end-start),1, (uchar *) &keyblock, ivec); - des_set_key_unchecked(&keyblock.key1,des_keyschedule[(int)offset].ks1); - des_set_key_unchecked(&keyblock.key2,des_keyschedule[(int)offset].ks2); - des_set_key_unchecked(&keyblock.key3,des_keyschedule[(int)offset].ks3); + DES_set_key_unchecked(&keyblock.key1,&(des_keyschedule[(int)offset].ks1)); + DES_set_key_unchecked(&keyblock.key2,&(des_keyschedule[(int)offset].ks2)); + DES_set_key_unchecked(&keyblock.key3,&(des_keyschedule[(int)offset].ks3)); if (des_default_key == 15) des_default_key= (uint) offset; // use first as def. } diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 8cc3d24f7d9..fe9c8b9e099 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -330,7 +330,7 @@ void Item_func_concat::fix_length_and_dec() String *Item_func_des_encrypt::val_str(String *str) { #ifdef HAVE_OPENSSL - des_cblock ivec; + DES_cblock ivec; struct st_des_keyblock keyblock; struct st_des_keyschedule keyschedule; const char *append_str="********"; @@ -370,9 +370,9 @@ String *Item_func_des_encrypt::val_str(String *str) EVP_BytesToKey(EVP_des_ede3_cbc(),EVP_md5(),NULL, (uchar*) keystr->ptr(), (int) keystr->length(), 1, (uchar*) &keyblock,ivec); - des_set_key_unchecked(&keyblock.key1,keyschedule.ks1); - des_set_key_unchecked(&keyblock.key2,keyschedule.ks2); - des_set_key_unchecked(&keyblock.key3,keyschedule.ks3); + DES_set_key_unchecked(&keyblock.key1,&keyschedule.ks1); + DES_set_key_unchecked(&keyblock.key2,&keyschedule.ks2); + DES_set_key_unchecked(&keyblock.key3,&keyschedule.ks3); } /* @@ -393,12 +393,12 @@ String *Item_func_des_encrypt::val_str(String *str) tmp_value[0]=(char) (128 | key_number); // Real encryption bzero((char*) &ivec,sizeof(ivec)); - des_ede3_cbc_encrypt((const uchar*) (res->ptr()), + DES_ede3_cbc_encrypt((const uchar*) (res->ptr()), (uchar*) (tmp_value.ptr()+1), res_length, - keyschedule.ks1, - keyschedule.ks2, - keyschedule.ks3, + &keyschedule.ks1, + &keyschedule.ks2, + &keyschedule.ks3, &ivec, TRUE); return &tmp_value; @@ -412,8 +412,8 @@ error: String *Item_func_des_decrypt::val_str(String *str) { #ifdef HAVE_OPENSSL - des_key_schedule ks1, ks2, ks3; - des_cblock ivec; + DES_key_schedule ks1, ks2, ks3; + DES_cblock ivec; struct st_des_keyblock keyblock; struct st_des_keyschedule keyschedule; String *res= args[0]->val_str(str); @@ -447,20 +447,20 @@ String *Item_func_des_decrypt::val_str(String *str) (uchar*) keystr->ptr(),(int) keystr->length(), 1,(uchar*) &keyblock,ivec); // Here we set all 64-bit keys (56 effective) one by one - des_set_key_unchecked(&keyblock.key1,keyschedule.ks1); - des_set_key_unchecked(&keyblock.key2,keyschedule.ks2); - des_set_key_unchecked(&keyblock.key3,keyschedule.ks3); + DES_set_key_unchecked(&keyblock.key1,&keyschedule.ks1); + DES_set_key_unchecked(&keyblock.key2,&keyschedule.ks2); + DES_set_key_unchecked(&keyblock.key3,&keyschedule.ks3); } if (tmp_value.alloc(length-1)) goto error; bzero((char*) &ivec,sizeof(ivec)); - des_ede3_cbc_encrypt((const uchar*) res->ptr()+1, + DES_ede3_cbc_encrypt((const uchar*) res->ptr()+1, (uchar*) (tmp_value.ptr()), length-1, - keyschedule.ks1, - keyschedule.ks2, - keyschedule.ks3, + &keyschedule.ks1, + &keyschedule.ks2, + &keyschedule.ks3, &ivec, FALSE); /* Restore old length of key */ if ((tail=(uint) (uchar) tmp_value[length-2]) > 8) diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index 22c92a5473b..8024c755a63 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -474,11 +474,11 @@ Field *find_field_in_table(THD *thd,TABLE *table,const char *name,uint length, #include <openssl/des.h> struct st_des_keyblock { - des_cblock key1, key2, key3; + DES_cblock key1, key2, key3; }; struct st_des_keyschedule { - des_key_schedule ks1, ks2, ks3; + DES_key_schedule ks1, ks2, ks3; }; extern char *des_key_file; extern struct st_des_keyschedule des_keyschedule[10]; |