mirror of
https://github.com/MariaDB/server.git
synced 2026-05-07 15:45:33 +02:00
Fixed compiler warnings detected by option -Wshadow and -Wunused:
- Removed not used variables and functions - Added #ifdef around code that is not used - Renamed variables and functions to avoid conflicts - Removed some not used arguments Fixed some class/struct warnings in ndb Added define IS_LONGDATA() to simplify code in libmysql.c I did run gcov on the changes and added 'purecov' comments on almost all lines that was not just variable name changes BUILD/SETUP.sh: Added printing of unused functions and variables. Made it easy to test compiling with -Wshadow BUILD/compile-pentium-gcov: Added warnings Mark binary with -gcov client/mysql.cc: Fixed warnings found with gcc -Wshadow client/mysql_upgrade.c: Fixed warnings found with gcc -Wshadow client/mysqlbinlog.cc: Fixed warnings found with gcc -Wshadow client/mysqldump.c: Fixed warnings found with gcc -Wshadow client/mysqltest.c: Fixed warnings found with gcc -Wshadow client/sql_string.cc: Fixed warnings found with gcc -Wshadow Merged with sql/sql_string.cc client/sql_string.h: Fixed warnings found with gcc -Wshadow Merged with sql/sql_string.h cmd-line-utils/readline/display.c: Fixed compiler warning cmd-line-utils/readline/histexpand.c: Fixed warnings found with gcc -Wshadow cmd-line-utils/readline/input.c: Fixed warnings found with gcc -Wshadow cmd-line-utils/readline/text.c: Fixed warnings found with gcc -Wshadow cmd-line-utils/readline/vi_mode.c: Fixed warnings found with gcc -Wshadow dbug/dbug_analyze.c: Fixed warnings found with gcc -Wshadow extra/my_print_defaults.c: Prefixed defaults_extra_file and defaults_group_suffix with 'my' to avoid conflicts with similar named local variables extra/yassl/include/buffer.hpp: Fixed compiler warnings extra/yassl/include/crypto_wrapper.hpp: Fixed compiler warnings extra/yassl/include/yassl_imp.hpp: Fixed compiler warnings extra/yassl/include/yassl_int.hpp: Fixed compiler warnings extra/yassl/src/crypto_wrapper.cpp: Fixed compiler warnings extra/yassl/taocrypt/benchmark/benchmark.cpp: Fixed warnings found with gcc -Wshadow extra/yassl/taocrypt/include/algebra.hpp: Fixed compiler warnings extra/yassl/taocrypt/include/des.hpp: Fixed compiler warnings extra/yassl/taocrypt/include/hash.hpp: Fixed compiler warnings extra/yassl/taocrypt/include/hmac.hpp: Fixed compiler warnings extra/yassl/taocrypt/include/modarith.hpp: Fixed compiler warnings extra/yassl/taocrypt/include/modes.hpp: Fixed compiler warnings extra/yassl/taocrypt/include/rsa.hpp: Fixed compiler warnings extra/yassl/taocrypt/mySTL/list.hpp: Fixed compiler warnings extra/yassl/taocrypt/src/aes.cpp: Fixed compiler warnings extra/yassl/taocrypt/src/algebra.cpp: Fixed compiler warnings extra/yassl/taocrypt/src/asn.cpp: Fixed compiler warnings extra/yassl/taocrypt/test/test.cpp: Fixed compiler warnings extra/yassl/testsuite/testsuite.cpp: Fixed compiler warnings include/m_ctype.h: Fixed warnings found with gcc -Wshadow include/my_pthread.h: Fixed warnings found with gcc -Wshadow include/my_sys.h: Fixed warnings found with gcc -Wshadow include/my_time.h: Fixed warnings found with gcc -Wshadow include/mysql.h: Fixed warnings found with gcc -Wshadow Added define IS_LONGDATA() to simplify code in libmysql.c libmysql/libmysql.c: Fixed warnings found with gcc -Wshadow (Mostly replaced bind -> my_bind and time -> my_time) libmysqld/lib_sql.cc: Removed not used variables and labels myisam/ft_boolean_search.c: Fixed warnings found with gcc -Wshadow myisam/mi_open.c: Fixed warnings found with gcc -Wshadow myisam/mi_search.c: Fixed warnings found with gcc -Wshadow myisam/mi_unique.c: Fixed compiler warning myisam/myisampack.c: Fixed warnings found with gcc -Wshadow myisam/rt_index.c: Remove not used variables myisam/sort.c: Fixed warnings found with gcc -Wshadow mysql-test/r/mysqlcheck.result: Remove databases and tables possible left by previous test mysql-test/r/mysqltest.result: New test results mysql-test/t/mysql.test: Coverage tests mysql-test/t/mysqlbinlog.test: Coverage tests mysql-test/t/mysqlcheck.test: Remove databases and tables possible left by previous test mysql-test/t/mysqltest.test: Coverage tests mysys/default.c: Prefixed defaults_file, defaults_group_suffix and defaults_extra_file with 'my' to avoid conflicts with local variables in some functions mysys/mf_iocache2.c: Fixed warnings found with gcc -Wshadow mysys/mf_keycache.c: Fixed warnings found with gcc -Wshadow mysys/my_bitmap.c: Fixed warnings found with gcc -Wshadow mysys/sha1.c: Fixed warnings found with gcc -Wshadow ndb/include/kernel/signaldata/ArbitSignalData.hpp: Fixed compiler warning ndb/include/kernel/signaldata/DictTabInfo.hpp: Fixed compiler warnings ndb/include/ndbapi/NdbReceiver.hpp: Fixed warnings found with gcc -Wshadow ndb/include/transporter/TransporterDefinitions.hpp: Fixed compiler warning ndb/include/util/InputStream.hpp: Fixed compiler warning ndb/include/util/OutputStream.hpp: Fixed compiler warning ndb/include/util/SimpleProperties.hpp: Fixed compiler warning ndb/include/util/SocketAuthenticator.hpp: Fixed compiler warning ndb/include/util/SocketServer.hpp: Fixed compiler warning ndb/src/common/mgmcommon/ConfigRetriever.cpp: Fixed warnings found with gcc -Wshadow ndb/src/common/portlib/NdbTick.c: Fixed warnings found with gcc -Wshadow ndb/src/common/transporter/SHM_Transporter.cpp: Fixed warnings found with gcc -Wshadow ndb/src/common/transporter/TCP_Transporter.cpp: Fixed warnings found with gcc -Wshadow ndb/src/common/transporter/TCP_Transporter.hpp: Fixed compiler warning ndb/src/common/transporter/Transporter.cpp: Removed not used variable ndb/src/common/transporter/TransporterRegistry.cpp: Removed not used variable ndb/src/common/util/Bitmask.cpp: Moved function to avoid warnings of not used function ndb/src/common/util/ConfigValues.cpp: Fixed warnings found with gcc -Wshadow ndb/src/common/util/File.cpp: Fixed warnings found with gcc -Wshadow ndb/src/common/util/Properties.cpp: Fixed warnings found with gcc -Wshadow ndb/src/common/util/SocketClient.cpp: Fixed wrong return value ndb/src/common/util/random.c: Fixed warnings found with gcc -Wshadow ndb/src/common/util/socket_io.cpp: Fixed warnings found with gcc -Wshadow ndb/src/cw/cpcd/APIService.cpp: Removed not used variable ndb/src/cw/cpcd/main.cpp: Removed not used variables ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp: Fixed compiler warnings ndb/src/kernel/blocks/dbdict/Dbdict.cpp: Removed not used variables ndb/src/kernel/blocks/dbdict/Dbdict.hpp: Fixed compiler warnings ndb/src/kernel/blocks/dbdih/Dbdih.hpp: Fixed compiler warnings ndb/src/kernel/blocks/dblqh/Dblqh.hpp: Fixed compiler warnings ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Removed not used variables ndb/src/kernel/blocks/dbtc/Dbtc.hpp: Fixed compiler warnings ndb/src/kernel/blocks/dbtup/Dbtup.hpp: Fixed compiler warnings ndb/src/kernel/blocks/dbtup/DbtupScan.cpp: Removed not used variable ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp: Removed not used variables ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp: Removed not used variables ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp: Removed not used variables ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp: Fixed compiler warnings ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: Removed not used variables ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp: Fixed compiler warnings ndb/src/kernel/blocks/qmgr/Qmgr.hpp: Fixed compiler warnings ndb/src/kernel/blocks/qmgr/QmgrMain.cpp: Removed not used variables ndb/src/kernel/blocks/suma/Suma.cpp: Removed not used variables ndb/src/kernel/blocks/suma/Suma.hpp: Fixed compiler warnings ndb/src/kernel/vm/MetaData.hpp: Fixed compiler warnings ndb/src/mgmapi/LocalConfig.cpp: Fixed warnings found with gcc -Wshadow ndb/src/mgmapi/mgmapi.cpp: Fixed warnings found with gcc -Wshadow ndb/src/mgmclient/CommandInterpreter.cpp: Removed not used variables ndb/src/mgmsrv/ConfigInfo.cpp: Fixed warnings found with gcc -Wshadow Removed not used variables ndb/src/mgmsrv/ConfigInfo.hpp: Fixed warnings found with gcc -Wshadow ndb/src/mgmsrv/InitConfigFileParser.cpp: Prefixed defaults_file, defaults_group_suffix and defaults_extra_file with 'my' to avoid conflicts with local variables in some functions ndb/src/mgmsrv/MgmtSrvr.cpp: Removed not used variables and functions ndb/src/mgmsrv/MgmtSrvr.hpp: Fixed compiler warnings ndb/src/mgmsrv/Services.cpp: Removed not used variables and functions ndb/src/mgmsrv/main.cpp: Removed not used variable ndb/src/ndbapi/ClusterMgr.hpp: Fixed compiler warnings ndb/src/ndbapi/Ndb.cpp: Removed not used variables ndb/src/ndbapi/NdbBlob.cpp: Removed not used variables ndb/src/ndbapi/NdbDictionaryImpl.cpp: Removed not used variables ndb/src/ndbapi/NdbIndexOperation.cpp: Removed not used variables ndb/src/ndbapi/NdbOperationDefine.cpp: Removed not used variables ndb/src/ndbapi/NdbOperationExec.cpp: Removed not used variables ndb/src/ndbapi/NdbOperationSearch.cpp: Removed not used variables ndb/src/ndbapi/NdbScanFilter.cpp: Fixed compiler warning ndb/src/ndbapi/NdbScanOperation.cpp: Removed not used variables ndb/src/ndbapi/SignalSender.cpp: Removed not used variables ndb/src/ndbapi/ndb_cluster_connection.cpp: Removed not used variable ndb/tools/delete_all.cpp: Removed not used variable ndb/tools/desc.cpp: Removed not used variable ndb/tools/drop_index.cpp: Removed not used variable ndb/tools/drop_tab.cpp: Removed not used variable ndb/tools/listTables.cpp: Removed not used variable ndb/tools/ndb_config.cpp: Fixed warnings found with gcc -Wshadow Added missing puts(desc) ndb/tools/restore/Restore.hpp: Changed delimiter to define instead of static variable, as the static variable caused a LOT of compiler warnings Fixed compiler warning ndb/tools/restore/consumer.hpp: Fixed compiler warning ndb/tools/restore/restore_main.cpp: Fixed compiler warnings ndb/tools/select_all.cpp: Removed not used variables ndb/tools/select_count.cpp: Removed not used variable server-tools/instance-manager/commands.h: Fixed compiler warnings server-tools/instance-manager/guardian.cc: Fixed compiler warnings server-tools/instance-manager/instance_options.cc: Removed not used variables server-tools/instance-manager/mysql_connection.cc: Fixed compiler warnings server-tools/instance-manager/options.cc: Fixed compiler warnings server-tools/instance-manager/options.h: Fixed compiler warnings server-tools/instance-manager/parse.cc: Removed not used variable server-tools/instance-manager/user_map.cc: Fixed compiler warnings server-tools/instance-manager/user_map.h: Fixed compiler warnings sql/field.cc: Fixed compiler warnings sql/field.h: Fixed compiler warnings sql/filesort.cc: Fixed compiler warnings sql/ha_archive.cc: Removed table and share arguments from get_share() / free_share() to get rid of compiler warnings sql/ha_archive.h: Removed table and share arguments from get_share() / free_share() to get rid of compiler warnings sql/ha_federated.cc: Fixed compiler warnings sql/ha_heap.cc: Fixed compiler warnings sql/ha_myisam.cc: Fixed compiler warnings sql/ha_myisammrg.cc: Fixed compiler warnings sql/ha_ndbcluster.cc: Fixed compiler warnings sql/handler.cc: Fixed compiler warnings sql/item.cc: Fixed compiler warnings sql/item.h: Fixed compiler warnings new_item() -> clone_item(), to avoid a lot of warnings with variable 'new_item' el() -> element_index() sql/item_cmpfunc.cc: Fixed compiler warnings sql/item_cmpfunc.h: Fixed compiler warnings sql/item_func.cc: Fixed compiler warnings sql/item_geofunc.cc: Fixed compiler warnings sql/item_row.h: Fixed compiler warnings sql/item_strfunc.cc: Fixed compiler warnings sql/item_subselect.cc: Fixed compiler warnings sql/item_subselect.h: Fixed compiler warnings sql/item_sum.cc: Fixed compiler warnings sql/item_timefunc.cc: Fixed compiler warnings sql/log.cc: Fixed compiler warnings More comments Added #ifdef HAVE_REPLICATION sql/log_event.cc: Fixed compiler warnings sql/log_event.h: Fixed compiler warnings sql/mysql_priv.h: query_id -> global_query_id, to avoid a lot of clashes with function and class variables start_time -> server_start_time sql/mysqld.cc: Fixed compiler warnings: - Removed not used variables - Added #ifndef EMBEDDED_LIBRARY - Fixed shadow warnings sql/net_serv.cc: Fixed compiler warnings sql/opt_range.cc: range -> last_range to avoid shadow warnings Removed not used function print_rowid() sql/opt_range.h: range -> last_range to avoid shadow warnings sql/password.c: Fixed compiler warnings sql/protocol.cc: Fixed compiler warnings sql/repl_failsafe.cc: Fixed compiler warnings sql/set_var.cc: Fixed compiler warnings sql/set_var.h: type() -> show_type() Fixed compiler warnings sql/slave.cc: Fixed compiler warnings sql/sp_head.cc: Fixed compiler warnings sql/sp_head.h: Fixed compiler warnings sql/spatial.cc: Fixed compiler warnings sql/spatial.h: length() -> geom_length() to avoid compiler warnings wkb_end -> wkb_last to avoid compiler warnings with local variables named 'wkb_end' sql/sql_cache.h: Fixed compiler warnings sql/sql_class.cc: Fixed compiler warnings sql/sql_class.h: log -> log_xid() to avoid compiler warnings Fixed shadow compiler warnings sql/sql_derived.cc: Removed not used variable sql/sql_insert.cc: Fixed compiler warnings sql/sql_lex.cc: Fixed compiler warnings sql/sql_lex.h: res -> saved_error to make the meaning of the variable clear and avoid shadow warnings sql/sql_load.cc: Fixed compiler warnings sql/sql_parse.cc: Fixed compiler warnings sql/sql_prepare.cc: Fixed compiler warnings sql/sql_select.cc: Fixed compiler warnings sql/sql_show.cc: Fixed compiler warnings sql/sql_string.cc: Fixed compiler warnings sql/sql_string.h: Fixed compiler warnings sql/sql_table.cc: Fixed compiler warnings sql/sql_trigger.cc: Fixed compiler warnings sql/sql_trigger.h: table -> trigger_table to avoid warnings from local variables sql/sql_union.cc: Fixed compiler warnings (mainly res -> saved_error) sql-common/client.c: Removed not used variable sql-common/my_time.c: Removed not used variable time -> my_time sql/sql_update.cc: Removed not used variable sql/sql_view.cc: Removed not used variable sql/sql_yacc.yy: Removed not used variable sql/table.cc: Removed not used variable sql/tztime.cc: Removed not used variable sql/unireg.cc: Removed not used variable strings/ctype-bin.c: mblen -> mb_len to avoid compiler warnings with local variable mblen strings/ctype-cp932.c: Fixed compiler warnings strings/ctype-eucjpms.c: Fixed compiler warnings strings/ctype-mb.c: mblen -> mb_len to avoid compiler warnings with local variable mblen strings/ctype-simple.c: mblen -> mb_len to avoid compiler warnings with local variable mblen exp -> exponent strings/ctype-sjis.c: Fixed compiler warnings strings/ctype-uca.c: mblen -> mb_len to avoid compiler warnings with local variable mblen strings/ctype-ujis.c: Fixed compiler warnings strings/ctype-utf8.c: Fixed compiler warnings strings/decimal.c: Fixed compiler warnings strings/my_vsnprintf.c: Added comment strings/strtod.c: Fixed compiler warnings tests/mysql_client_test.c: Fixed compiler warnings (Biggest part of patch is to not get a conflict with global function 'bind')
This commit is contained in:
parent
25226de9ea
commit
f00257ddd0
227 changed files with 3273 additions and 3082 deletions
|
|
@ -49,15 +49,16 @@ static struct my_option my_long_options[] =
|
|||
0, 0, 0, 0, 0, 0},
|
||||
{"defaults-extra-file", 'e',
|
||||
"Read this file after the global /etc config file and before the config file in the users home directory.",
|
||||
(gptr*) &defaults_extra_file, (gptr*) &defaults_extra_file, 0, GET_STR,
|
||||
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
(gptr*) &my_defaults_extra_file, (gptr*) &my_defaults_extra_file, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"defaults-group-suffix", 'g',
|
||||
"In addition to the given groups, read also groups with this suffix",
|
||||
(gptr*) &defaults_group_suffix, (gptr*) &defaults_group_suffix,
|
||||
(gptr*) &my_defaults_group_suffix, (gptr*) &my_defaults_group_suffix,
|
||||
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"extra-file", 'e',
|
||||
"Synonym for --defaults-extra-file.",
|
||||
(gptr*) &defaults_extra_file, (gptr*) &defaults_extra_file, 0, GET_STR,
|
||||
(gptr*) &my_defaults_extra_file,
|
||||
(gptr*) &my_defaults_extra_file, 0, GET_STR,
|
||||
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"no-defaults", 'n', "Return an empty string (useful for scripts).",
|
||||
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
|
|
|
|||
|
|
@ -56,11 +56,13 @@ const uint AUTO = 0xFEEDBEEF;
|
|||
// Checking Policy should implement a check function that tests whether the
|
||||
// index is within the size limit of the array
|
||||
struct Check {
|
||||
Check() {}
|
||||
void check(uint i, uint limit);
|
||||
};
|
||||
|
||||
|
||||
struct NoCheck {
|
||||
NoCheck() {}
|
||||
void check(uint, uint);
|
||||
};
|
||||
|
||||
|
|
@ -198,6 +200,7 @@ inline void checked_delete(T* p)
|
|||
// sets pointer to zero so safe for std conatiners
|
||||
struct del_ptr_zero
|
||||
{
|
||||
del_ptr_zero() {}
|
||||
template <typename T>
|
||||
void operator()(T*& p) const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ namespace yaSSL {
|
|||
// Digest policy should implement a get_digest, update, and get sizes for pad
|
||||
// and digest
|
||||
struct Digest : public virtual_base {
|
||||
Digest() {}
|
||||
virtual void get_digest(byte*) = 0;
|
||||
virtual void get_digest(byte*, const byte*, unsigned int) = 0;
|
||||
virtual void update(const byte*, unsigned int) = 0;
|
||||
|
|
@ -60,6 +61,7 @@ struct Digest : public virtual_base {
|
|||
|
||||
// For use with NULL Digests
|
||||
struct NO_MAC : public Digest {
|
||||
NO_MAC() {}
|
||||
void get_digest(byte*);
|
||||
void get_digest(byte*, const byte*, unsigned int);
|
||||
void update(const byte*, unsigned int);
|
||||
|
|
@ -184,6 +186,7 @@ private:
|
|||
// BulkCipher policy should implement encrypt, decrypt, get block size,
|
||||
// and set keys for encrypt and decrypt
|
||||
struct BulkCipher : public virtual_base {
|
||||
BulkCipher() {}
|
||||
virtual void encrypt(byte*, const byte*, unsigned int) = 0;
|
||||
virtual void decrypt(byte*, const byte*, unsigned int) = 0;
|
||||
virtual void set_encryptKey(const byte*, const byte* = 0) = 0;
|
||||
|
|
@ -197,6 +200,7 @@ struct BulkCipher : public virtual_base {
|
|||
|
||||
// For use with NULL Ciphers
|
||||
struct NO_Cipher : public BulkCipher {
|
||||
NO_Cipher() {}
|
||||
void encrypt(byte*, const byte*, unsigned int) {}
|
||||
void decrypt(byte*, const byte*, unsigned int) {}
|
||||
void set_encryptKey(const byte*, const byte*) {}
|
||||
|
|
@ -318,12 +322,14 @@ struct Auth : public virtual_base {
|
|||
virtual bool verify(const byte*, unsigned int, const byte*,
|
||||
unsigned int) = 0;
|
||||
virtual uint get_signatureLength() const = 0;
|
||||
Auth() {}
|
||||
virtual ~Auth() {}
|
||||
};
|
||||
|
||||
|
||||
// For use with NULL Authentication schemes
|
||||
struct NO_Auth : public Auth {
|
||||
NO_Auth() {}
|
||||
void sign(byte*, const byte*, unsigned int, const RandomPool&) {}
|
||||
bool verify(const byte*, unsigned int, const byte*, unsigned int)
|
||||
{ return true; }
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ struct RecordLayerHeader {
|
|||
|
||||
// base for all messages
|
||||
struct Message : public virtual_base {
|
||||
Message() {}
|
||||
virtual input_buffer& set(input_buffer&) =0;
|
||||
virtual output_buffer& get(output_buffer&) const =0;
|
||||
|
||||
|
|
@ -185,6 +186,7 @@ private:
|
|||
class HandShakeBase : public virtual_base {
|
||||
int length_;
|
||||
public:
|
||||
HandShakeBase() {}
|
||||
int get_length() const;
|
||||
void set_length(int);
|
||||
|
||||
|
|
@ -202,6 +204,7 @@ public:
|
|||
|
||||
|
||||
struct HelloRequest : public HandShakeBase {
|
||||
HelloRequest() {}
|
||||
input_buffer& set(input_buffer& in);
|
||||
output_buffer& get(output_buffer& out) const;
|
||||
|
||||
|
|
@ -335,6 +338,7 @@ private:
|
|||
|
||||
|
||||
struct ServerKeyBase : public virtual_base {
|
||||
ServerKeyBase() {}
|
||||
virtual ~ServerKeyBase() {}
|
||||
virtual void build(SSL&) {}
|
||||
virtual void read(SSL&, input_buffer&) {}
|
||||
|
|
@ -345,15 +349,21 @@ struct ServerKeyBase : public virtual_base {
|
|||
|
||||
// Server random number for FORTEZZA KEA
|
||||
struct Fortezza_Server : public ServerKeyBase {
|
||||
Fortezza_Server() {}
|
||||
opaque r_s_[FORTEZZA_MAX];
|
||||
};
|
||||
|
||||
|
||||
struct SignatureBase : public virtual_base {
|
||||
SignatureBase() {}
|
||||
virtual ~SignatureBase() {}
|
||||
};
|
||||
|
||||
struct anonymous_sa : public SignatureBase {};
|
||||
struct anonymous_sa : public SignatureBase
|
||||
{
|
||||
public:
|
||||
anonymous_sa() {}
|
||||
};
|
||||
|
||||
|
||||
struct Hashes {
|
||||
|
|
@ -363,11 +373,13 @@ struct Hashes {
|
|||
|
||||
|
||||
struct rsa_sa : public SignatureBase {
|
||||
rsa_sa() {}
|
||||
Hashes hashes_;
|
||||
};
|
||||
|
||||
|
||||
struct dsa_sa : public SignatureBase {
|
||||
dsa_sa() {}
|
||||
uint8 sha_[SHA_LEN];
|
||||
};
|
||||
|
||||
|
|
@ -395,6 +407,7 @@ private:
|
|||
|
||||
// Server's RSA exchange
|
||||
struct RSA_Server : public ServerKeyBase {
|
||||
RSA_Server() {}
|
||||
ServerRSAParams params_;
|
||||
opaque* signature_; // signed rsa_sa hashes
|
||||
};
|
||||
|
|
@ -469,6 +482,7 @@ struct PreMasterSecret {
|
|||
|
||||
|
||||
struct ClientKeyBase : public virtual_base {
|
||||
ClientKeyBase() {}
|
||||
virtual ~ClientKeyBase() {}
|
||||
virtual void build(SSL&) {}
|
||||
virtual void read(SSL&, input_buffer&) {}
|
||||
|
|
@ -499,6 +513,7 @@ private:
|
|||
// Fortezza Key Parameters from page 29
|
||||
// hard code lengths cause only used here
|
||||
struct FortezzaKeys : public ClientKeyBase {
|
||||
FortezzaKeys() {}
|
||||
opaque y_c_ [128]; // client's Yc, public value
|
||||
opaque r_c_ [128]; // client's Rc
|
||||
opaque y_signature_ [40]; // DSS signed public key
|
||||
|
|
|
|||
|
|
@ -235,6 +235,7 @@ struct BIGNUM {
|
|||
TaoCrypt::Integer), we need to explicitly state the namespace
|
||||
here to let gcc 2.96 deduce the correct type.
|
||||
*/
|
||||
BIGNUM() {}
|
||||
yaSSL::Integer int_;
|
||||
void assign(const byte* b, uint s) { int_.assign(b,s); }
|
||||
};
|
||||
|
|
|
|||
|
|
@ -557,6 +557,7 @@ void RandomPool::Fill(opaque* dst, uint sz) const
|
|||
|
||||
// Implementation of DSS Authentication
|
||||
struct DSS::DSSImpl {
|
||||
DSSImpl() {}
|
||||
void SetPublic (const byte*, unsigned int);
|
||||
void SetPrivate(const byte*, unsigned int);
|
||||
TaoCrypt::DSA_PublicKey publicKey_;
|
||||
|
|
@ -629,6 +630,7 @@ bool DSS::verify(const byte* sha_digest, unsigned int /* shaSz */,
|
|||
|
||||
// Implementation of RSA key interface
|
||||
struct RSA::RSAImpl {
|
||||
RSAImpl() {}
|
||||
void SetPublic (const byte*, unsigned int);
|
||||
void SetPrivate(const byte*, unsigned int);
|
||||
TaoCrypt::RSA_PublicKey publicKey_;
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ int main(int argc, char** argv)
|
|||
|
||||
const int megs = 5; // how much to test
|
||||
|
||||
const byte key[] =
|
||||
const byte global_key[] =
|
||||
{
|
||||
0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,
|
||||
0xfe,0xde,0xba,0x98,0x76,0x54,0x32,0x10,
|
||||
|
|
@ -81,19 +81,19 @@ const byte iv[] =
|
|||
};
|
||||
|
||||
|
||||
byte plain [1024*1024];
|
||||
byte cipher[1024*1024];
|
||||
byte global_plain [1024*1024];
|
||||
byte global_cipher[1024*1024];
|
||||
|
||||
|
||||
void bench_des()
|
||||
{
|
||||
DES_EDE3_CBC_Encryption enc;
|
||||
enc.SetKey(key, 16, iv);
|
||||
enc.SetKey(global_key, 16, iv);
|
||||
|
||||
double start = current_time();
|
||||
|
||||
for(int i = 0; i < megs; i++)
|
||||
enc.Process(plain, cipher, sizeof(plain));
|
||||
enc.Process(global_plain, global_cipher, sizeof(global_plain));
|
||||
|
||||
double total = current_time() - start;
|
||||
|
||||
|
|
@ -107,12 +107,12 @@ void bench_des()
|
|||
void bench_aes(bool show)
|
||||
{
|
||||
AES_CBC_Encryption enc;
|
||||
enc.SetKey(key, 16, iv);
|
||||
enc.SetKey(global_key, 16, iv);
|
||||
|
||||
double start = current_time();
|
||||
|
||||
for(int i = 0; i < megs; i++)
|
||||
enc.Process(plain, cipher, sizeof(plain));
|
||||
enc.Process(global_plain, global_cipher, sizeof(global_plain));
|
||||
|
||||
double total = current_time() - start;
|
||||
|
||||
|
|
@ -127,12 +127,12 @@ void bench_aes(bool show)
|
|||
void bench_twofish()
|
||||
{
|
||||
Twofish_CBC_Encryption enc;
|
||||
enc.SetKey(key, 16, iv);
|
||||
enc.SetKey(global_key, 16, iv);
|
||||
|
||||
double start = current_time();
|
||||
|
||||
for(int i = 0; i < megs; i++)
|
||||
enc.Process(plain, cipher, sizeof(plain));
|
||||
enc.Process(global_plain, global_cipher, sizeof(global_plain));
|
||||
|
||||
double total = current_time() - start;
|
||||
|
||||
|
|
@ -147,12 +147,12 @@ void bench_twofish()
|
|||
void bench_blowfish()
|
||||
{
|
||||
Blowfish_CBC_Encryption enc;
|
||||
enc.SetKey(key, 16, iv);
|
||||
enc.SetKey(global_key, 16, iv);
|
||||
|
||||
double start = current_time();
|
||||
|
||||
for(int i = 0; i < megs; i++)
|
||||
enc.Process(plain, cipher, sizeof(plain));
|
||||
enc.Process(global_plain, global_cipher, sizeof(global_plain));
|
||||
|
||||
double total = current_time() - start;
|
||||
|
||||
|
|
@ -166,12 +166,12 @@ void bench_blowfish()
|
|||
void bench_arc4()
|
||||
{
|
||||
ARC4 enc;
|
||||
enc.SetKey(key, 16);
|
||||
enc.SetKey(global_key, 16);
|
||||
|
||||
double start = current_time();
|
||||
|
||||
for(int i = 0; i < megs; i++)
|
||||
enc.Process(cipher, plain, sizeof(plain));
|
||||
enc.Process(global_cipher, global_plain, sizeof(global_plain));
|
||||
|
||||
double total = current_time() - start;
|
||||
|
||||
|
|
@ -191,7 +191,7 @@ void bench_md5()
|
|||
|
||||
|
||||
for(int i = 0; i < megs; i++)
|
||||
hash.Update(plain, sizeof(plain));
|
||||
hash.Update(global_plain, sizeof(global_plain));
|
||||
|
||||
hash.Final(digest);
|
||||
|
||||
|
|
@ -213,7 +213,7 @@ void bench_sha()
|
|||
|
||||
|
||||
for(int i = 0; i < megs; i++)
|
||||
hash.Update(plain, sizeof(plain));
|
||||
hash.Update(global_plain, sizeof(global_plain));
|
||||
|
||||
hash.Final(digest);
|
||||
|
||||
|
|
@ -241,7 +241,7 @@ void bench_ripemd()
|
|||
|
||||
|
||||
for(int i = 0; i < megs; i++)
|
||||
hash.Update(plain, sizeof(plain));
|
||||
hash.Update(global_plain, sizeof(global_plain));
|
||||
|
||||
hash.Final(digest);
|
||||
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ class TAOCRYPT_NO_VTABLE AbstractGroup : public virtual_base
|
|||
public:
|
||||
typedef Integer Element;
|
||||
|
||||
AbstractGroup() {}
|
||||
virtual ~AbstractGroup() {}
|
||||
|
||||
virtual bool Equal(const Element &a, const Element &b) const =0;
|
||||
|
|
@ -100,6 +101,7 @@ private:
|
|||
class MultiplicativeGroupT : public AbstractGroup
|
||||
{
|
||||
public:
|
||||
MultiplicativeGroupT() {}
|
||||
const AbstractRing& GetRing() const
|
||||
{return *m_pRing;}
|
||||
|
||||
|
|
@ -151,6 +153,7 @@ class TAOCRYPT_NO_VTABLE AbstractEuclideanDomain
|
|||
: public AbstractRing
|
||||
{
|
||||
public:
|
||||
AbstractEuclideanDomain() {}
|
||||
typedef Integer Element;
|
||||
|
||||
virtual void DivisionAlgorithm(Element &r, Element &q, const Element &a,
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ enum { DES_BLOCK_SIZE = 8, DES_KEY_SIZE = 32 };
|
|||
|
||||
class BasicDES {
|
||||
public:
|
||||
BasicDES() {}
|
||||
void SetKey(const byte*, word32, CipherDir dir);
|
||||
void RawProcessBlock(word32&, word32&) const;
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ namespace TaoCrypt {
|
|||
// HASH
|
||||
class HASH : public virtual_base {
|
||||
public:
|
||||
HASH() {}
|
||||
virtual ~HASH() {}
|
||||
|
||||
virtual void Update(const byte*, word32) = 0;
|
||||
|
|
|
|||
|
|
@ -116,11 +116,11 @@ void HMAC<T>::KeyInnerHash()
|
|||
|
||||
// Update
|
||||
template <class T>
|
||||
void HMAC<T>::Update(const byte* msg, word32 length)
|
||||
void HMAC<T>::Update(const byte* msg_arg, word32 length)
|
||||
{
|
||||
if (!innerHashKeyed_)
|
||||
KeyInnerHash();
|
||||
mac_.Update(msg, length);
|
||||
mac_.Update(msg_arg, length);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -44,8 +44,8 @@ public:
|
|||
typedef int RandomizationParameter;
|
||||
typedef Integer Element;
|
||||
|
||||
ModularArithmetic(const Integer &modulus = Integer::One())
|
||||
: modulus(modulus), result((word)0, modulus.reg_.size()) {}
|
||||
ModularArithmetic(const Integer &modulus_arg = Integer::One())
|
||||
: modulus(modulus_arg), result((word)0, modulus_arg.reg_.size()) {}
|
||||
|
||||
ModularArithmetic(const ModularArithmetic &ma)
|
||||
: AbstractRing(),
|
||||
|
|
|
|||
|
|
@ -48,8 +48,8 @@ public:
|
|||
{ cipher_.Process(c, p, sz); }
|
||||
void SetKey(const byte* k, word32 sz)
|
||||
{ cipher_.SetKey(k, sz, DIR); }
|
||||
void SetKey(const byte* k, word32 sz, const byte* iv)
|
||||
{ cipher_.SetKey(k, sz, DIR); cipher_.SetIV(iv); }
|
||||
void SetKey(const byte* k, word32 sz, const byte* iv_arg)
|
||||
{ cipher_.SetKey(k, sz, DIR); cipher_.SetIV(iv_arg); }
|
||||
private:
|
||||
T cipher_;
|
||||
|
||||
|
|
|
|||
|
|
@ -138,6 +138,7 @@ private:
|
|||
// block type 2 padding
|
||||
class RSA_BlockType2 {
|
||||
public:
|
||||
RSA_BlockType2() {}
|
||||
void Pad(const byte*, word32, byte*, word32,
|
||||
RandomNumberGenerator&) const;
|
||||
word32 UnPad(const byte*, word32, byte*) const;
|
||||
|
|
@ -147,6 +148,7 @@ public:
|
|||
// block type 1 padding
|
||||
class RSA_BlockType1 {
|
||||
public:
|
||||
RSA_BlockType1() {}
|
||||
void Pad(const byte*, word32, byte*, word32,
|
||||
RandomNumberGenerator&) const;
|
||||
word32 UnPad(const byte*, word32, byte*) const;
|
||||
|
|
@ -181,25 +183,27 @@ public:
|
|||
|
||||
// Public Encrypt
|
||||
template<class Pad>
|
||||
void RSA_Encryptor<Pad>::Encrypt(const byte* plain, word32 sz, byte* cipher,
|
||||
RandomNumberGenerator& rng)
|
||||
void RSA_Encryptor<Pad>::Encrypt(const byte* plain_arg, word32 sz,
|
||||
byte* cipher_arg,
|
||||
RandomNumberGenerator& rng_arg)
|
||||
{
|
||||
PK_Lengths lengths(key_.GetModulus());
|
||||
assert(sz <= lengths.FixedMaxPlaintextLength());
|
||||
|
||||
ByteBlock paddedBlock(lengths.PaddedBlockByteLength());
|
||||
padding_.Pad(plain, sz, paddedBlock.get_buffer(),
|
||||
lengths.PaddedBlockBitLength(), rng);
|
||||
padding_.Pad(plain_arg, sz, paddedBlock.get_buffer(),
|
||||
lengths.PaddedBlockBitLength(), rng_arg);
|
||||
|
||||
key_.ApplyFunction(Integer(paddedBlock.get_buffer(), paddedBlock.size())).
|
||||
Encode(cipher, lengths.FixedCiphertextLength());
|
||||
Encode(cipher_arg, lengths.FixedCiphertextLength());
|
||||
}
|
||||
|
||||
|
||||
// Private Decrypt
|
||||
template<class Pad>
|
||||
word32 RSA_Decryptor<Pad>::Decrypt(const byte* cipher, word32 sz, byte* plain,
|
||||
RandomNumberGenerator& rng)
|
||||
word32 RSA_Decryptor<Pad>::Decrypt(const byte* cipher_arg, word32 sz,
|
||||
byte* plain_arg,
|
||||
RandomNumberGenerator& rng_arg)
|
||||
{
|
||||
PK_Lengths lengths(key_.GetModulus());
|
||||
assert(sz == lengths.FixedCiphertextLength());
|
||||
|
|
@ -208,29 +212,29 @@ word32 RSA_Decryptor<Pad>::Decrypt(const byte* cipher, word32 sz, byte* plain,
|
|||
return 0;
|
||||
|
||||
ByteBlock paddedBlock(lengths.PaddedBlockByteLength());
|
||||
Integer x = key_.CalculateInverse(rng, Integer(cipher,
|
||||
Integer x = key_.CalculateInverse(rng_arg, Integer(cipher_arg,
|
||||
lengths.FixedCiphertextLength()).Ref());
|
||||
if (x.ByteCount() > paddedBlock.size())
|
||||
x = Integer::Zero(); // don't return false, prevents timing attack
|
||||
x.Encode(paddedBlock.get_buffer(), paddedBlock.size());
|
||||
return padding_.UnPad(paddedBlock.get_buffer(),
|
||||
lengths.PaddedBlockBitLength(), plain);
|
||||
lengths.PaddedBlockBitLength(), plain_arg);
|
||||
}
|
||||
|
||||
|
||||
// Private SSL type (block 1) Encrypt
|
||||
template<class Pad>
|
||||
void RSA_Decryptor<Pad>::SSL_Sign(const byte* message, word32 sz, byte* sig,
|
||||
RandomNumberGenerator& rng)
|
||||
RandomNumberGenerator& rng_arg)
|
||||
{
|
||||
RSA_PublicKey inverse;
|
||||
inverse.Initialize(key_.GetModulus(), key_.GetPrivateExponent());
|
||||
RSA_Encryptor<RSA_BlockType1> enc(inverse); // SSL Type
|
||||
enc.Encrypt(message, sz, sig, rng);
|
||||
enc.Encrypt(message, sz, sig, rng_arg);
|
||||
}
|
||||
|
||||
|
||||
word32 SSL_Decrypt(const RSA_PublicKey& key, const byte* sig, byte* plain);
|
||||
word32 SSL_Decrypt(const RSA_PublicKey& key, const byte* sig, byte* plain_arg);
|
||||
|
||||
|
||||
// Public SSL type (block 1) Decrypt
|
||||
|
|
@ -238,10 +242,10 @@ template<class Pad>
|
|||
bool RSA_Encryptor<Pad>::SSL_Verify(const byte* message, word32 sz,
|
||||
const byte* sig)
|
||||
{
|
||||
ByteBlock plain(PK_Lengths(key_.GetModulus()).FixedMaxPlaintextLength());
|
||||
SSL_Decrypt(key_, sig, plain.get_buffer());
|
||||
ByteBlock local_plain(PK_Lengths(key_.GetModulus()).FixedMaxPlaintextLength());
|
||||
SSL_Decrypt(key_, sig, local_plain.get_buffer());
|
||||
|
||||
if ( (memcmp(plain.get_buffer(), message, sz)) == 0)
|
||||
if ( (memcmp(local_plain.get_buffer(), message, sz)) == 0)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -238,7 +238,7 @@ void list<T>::push_front(T t)
|
|||
template<typename T>
|
||||
void list<T>::pop_front()
|
||||
{
|
||||
node* front = head_;
|
||||
node* local_front = head_;
|
||||
|
||||
if (head_ == 0)
|
||||
return;
|
||||
|
|
@ -248,8 +248,8 @@ void list<T>::pop_front()
|
|||
head_ = head_->next_;
|
||||
head_->prev_ = 0;
|
||||
}
|
||||
destroy(front);
|
||||
FreeMemory(front);
|
||||
destroy(local_front);
|
||||
FreeMemory(local_front);
|
||||
--sz_;
|
||||
}
|
||||
|
||||
|
|
@ -310,13 +310,13 @@ T list<T>::back() const
|
|||
template<typename T>
|
||||
typename list<T>::node* list<T>::look_up(T t)
|
||||
{
|
||||
node* list = head_;
|
||||
node* local_list = head_;
|
||||
|
||||
if (list == 0) return 0;
|
||||
if (local_list == 0) return 0;
|
||||
|
||||
for (; list; list = list->next_)
|
||||
if (list->value_ == t)
|
||||
return list;
|
||||
for (; local_list; local_list = local_list->next_)
|
||||
if (local_list->value_ == t)
|
||||
return local_list;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -111,13 +111,14 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
|
|||
rounds_ = keylen/4 + 6;
|
||||
|
||||
word32 temp, *rk = key_;
|
||||
unsigned int i=0;
|
||||
|
||||
GetUserKey(BigEndianOrder, rk, keylen/4, userKey, keylen);
|
||||
|
||||
switch(keylen)
|
||||
{
|
||||
case 16:
|
||||
{
|
||||
unsigned int i=0;
|
||||
while (true)
|
||||
{
|
||||
temp = rk[3];
|
||||
|
|
@ -135,8 +136,10 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
|
|||
rk += 4;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
case 24:
|
||||
{
|
||||
unsigned int i=0;
|
||||
while (true) // for (;;) here triggers a bug in VC60 SP4 w/ Pro Pack
|
||||
{
|
||||
temp = rk[ 5];
|
||||
|
|
@ -157,7 +160,10 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
|
|||
}
|
||||
break;
|
||||
|
||||
}
|
||||
case 32:
|
||||
{
|
||||
unsigned int i=0;
|
||||
while (true)
|
||||
{
|
||||
temp = rk[ 7];
|
||||
|
|
@ -186,6 +192,7 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
|
|||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (dir_ == DECRYPTION)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -189,10 +189,10 @@ Integer AbstractGroup::CascadeScalarMultiply(const Element &x,
|
|||
|
||||
struct WindowSlider
|
||||
{
|
||||
WindowSlider(const Integer &exp, bool fastNegate,
|
||||
WindowSlider(const Integer &exp_arg, bool fastNegate_arg,
|
||||
unsigned int windowSizeIn=0)
|
||||
: exp(exp), windowModulus(Integer::One()), windowSize(windowSizeIn),
|
||||
windowBegin(0), fastNegate(fastNegate), firstTime(true),
|
||||
: exp(exp_arg), windowModulus(Integer::One()), windowSize(windowSizeIn),
|
||||
windowBegin(0), fastNegate(fastNegate_arg), firstTime(true),
|
||||
finished(false)
|
||||
{
|
||||
if (windowSize == 0)
|
||||
|
|
|
|||
|
|
@ -741,8 +741,8 @@ void CertDecoder::GetName(NameType nt)
|
|||
else {
|
||||
// skip
|
||||
source_.advance(oidSz + 1);
|
||||
word32 length = GetLength(source_);
|
||||
source_.advance(length);
|
||||
word32 length2 = GetLength(source_);
|
||||
source_.advance(length2);
|
||||
}
|
||||
}
|
||||
ptr[idx++] = 0;
|
||||
|
|
|
|||
|
|
@ -137,20 +137,20 @@ const byte msgTmp[] = { // "now is the time for all " w/o trailing 0
|
|||
0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20
|
||||
};
|
||||
|
||||
byte* msg = 0; // for block cipher input
|
||||
byte* plain = 0; // for cipher decrypt comparison
|
||||
byte* cipher = 0; // block output
|
||||
byte* global_msg = 0; // for block cipher input
|
||||
byte* global_plain = 0; // for cipher decrypt comparison
|
||||
byte* global_cipher = 0; // block output
|
||||
|
||||
|
||||
void taocrypt_test(void* args)
|
||||
{
|
||||
((func_args*)args)->return_code = -1; // error state
|
||||
|
||||
msg = NEW_TC byte[24];
|
||||
plain = NEW_TC byte[24];
|
||||
cipher = NEW_TC byte[24];
|
||||
global_msg = NEW_TC byte[24];
|
||||
global_plain = NEW_TC byte[24];
|
||||
global_cipher = NEW_TC byte[24];
|
||||
|
||||
memcpy(msg, msgTmp, 24);
|
||||
memcpy(global_msg, msgTmp, 24);
|
||||
|
||||
int ret = 0;
|
||||
if ( (ret = sha_test()) )
|
||||
|
|
@ -228,9 +228,9 @@ void taocrypt_test(void* args)
|
|||
else
|
||||
printf( "PBKDF2 test passed!\n");
|
||||
|
||||
tcArrayDelete(cipher);
|
||||
tcArrayDelete(plain);
|
||||
tcArrayDelete(msg);
|
||||
tcArrayDelete(global_cipher);
|
||||
tcArrayDelete(global_plain);
|
||||
tcArrayDelete(global_msg);
|
||||
|
||||
((func_args*)args)->return_code = ret;
|
||||
}
|
||||
|
|
@ -595,11 +595,11 @@ int des_test()
|
|||
const byte iv[] = { 0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef };
|
||||
|
||||
enc.SetKey(key, sizeof(key));
|
||||
enc.Process(cipher, msg, sz);
|
||||
enc.Process(global_cipher, global_msg, sz);
|
||||
dec.SetKey(key, sizeof(key));
|
||||
dec.Process(plain, cipher, sz);
|
||||
dec.Process(global_plain, global_cipher, sz);
|
||||
|
||||
if (memcmp(plain, msg, sz))
|
||||
if (memcmp(global_plain, global_msg, sz))
|
||||
return -50;
|
||||
|
||||
const byte verify1[] =
|
||||
|
|
@ -609,7 +609,7 @@ int des_test()
|
|||
0x89,0x3d,0x51,0xec,0x4b,0x56,0x3b,0x53
|
||||
};
|
||||
|
||||
if (memcmp(cipher, verify1, sz))
|
||||
if (memcmp(global_cipher, verify1, sz))
|
||||
return -51;
|
||||
|
||||
// CBC mode
|
||||
|
|
@ -617,11 +617,11 @@ int des_test()
|
|||
DES_CBC_Decryption dec2;
|
||||
|
||||
enc2.SetKey(key, sizeof(key), iv);
|
||||
enc2.Process(cipher, msg, sz);
|
||||
enc2.Process(global_cipher, global_msg, sz);
|
||||
dec2.SetKey(key, sizeof(key), iv);
|
||||
dec2.Process(plain, cipher, sz);
|
||||
dec2.Process(global_plain, global_cipher, sz);
|
||||
|
||||
if (memcmp(plain, msg, sz))
|
||||
if (memcmp(global_plain, global_msg, sz))
|
||||
return -52;
|
||||
|
||||
const byte verify2[] =
|
||||
|
|
@ -631,7 +631,7 @@ int des_test()
|
|||
0x15,0x85,0xb3,0x22,0x4b,0x86,0x2b,0x4b
|
||||
};
|
||||
|
||||
if (memcmp(cipher, verify2, sz))
|
||||
if (memcmp(global_cipher, verify2, sz))
|
||||
return -53;
|
||||
|
||||
// EDE3 CBC mode
|
||||
|
|
@ -653,11 +653,11 @@ int des_test()
|
|||
};
|
||||
|
||||
enc3.SetKey(key3, sizeof(key3), iv3);
|
||||
enc3.Process(cipher, msg, sz);
|
||||
enc3.Process(global_cipher, global_msg, sz);
|
||||
dec3.SetKey(key3, sizeof(key3), iv3);
|
||||
dec3.Process(plain, cipher, sz);
|
||||
dec3.Process(global_plain, global_cipher, sz);
|
||||
|
||||
if (memcmp(plain, msg, sz))
|
||||
if (memcmp(global_plain, global_msg, sz))
|
||||
return -54;
|
||||
|
||||
const byte verify3[] =
|
||||
|
|
@ -667,7 +667,7 @@ int des_test()
|
|||
0x18,0xbc,0xbb,0x6d,0xd2,0xb1,0x16,0xda
|
||||
};
|
||||
|
||||
if (memcmp(cipher, verify3, sz))
|
||||
if (memcmp(global_cipher, verify3, sz))
|
||||
return -55;
|
||||
|
||||
return 0;
|
||||
|
|
@ -686,10 +686,10 @@ int aes_test()
|
|||
enc.SetKey(key, bs, iv);
|
||||
dec.SetKey(key, bs, iv);
|
||||
|
||||
enc.Process(cipher, msg, bs);
|
||||
dec.Process(plain, cipher, bs);
|
||||
enc.Process(global_cipher, global_msg, bs);
|
||||
dec.Process(global_plain, global_cipher, bs);
|
||||
|
||||
if (memcmp(plain, msg, bs))
|
||||
if (memcmp(global_plain, global_msg, bs))
|
||||
return -60;
|
||||
|
||||
const byte verify[] =
|
||||
|
|
@ -698,7 +698,7 @@ int aes_test()
|
|||
0x2c,0xcc,0x9d,0x46,0x77,0xa2,0x33,0xcb
|
||||
};
|
||||
|
||||
if (memcmp(cipher, verify, bs))
|
||||
if (memcmp(global_cipher, verify, bs))
|
||||
return -61;
|
||||
|
||||
AES_ECB_Encryption enc2;
|
||||
|
|
@ -707,10 +707,10 @@ int aes_test()
|
|||
enc2.SetKey(key, bs, iv);
|
||||
dec2.SetKey(key, bs, iv);
|
||||
|
||||
enc2.Process(cipher, msg, bs);
|
||||
dec2.Process(plain, cipher, bs);
|
||||
enc2.Process(global_cipher, global_msg, bs);
|
||||
dec2.Process(global_plain, global_cipher, bs);
|
||||
|
||||
if (memcmp(plain, msg, bs))
|
||||
if (memcmp(global_plain, global_msg, bs))
|
||||
return -62;
|
||||
|
||||
const byte verify2[] =
|
||||
|
|
@ -719,7 +719,7 @@ int aes_test()
|
|||
0xc8,0x8c,0x33,0x3b,0xb5,0x8f,0x85,0xd1
|
||||
};
|
||||
|
||||
if (memcmp(cipher, verify2, bs))
|
||||
if (memcmp(global_cipher, verify2, bs))
|
||||
return -63;
|
||||
|
||||
return 0;
|
||||
|
|
@ -738,10 +738,10 @@ int twofish_test()
|
|||
enc.SetKey(key, bs, iv);
|
||||
dec.SetKey(key, bs, iv);
|
||||
|
||||
enc.Process(cipher, msg, bs);
|
||||
dec.Process(plain, cipher, bs);
|
||||
enc.Process(global_cipher, global_msg, bs);
|
||||
dec.Process(global_plain, global_cipher, bs);
|
||||
|
||||
if (memcmp(plain, msg, bs))
|
||||
if (memcmp(global_plain, global_msg, bs))
|
||||
return -60;
|
||||
|
||||
const byte verify[] =
|
||||
|
|
@ -750,7 +750,7 @@ int twofish_test()
|
|||
0x21,0x03,0x58,0x79,0x5F,0x02,0x27,0x2C
|
||||
};
|
||||
|
||||
if (memcmp(cipher, verify, bs))
|
||||
if (memcmp(global_cipher, verify, bs))
|
||||
return -61;
|
||||
|
||||
Twofish_ECB_Encryption enc2;
|
||||
|
|
@ -759,10 +759,10 @@ int twofish_test()
|
|||
enc2.SetKey(key, bs, iv);
|
||||
dec2.SetKey(key, bs, iv);
|
||||
|
||||
enc2.Process(cipher, msg, bs);
|
||||
dec2.Process(plain, cipher, bs);
|
||||
enc2.Process(global_cipher, global_msg, bs);
|
||||
dec2.Process(global_plain, global_cipher, bs);
|
||||
|
||||
if (memcmp(plain, msg, bs))
|
||||
if (memcmp(global_plain, global_msg, bs))
|
||||
return -62;
|
||||
|
||||
const byte verify2[] =
|
||||
|
|
@ -771,7 +771,7 @@ int twofish_test()
|
|||
0xC4,0xCD,0x6B,0x91,0x14,0xC5,0x3A,0x09
|
||||
};
|
||||
|
||||
if (memcmp(cipher, verify2, bs))
|
||||
if (memcmp(global_cipher, verify2, bs))
|
||||
return -63;
|
||||
|
||||
return 0;
|
||||
|
|
@ -790,10 +790,10 @@ int blowfish_test()
|
|||
enc.SetKey(key, 16, iv);
|
||||
dec.SetKey(key, 16, iv);
|
||||
|
||||
enc.Process(cipher, msg, bs * 2);
|
||||
dec.Process(plain, cipher, bs * 2);
|
||||
enc.Process(global_cipher, global_msg, bs * 2);
|
||||
dec.Process(global_plain, global_cipher, bs * 2);
|
||||
|
||||
if (memcmp(plain, msg, bs))
|
||||
if (memcmp(global_plain, global_msg, bs))
|
||||
return -60;
|
||||
|
||||
const byte verify[] =
|
||||
|
|
@ -802,7 +802,7 @@ int blowfish_test()
|
|||
0xBC,0xD9,0x08,0xC4,0x94,0x6C,0x89,0xA3
|
||||
};
|
||||
|
||||
if (memcmp(cipher, verify, bs))
|
||||
if (memcmp(global_cipher, verify, bs))
|
||||
return -61;
|
||||
|
||||
Blowfish_ECB_Encryption enc2;
|
||||
|
|
@ -811,10 +811,10 @@ int blowfish_test()
|
|||
enc2.SetKey(key, 16, iv);
|
||||
dec2.SetKey(key, 16, iv);
|
||||
|
||||
enc2.Process(cipher, msg, bs * 2);
|
||||
dec2.Process(plain, cipher, bs * 2);
|
||||
enc2.Process(global_cipher, global_msg, bs * 2);
|
||||
dec2.Process(global_plain, global_cipher, bs * 2);
|
||||
|
||||
if (memcmp(plain, msg, bs))
|
||||
if (memcmp(global_plain, global_msg, bs))
|
||||
return -62;
|
||||
|
||||
const byte verify2[] =
|
||||
|
|
@ -823,7 +823,7 @@ int blowfish_test()
|
|||
0x8F,0xCE,0x39,0x32,0xDE,0xD7,0xBC,0x5B
|
||||
};
|
||||
|
||||
if (memcmp(cipher, verify2, bs))
|
||||
if (memcmp(global_cipher, verify2, bs))
|
||||
return -63;
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -141,16 +141,17 @@ int test_openSSL_des()
|
|||
/* test des encrypt/decrypt */
|
||||
char data[] = "this is my data ";
|
||||
int dataSz = strlen(data);
|
||||
DES_key_schedule key[3];
|
||||
DES_key_schedule local_key[3];
|
||||
byte iv[8];
|
||||
EVP_BytesToKey(EVP_des_ede3_cbc(), EVP_md5(), NULL, (byte*)data, dataSz, 1,
|
||||
(byte*)key, iv);
|
||||
(byte*)local_key, iv);
|
||||
|
||||
byte cipher[16];
|
||||
DES_ede3_cbc_encrypt((byte*)data, cipher, dataSz, &key[0], &key[1],
|
||||
&key[2], &iv, true);
|
||||
DES_ede3_cbc_encrypt((byte*)data, cipher, dataSz,
|
||||
&local_key[0], &local_key[1],
|
||||
&local_key[2], &iv, true);
|
||||
byte plain[16];
|
||||
DES_ede3_cbc_encrypt(cipher, plain, 16, &key[0], &key[1], &key[2],
|
||||
&iv, false);
|
||||
DES_ede3_cbc_encrypt(cipher, plain, 16, &local_key[0], &local_key[1],
|
||||
&local_key[2], &iv, false);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue