summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorunknown <monty@mysql.com/narttu.mysql.fi>2007-01-22 14:04:40 +0200
committerunknown <monty@mysql.com/narttu.mysql.fi>2007-01-22 14:04:40 +0200
commit03e4b98c7b22203c911eb2396cef52f44768f6ef (patch)
treedb1cb9732cc2b568c4a56c3f6d11cf8f4d5250b6 /extra
parent644e6c7fdd75b9e6e869927d956e38964eb95494 (diff)
parentaf583b828303e5ad7a285b54d60fb1b3669ee2a9 (diff)
downloadmariadb-git-03e4b98c7b22203c911eb2396cef52f44768f6ef.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0 BitKeeper/etc/ignore: added mysql-test/mysql-test-run-shell client/mysql.cc: Auto merged client/mysql_upgrade.c: Auto merged client/mysqlbinlog.cc: Auto merged client/mysqldump.c: Auto merged client/mysqltest.c: Auto merged client/sql_string.cc: Auto merged client/sql_string.h: Auto merged extra/my_print_defaults.c: Auto merged include/m_ctype.h: Auto merged include/my_pthread.h: Auto merged include/my_sys.h: Auto merged include/my_time.h: Auto merged include/mysql.h: Auto merged libmysql/libmysql.c: Auto merged libmysqld/lib_sql.cc: Auto merged myisam/ft_boolean_search.c: Auto merged myisam/mi_open.c: Auto merged myisam/mi_search.c: Auto merged myisam/mi_unique.c: Auto merged myisam/myisampack.c: Auto merged myisam/rt_index.c: Auto merged myisam/sort.c: Auto merged mysql-test/t/mysql.test: Auto merged mysql-test/t/mysqltest.test: Auto merged mysys/default.c: Auto merged mysys/mf_iocache2.c: Auto merged mysys/mf_keycache.c: Auto merged mysys/my_bitmap.c: Auto merged mysys/sha1.c: Auto merged ndb/include/kernel/signaldata/ArbitSignalData.hpp: Auto merged ndb/include/kernel/signaldata/DictTabInfo.hpp: Auto merged ndb/include/ndbapi/NdbReceiver.hpp: Auto merged ndb/include/transporter/TransporterDefinitions.hpp: Auto merged ndb/include/util/InputStream.hpp: Auto merged ndb/include/util/OutputStream.hpp: Auto merged ndb/include/util/SimpleProperties.hpp: Auto merged ndb/include/util/SocketAuthenticator.hpp: Auto merged ndb/include/util/SocketServer.hpp: Auto merged ndb/src/common/mgmcommon/ConfigRetriever.cpp: Auto merged ndb/src/common/portlib/NdbTick.c: Auto merged ndb/src/common/transporter/SHM_Transporter.cpp: Auto merged ndb/src/common/transporter/TCP_Transporter.cpp: Auto merged ndb/src/common/transporter/TCP_Transporter.hpp: Auto merged ndb/src/common/transporter/Transporter.cpp: Auto merged ndb/src/common/transporter/TransporterRegistry.cpp: Auto merged ndb/src/common/util/Bitmask.cpp: Auto merged ndb/src/common/util/ConfigValues.cpp: Auto merged ndb/src/common/util/File.cpp: Auto merged ndb/src/common/util/Properties.cpp: Auto merged ndb/src/common/util/SocketClient.cpp: Auto merged ndb/src/common/util/random.c: Auto merged ndb/src/common/util/socket_io.cpp: Auto merged ndb/src/cw/cpcd/APIService.cpp: Auto merged ndb/src/cw/cpcd/main.cpp: Auto merged ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp: Auto merged ndb/src/kernel/blocks/dbdict/Dbdict.cpp: Auto merged ndb/src/kernel/blocks/dbdict/Dbdict.hpp: Auto merged ndb/src/kernel/blocks/dbdih/Dbdih.hpp: Auto merged ndb/src/kernel/blocks/dblqh/Dblqh.hpp: Auto merged ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Auto merged ndb/src/kernel/blocks/dbtc/Dbtc.hpp: Auto merged ndb/src/kernel/blocks/dbtup/Dbtup.hpp: Auto merged ndb/src/kernel/blocks/dbtup/DbtupScan.cpp: Auto merged ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp: Auto merged ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp: Auto merged ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp: Auto merged ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp: Auto merged ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: Auto merged ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp: Auto merged ndb/src/kernel/blocks/qmgr/Qmgr.hpp: Auto merged ndb/src/kernel/blocks/qmgr/QmgrMain.cpp: Auto merged ndb/src/kernel/blocks/suma/Suma.cpp: Auto merged ndb/src/kernel/blocks/suma/Suma.hpp: Auto merged ndb/src/kernel/vm/MetaData.hpp: Auto merged ndb/src/mgmapi/LocalConfig.cpp: Auto merged ndb/src/mgmapi/mgmapi.cpp: Auto merged ndb/src/mgmclient/CommandInterpreter.cpp: Auto merged ndb/src/mgmsrv/ConfigInfo.cpp: Auto merged ndb/src/mgmsrv/ConfigInfo.hpp: Auto merged ndb/src/mgmsrv/InitConfigFileParser.cpp: Auto merged ndb/src/mgmsrv/MgmtSrvr.cpp: Auto merged ndb/src/mgmsrv/MgmtSrvr.hpp: Auto merged ndb/src/mgmsrv/Services.cpp: Auto merged ndb/src/mgmsrv/main.cpp: Auto merged ndb/src/ndbapi/ClusterMgr.hpp: Auto merged ndb/src/ndbapi/Ndb.cpp: Auto merged ndb/src/ndbapi/NdbBlob.cpp: Auto merged ndb/src/ndbapi/NdbDictionaryImpl.cpp: Auto merged ndb/src/ndbapi/NdbIndexOperation.cpp: Auto merged ndb/src/ndbapi/NdbOperationDefine.cpp: Auto merged ndb/src/ndbapi/NdbOperationExec.cpp: Auto merged ndb/src/ndbapi/NdbOperationSearch.cpp: Auto merged ndb/src/ndbapi/NdbScanFilter.cpp: Auto merged ndb/src/ndbapi/NdbScanOperation.cpp: Auto merged ndb/src/ndbapi/SignalSender.cpp: Auto merged ndb/src/ndbapi/ndb_cluster_connection.cpp: Auto merged ndb/tools/delete_all.cpp: Auto merged ndb/tools/desc.cpp: Auto merged ndb/tools/drop_index.cpp: Auto merged ndb/tools/drop_tab.cpp: Auto merged ndb/tools/listTables.cpp: Auto merged ndb/tools/ndb_config.cpp: Auto merged ndb/tools/restore/Restore.hpp: Auto merged ndb/tools/restore/consumer.hpp: Auto merged ndb/tools/restore/restore_main.cpp: Auto merged ndb/tools/select_all.cpp: Auto merged ndb/tools/select_count.cpp: Auto merged server-tools/instance-manager/commands.h: Auto merged server-tools/instance-manager/guardian.cc: Auto merged server-tools/instance-manager/instance_options.cc: Auto merged server-tools/instance-manager/mysql_connection.cc: Auto merged server-tools/instance-manager/options.cc: Auto merged server-tools/instance-manager/options.h: Auto merged server-tools/instance-manager/parse.cc: Auto merged server-tools/instance-manager/user_map.cc: Auto merged server-tools/instance-manager/user_map.h: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/filesort.cc: Auto merged sql/ha_archive.cc: Auto merged sql/ha_archive.h: Auto merged sql/ha_federated.cc: Auto merged sql/ha_heap.cc: Auto merged sql/ha_myisam.cc: Auto merged sql/ha_myisammrg.cc: Auto merged sql/ha_ndbcluster.cc: Auto merged sql/handler.cc: Auto merged sql/item.cc: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_cmpfunc.h: Auto merged sql/item_func.cc: Auto merged sql/item_geofunc.cc: Auto merged sql/item_row.h: Auto merged sql/item_strfunc.cc: Auto merged sql/item_subselect.cc: Auto merged sql/item_subselect.h: Auto merged sql/item_sum.cc: Auto merged sql/item_timefunc.cc: Auto merged sql/log.cc: Auto merged sql/log_event.cc: Auto merged sql/log_event.h: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/net_serv.cc: Auto merged sql/opt_range.cc: Auto merged sql/opt_range.h: Auto merged sql/password.c: Auto merged sql/protocol.cc: Auto merged sql/repl_failsafe.cc: Auto merged sql/set_var.cc: Auto merged sql/set_var.h: Auto merged sql/slave.cc: Auto merged sql/sp.cc: Auto merged sql/sp_head.cc: Auto merged sql/sp_head.h: Auto merged sql/spatial.cc: Auto merged sql/spatial.h: Auto merged sql/sql_cache.h: Auto merged sql/sql_class.cc: Auto merged sql/sql_derived.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_lex.cc: Auto merged sql/sql_lex.h: Auto merged sql/sql_load.cc: Auto merged sql/sql_prepare.cc: Auto merged sql-common/client.c: Auto merged sql-common/my_time.c: Auto merged sql/sql_select.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_string.cc: Auto merged sql/sql_string.h: Auto merged sql/sql_table.cc: Auto merged sql/sql_trigger.cc: Auto merged sql/sql_trigger.h: Auto merged sql/sql_union.cc: Auto merged sql/sql_update.cc: Auto merged sql/sql_view.cc: Auto merged sql/sql_yacc.yy: Auto merged sql/table.cc: Auto merged sql/tztime.cc: Auto merged sql/unireg.cc: Auto merged strings/ctype-bin.c: Auto merged strings/ctype-cp932.c: Auto merged strings/ctype-eucjpms.c: Auto merged strings/ctype-mb.c: Auto merged strings/ctype-simple.c: Auto merged strings/ctype-sjis.c: Auto merged strings/ctype-uca.c: Auto merged strings/ctype-ujis.c: Auto merged strings/ctype-utf8.c: Auto merged strings/decimal.c: Auto merged strings/my_vsnprintf.c: Auto merged tests/mysql_client_test.c: Auto merged mysql-test/t/mysqlbinlog.test: Manual merge sql/sql_class.h: Manual merge sql/sql_parse.cc: Manual merge
Diffstat (limited to 'extra')
-rw-r--r--extra/my_print_defaults.c9
-rw-r--r--extra/yassl/include/buffer.hpp3
-rw-r--r--extra/yassl/include/crypto_wrapper.hpp6
-rw-r--r--extra/yassl/include/yassl_imp.hpp17
-rw-r--r--extra/yassl/include/yassl_int.hpp1
-rw-r--r--extra/yassl/src/crypto_wrapper.cpp2
-rw-r--r--extra/yassl/taocrypt/benchmark/benchmark.cpp32
-rw-r--r--extra/yassl/taocrypt/include/algebra.hpp3
-rw-r--r--extra/yassl/taocrypt/include/des.hpp1
-rw-r--r--extra/yassl/taocrypt/include/hash.hpp1
-rw-r--r--extra/yassl/taocrypt/include/hmac.hpp4
-rw-r--r--extra/yassl/taocrypt/include/modarith.hpp4
-rw-r--r--extra/yassl/taocrypt/include/modes.hpp4
-rw-r--r--extra/yassl/taocrypt/include/rsa.hpp34
-rw-r--r--extra/yassl/taocrypt/mySTL/list.hpp16
-rw-r--r--extra/yassl/taocrypt/src/aes.cpp11
-rw-r--r--extra/yassl/taocrypt/src/algebra.cpp6
-rw-r--r--extra/yassl/taocrypt/src/asn.cpp4
-rw-r--r--extra/yassl/taocrypt/test/test.cpp92
-rw-r--r--extra/yassl/testsuite/testsuite.cpp13
20 files changed, 154 insertions, 109 deletions
diff --git a/extra/my_print_defaults.c b/extra/my_print_defaults.c
index af739ae590b..eb077f91ece 100644
--- a/extra/my_print_defaults.c
+++ b/extra/my_print_defaults.c
@@ -48,15 +48,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},
diff --git a/extra/yassl/include/buffer.hpp b/extra/yassl/include/buffer.hpp
index c2709a8c847..43c1d1daf38 100644
--- a/extra/yassl/include/buffer.hpp
+++ b/extra/yassl/include/buffer.hpp
@@ -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
{
diff --git a/extra/yassl/include/crypto_wrapper.hpp b/extra/yassl/include/crypto_wrapper.hpp
index 83cf3d26398..5a7d7a7a133 100644
--- a/extra/yassl/include/crypto_wrapper.hpp
+++ b/extra/yassl/include/crypto_wrapper.hpp
@@ -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; }
diff --git a/extra/yassl/include/yassl_imp.hpp b/extra/yassl/include/yassl_imp.hpp
index f51a902b2a5..e9f4a1551ae 100644
--- a/extra/yassl/include/yassl_imp.hpp
+++ b/extra/yassl/include/yassl_imp.hpp
@@ -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;
@@ -184,6 +185,7 @@ private:
class HandShakeBase : public virtual_base {
int length_;
public:
+ HandShakeBase() {}
int get_length() const;
void set_length(int);
@@ -201,6 +203,7 @@ public:
struct HelloRequest : public HandShakeBase {
+ HelloRequest() {}
input_buffer& set(input_buffer& in);
output_buffer& get(output_buffer& out) const;
@@ -334,6 +337,7 @@ private:
struct ServerKeyBase : public virtual_base {
+ ServerKeyBase() {}
virtual ~ServerKeyBase() {}
virtual void build(SSL&) {}
virtual void read(SSL&, input_buffer&) {}
@@ -344,15 +348,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 {
@@ -362,11 +372,13 @@ struct Hashes {
struct rsa_sa : public SignatureBase {
+ rsa_sa() {}
Hashes hashes_;
};
struct dsa_sa : public SignatureBase {
+ dsa_sa() {}
uint8 sha_[SHA_LEN];
};
@@ -394,6 +406,7 @@ private:
// Server's RSA exchange
struct RSA_Server : public ServerKeyBase {
+ RSA_Server() {}
ServerRSAParams params_;
opaque* signature_; // signed rsa_sa hashes
};
@@ -468,6 +481,7 @@ struct PreMasterSecret {
struct ClientKeyBase : public virtual_base {
+ ClientKeyBase() {}
virtual ~ClientKeyBase() {}
virtual void build(SSL&) {}
virtual void read(SSL&, input_buffer&) {}
@@ -498,6 +512,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
diff --git a/extra/yassl/include/yassl_int.hpp b/extra/yassl/include/yassl_int.hpp
index 4a3c0ba4e20..e7d67978212 100644
--- a/extra/yassl/include/yassl_int.hpp
+++ b/extra/yassl/include/yassl_int.hpp
@@ -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); }
};
diff --git a/extra/yassl/src/crypto_wrapper.cpp b/extra/yassl/src/crypto_wrapper.cpp
index 7344a70b367..9f9d95d4046 100644
--- a/extra/yassl/src/crypto_wrapper.cpp
+++ b/extra/yassl/src/crypto_wrapper.cpp
@@ -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_;
diff --git a/extra/yassl/taocrypt/benchmark/benchmark.cpp b/extra/yassl/taocrypt/benchmark/benchmark.cpp
index bb725a90187..dd9d1b1ff0d 100644
--- a/extra/yassl/taocrypt/benchmark/benchmark.cpp
+++ b/extra/yassl/taocrypt/benchmark/benchmark.cpp
@@ -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);
diff --git a/extra/yassl/taocrypt/include/algebra.hpp b/extra/yassl/taocrypt/include/algebra.hpp
index 9cfbcf06ece..54fa809205c 100644
--- a/extra/yassl/taocrypt/include/algebra.hpp
+++ b/extra/yassl/taocrypt/include/algebra.hpp
@@ -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;
@@ -101,6 +102,7 @@ private:
class MultiplicativeGroupT : public AbstractGroup
{
public:
+ MultiplicativeGroupT() {}
const AbstractRing& GetRing() const
{return *m_pRing;}
@@ -152,6 +154,7 @@ class TAOCRYPT_NO_VTABLE AbstractEuclideanDomain
: public AbstractRing
{
public:
+ AbstractEuclideanDomain() {}
typedef Integer Element;
virtual void DivisionAlgorithm(Element &r, Element &q, const Element &a,
diff --git a/extra/yassl/taocrypt/include/des.hpp b/extra/yassl/taocrypt/include/des.hpp
index 19273821f98..3db15f570f8 100644
--- a/extra/yassl/taocrypt/include/des.hpp
+++ b/extra/yassl/taocrypt/include/des.hpp
@@ -48,6 +48,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:
diff --git a/extra/yassl/taocrypt/include/hash.hpp b/extra/yassl/taocrypt/include/hash.hpp
index e3030088e0e..6885e0f35b5 100644
--- a/extra/yassl/taocrypt/include/hash.hpp
+++ b/extra/yassl/taocrypt/include/hash.hpp
@@ -38,6 +38,7 @@ namespace TaoCrypt {
// HASH
class HASH : public virtual_base {
public:
+ HASH() {}
virtual ~HASH() {}
virtual void Update(const byte*, word32) = 0;
diff --git a/extra/yassl/taocrypt/include/hmac.hpp b/extra/yassl/taocrypt/include/hmac.hpp
index b710c3aa499..7ea4cabbd47 100644
--- a/extra/yassl/taocrypt/include/hmac.hpp
+++ b/extra/yassl/taocrypt/include/hmac.hpp
@@ -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);
}
diff --git a/extra/yassl/taocrypt/include/modarith.hpp b/extra/yassl/taocrypt/include/modarith.hpp
index 47b91560657..425ab22dba0 100644
--- a/extra/yassl/taocrypt/include/modarith.hpp
+++ b/extra/yassl/taocrypt/include/modarith.hpp
@@ -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(),
diff --git a/extra/yassl/taocrypt/include/modes.hpp b/extra/yassl/taocrypt/include/modes.hpp
index d77f855385c..29edfaaa8d2 100644
--- a/extra/yassl/taocrypt/include/modes.hpp
+++ b/extra/yassl/taocrypt/include/modes.hpp
@@ -49,8 +49,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_;
diff --git a/extra/yassl/taocrypt/include/rsa.hpp b/extra/yassl/taocrypt/include/rsa.hpp
index c33e21b76a3..852a5785d46 100644
--- a/extra/yassl/taocrypt/include/rsa.hpp
+++ b/extra/yassl/taocrypt/include/rsa.hpp
@@ -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,11 +242,11 @@ template<class Pad>
bool RSA_Encryptor<Pad>::SSL_Verify(const byte* message, word32 sz,
const byte* sig)
{
- ByteBlock plain(PK_Lengths(key_.GetModulus()).FixedMaxPlaintextLength());
- if (SSL_Decrypt(key_, sig, plain.get_buffer()) != sz)
+ ByteBlock local_plain(PK_Lengths(key_.GetModulus()).FixedMaxPlaintextLength());
+ if (SSL_Decrypt(key_, sig, local_plain.get_buffer()) != sz)
return false; // not right justified or bad padding
- if ( (memcmp(plain.get_buffer(), message, sz)) == 0)
+ if ( (memcmp(local_plain.get_buffer(), message, sz)) == 0)
return true;
return false;
}
diff --git a/extra/yassl/taocrypt/mySTL/list.hpp b/extra/yassl/taocrypt/mySTL/list.hpp
index 831c5bbbbbd..1313e0427bb 100644
--- a/extra/yassl/taocrypt/mySTL/list.hpp
+++ b/extra/yassl/taocrypt/mySTL/list.hpp
@@ -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;
}
diff --git a/extra/yassl/taocrypt/src/aes.cpp b/extra/yassl/taocrypt/src/aes.cpp
index 2940f06c074..02bd0b8611f 100644
--- a/extra/yassl/taocrypt/src/aes.cpp
+++ b/extra/yassl/taocrypt/src/aes.cpp
@@ -97,13 +97,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];
@@ -121,8 +122,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];
@@ -143,7 +146,10 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
}
break;
+ }
case 32:
+ {
+ unsigned int i=0;
while (true)
{
temp = rk[ 7];
@@ -172,6 +178,7 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
}
break;
}
+ }
if (dir_ == DECRYPTION)
{
diff --git a/extra/yassl/taocrypt/src/algebra.cpp b/extra/yassl/taocrypt/src/algebra.cpp
index 76c4e99323d..4e6310ad8f4 100644
--- a/extra/yassl/taocrypt/src/algebra.cpp
+++ b/extra/yassl/taocrypt/src/algebra.cpp
@@ -193,10 +193,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)
diff --git a/extra/yassl/taocrypt/src/asn.cpp b/extra/yassl/taocrypt/src/asn.cpp
index 3dc3638d85f..4d743bcc8a0 100644
--- a/extra/yassl/taocrypt/src/asn.cpp
+++ b/extra/yassl/taocrypt/src/asn.cpp
@@ -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;
diff --git a/extra/yassl/taocrypt/test/test.cpp b/extra/yassl/taocrypt/test/test.cpp
index 9e3ef709a78..abd6324416d 100644
--- a/extra/yassl/taocrypt/test/test.cpp
+++ b/extra/yassl/taocrypt/test/test.cpp
@@ -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;
}
@@ -597,11 +597,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[] =
@@ -611,7 +611,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
@@ -619,11 +619,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[] =
@@ -633,7 +633,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
@@ -655,11 +655,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[] =
@@ -669,7 +669,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;
@@ -688,10 +688,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[] =
@@ -700,7 +700,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;
@@ -709,10 +709,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[] =
@@ -721,7 +721,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;
@@ -740,10 +740,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[] =
@@ -752,7 +752,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;
@@ -761,10 +761,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[] =
@@ -773,7 +773,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;
@@ -792,10 +792,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[] =
@@ -804,7 +804,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;
@@ -813,10 +813,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[] =
@@ -825,7 +825,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;
diff --git a/extra/yassl/testsuite/testsuite.cpp b/extra/yassl/testsuite/testsuite.cpp
index 49113a552cd..06e75153341 100644
--- a/extra/yassl/testsuite/testsuite.cpp
+++ b/extra/yassl/testsuite/testsuite.cpp
@@ -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;
}