Below is the list of changes that have just been committed into a local
5.0 repository of svoj. When svoj does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet
1.1953 05/06/10 20:09:41 svoj@stripped +24 -0
Merge with latest yaSSL.
Fixes IsAligned yaSSL assertion failure.
extra/yassl/taocrypt/src/sha.cpp
1.2 05/06/10 20:09:36 svoj@stripped +5 -4
Merge with latest yaSSL.
extra/yassl/taocrypt/src/rsa.cpp
1.6 05/06/10 20:09:36 svoj@stripped +0 -1
Merge with latest yaSSL.
extra/yassl/taocrypt/src/ripemd.cpp
1.2 05/06/10 20:09:36 svoj@stripped +173 -172
Merge with latest yaSSL.
extra/yassl/taocrypt/src/misc.cpp
1.5 05/06/10 20:09:36 svoj@stripped +4 -18
Merge with latest yaSSL.
extra/yassl/taocrypt/src/md5.cpp
1.2 05/06/10 20:09:36 svoj@stripped +71 -70
Merge with latest yaSSL.
extra/yassl/taocrypt/src/integer.cpp
1.10 05/06/10 20:09:35 svoj@stripped +0 -10
Merge with latest yaSSL.
extra/yassl/taocrypt/src/hash.cpp
1.2 05/06/10 20:09:35 svoj@stripped +20 -9
Merge with latest yaSSL.
extra/yassl/taocrypt/src/dsa.cpp
1.4 05/06/10 20:09:35 svoj@stripped +0 -1
Merge with latest yaSSL.
extra/yassl/taocrypt/src/aes.cpp
1.2 05/06/10 20:09:35 svoj@stripped +0 -1
Merge with latest yaSSL.
extra/yassl/taocrypt/include/rsa.hpp
1.2 05/06/10 20:09:35 svoj@stripped +0 -1
Merge with latest yaSSL.
extra/yassl/taocrypt/include/modes.hpp
1.4 05/06/10 20:09:35 svoj@stripped +13 -4
Merge with latest yaSSL.
extra/yassl/taocrypt/include/integer.hpp
1.7 05/06/10 20:09:35 svoj@stripped +11 -0
Merge with latest yaSSL.
extra/yassl/taocrypt/include/hmac.hpp
1.2 05/06/10 20:09:35 svoj@stripped +19 -6
Merge with latest yaSSL.
extra/yassl/taocrypt/include/hash.hpp
1.4 05/06/10 20:09:35 svoj@stripped +6 -6
Merge with latest yaSSL.
extra/yassl/taocrypt/include/block.hpp
1.5 05/06/10 20:09:35 svoj@stripped +0 -1
Merge with latest yaSSL.
extra/yassl/src/ssl.cpp
1.6 05/06/10 20:09:35 svoj@stripped +1 -0
Merge with latest yaSSL.
extra/yassl/src/socket_wrapper.cpp
1.3 05/06/10 20:09:35 svoj@stripped +0 -1
Merge with latest yaSSL.
extra/yassl/src/buffer.cpp
1.4 05/06/10 20:09:35 svoj@stripped +1 -0
Merge with latest yaSSL.
extra/yassl/mySTL/stdexcept.hpp
1.3 05/06/10 20:09:35 svoj@stripped +9 -1
Merge with latest yaSSL.
extra/yassl/include/yassl_types.hpp
1.6 05/06/10 20:09:35 svoj@stripped +1 -1
Merge with latest yaSSL.
extra/yassl/include/yassl_int.hpp
1.5 05/06/10 20:09:35 svoj@stripped +3 -0
Merge with latest yaSSL.
extra/yassl/include/openssl/ssl.h
1.3 05/06/10 20:09:35 svoj@stripped +1 -0
Merge with latest yaSSL.
extra/yassl/include/factory.hpp
1.3 05/06/10 20:09:35 svoj@stripped +0 -1
Merge with latest yaSSL.
extra/yassl/include/buffer.hpp
1.4 05/06/10 20:09:35 svoj@stripped +0 -1
Merge with latest yaSSL.
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: svoj
# Host: svoj.pils.ru
# Root: /home/svoj/devel/mysql/yassl-mysql-5.0
--- 1.3/extra/yassl/include/buffer.hpp 2005-05-31 20:56:24 +05:00
+++ 1.4/extra/yassl/include/buffer.hpp 2005-06-10 20:09:35 +05:00
@@ -29,7 +29,6 @@
#include <assert.h> // assert
#include "yassl_types.hpp" // ysDelete
-#include "yassl_error.hpp" // Error
#include "memory.hpp" // mySTL::auto_ptr
#include "algorithm.hpp" // mySTL::swap
--- 1.2/extra/yassl/include/factory.hpp 2005-05-25 00:15:00 +05:00
+++ 1.3/extra/yassl/include/factory.hpp 2005-06-10 20:09:35 +05:00
@@ -33,7 +33,6 @@
#include "vector.hpp"
#include "pair.hpp"
-#include "yassl_error.hpp"
--- 1.2/extra/yassl/include/openssl/ssl.h 2005-05-20 19:35:43 +05:00
+++ 1.3/extra/yassl/include/openssl/ssl.h 2005-06-10 20:09:35 +05:00
@@ -34,6 +34,7 @@
extern "C" {
#endif
+#undef X509_NAME /* wincrypt.h clash */
#if defined(__cplusplus) && !defined(YASSL_MYSQL_COMPATIBLE)
class SSL;
--- 1.4/extra/yassl/include/yassl_int.hpp 2005-05-25 19:11:31 +05:00
+++ 1.5/extra/yassl/include/yassl_int.hpp 2005-06-10 20:09:35 +05:00
@@ -29,6 +29,7 @@
#define yaSSL_INT_HPP
#include "yassl_imp.hpp"
+#include "yassl_error.hpp"
#include "crypto_wrapper.hpp"
#include "cert_wrapper.hpp"
#include "log.hpp"
@@ -128,6 +129,8 @@
sslFactory& operator=(const sslFactory&); // and assign
};
+
+#undef X509_NAME // wincrypt.h clash
// openSSL X509 names
class X509_NAME {
--- 1.5/extra/yassl/include/yassl_types.hpp 2005-05-31 20:56:24 +05:00
+++ 1.6/extra/yassl/include/yassl_types.hpp 2005-06-10 20:09:35 +05:00
@@ -71,7 +71,7 @@
// to resolve compiler generated operator delete on base classes with
-// virtual destructors, make sure doesn't get called
+// virtual destructors (when on stack), make sure doesn't get called
class virtual_base {
public:
static void operator delete(void*) { assert(0); }
--- 1.2/extra/yassl/mySTL/stdexcept.hpp 2005-05-20 19:32:41 +05:00
+++ 1.3/extra/yassl/mySTL/stdexcept.hpp 2005-06-10 20:09:35 +05:00
@@ -29,6 +29,8 @@
#include <string.h> // strncpy
+#include <assert.h> // assert
+#include <stdlib.h> // size_t
namespace mySTL {
@@ -37,9 +39,15 @@
class exception {
public:
exception() {}
- virtual ~exception() {}
+ virtual ~exception() {} // to shut up compiler warnings
virtual const char* what() const { return ""; }
+
+ // for compiler generated call, never used
+ static void operator delete(void*) { assert(0); }
+private:
+ // don't allow dynamic creation of exceptions
+ static void* operator new(size_t);
};
--- 1.3/extra/yassl/src/buffer.cpp 2005-05-31 20:56:24 +05:00
+++ 1.4/extra/yassl/src/buffer.cpp 2005-06-10 20:09:35 +05:00
@@ -24,6 +24,7 @@
* with SSL types and sockets
*/
+#include <string.h> // memcpy
#include "buffer.hpp"
#include "yassl_types.hpp"
--- 1.2/extra/yassl/src/socket_wrapper.cpp 2005-05-31 20:56:25 +05:00
+++ 1.3/extra/yassl/src/socket_wrapper.cpp 2005-06-10 20:09:35 +05:00
@@ -27,7 +27,6 @@
#include "socket_wrapper.hpp"
-#include "yassl_error.hpp"
#ifndef WIN32
#include <errno.h>
--- 1.5/extra/yassl/src/ssl.cpp 2005-06-02 18:45:10 +05:00
+++ 1.6/extra/yassl/src/ssl.cpp 2005-06-10 20:09:35 +05:00
@@ -38,6 +38,7 @@
#include <stdio.h>
#include "runtime.hpp"
+
namespace yaSSL {
using mySTL::min;
--- 1.4/extra/yassl/taocrypt/include/block.hpp 2005-05-31 20:56:25 +05:00
+++ 1.5/extra/yassl/taocrypt/include/block.hpp 2005-06-10 20:09:35 +05:00
@@ -28,7 +28,6 @@
#define TAO_CRYPT_BLOCK_HPP
#include "algorithm.hpp" // mySTL::swap
-#include "stdexcept.hpp" // mySTL::runtime_error
#include "misc.hpp"
#include <string.h> // memcpy
#include <stddef.h> // ptrdiff_t
--- 1.3/extra/yassl/taocrypt/include/hash.hpp 2005-05-31 20:56:25 +05:00
+++ 1.4/extra/yassl/taocrypt/include/hash.hpp 2005-06-10 20:09:35 +05:00
@@ -49,20 +49,20 @@
// HASH with Transform
class HASHwithTransform : public HASH {
public:
- HASHwithTransform(word32 digSz, word32 buffSz)
- : digest_(new (tc) word32[digSz]), buffer_(new (tc) byte[buffSz]) {}
- virtual ~HASHwithTransform() { tcArrayDelete(buffer_);
- tcArrayDelete(digest_); }
+ HASHwithTransform(word32 digSz, word32 buffSz);
+ virtual ~HASHwithTransform() {}
virtual ByteOrder getByteOrder() const = 0;
virtual word32 getPadSize() const = 0;
virtual void Update(const byte*, word32);
virtual void Final(byte*);
+
+ enum { MaxDigestSz = 5, MaxBufferSz = 64 };
protected:
word32 buffLen_;
word32 length_; // in Bits
- word32* digest_;
- byte* buffer_;
+ word32 digest_[MaxDigestSz];
+ word32 buffer_[MaxBufferSz / sizeof(word32)];
virtual void Transform() = 0;
};
--- 1.1/extra/yassl/taocrypt/include/hmac.hpp 2005-04-28 18:23:14 +05:00
+++ 1.2/extra/yassl/taocrypt/include/hmac.hpp 2005-06-10 20:09:35 +05:00
@@ -37,18 +37,31 @@
public:
enum { IPAD = 0x36, OPAD = 0x5C };
- HMAC() { Init(); }
+ HMAC() : ipad_(reinterpret_cast<byte*>(&ip_)),
+ opad_(reinterpret_cast<byte*>(&op_)),
+ innerHash_(reinterpret_cast<byte*>(&innerH_))
+ {
+ Init();
+ }
void Update(const byte*, word32);
void Final(byte*);
void Init();
void SetKey(const byte*, word32);
private:
- byte ipad_[T::BLOCK_SIZE];
- byte opad_[T::BLOCK_SIZE];
- byte innerHash_[T::DIGEST_SIZE];
- bool innerHashKeyed_;
- T mac_;
+ byte* ipad_;
+ byte* opad_;
+ byte* innerHash_;
+ bool innerHashKeyed_;
+ T mac_;
+
+ // MSVC 6 HACK, gives compiler error if calculated in array
+ enum { BSIZE = T::BLOCK_SIZE / sizeof(word32),
+ DSIZE = T::DIGEST_SIZE / sizeof(word32) };
+
+ word32 ip_[BSIZE]; // align ipad_ on word32
+ word32 op_[BSIZE]; // align opad_ on word32
+ word32 innerH_[DSIZE]; // align innerHash_ on word32
void KeyInnerHash();
--- 1.6/extra/yassl/taocrypt/include/integer.hpp 2005-05-31 20:56:25 +05:00
+++ 1.7/extra/yassl/taocrypt/include/integer.hpp 2005-06-10 20:09:35 +05:00
@@ -25,6 +25,17 @@
#ifndef TAO_CRYPT_INTEGER_HPP
#define TAO_CRYPT_INTEGER_HPP
+
+#ifdef _MSC_VER
+ // 4250: dominance
+ // 4660: explicitly instantiating a class already implicitly instantiated
+ // 4661: no suitable definition provided for explicit template request
+ // 4786: identifer was truncated in debug information
+ // 4355: 'this' : used in base member initializer list
+# pragma warning(disable: 4250 4660 4661 4786 4355)
+#endif
+
+
#include "misc.hpp"
#include "block.hpp"
#include "random.hpp"
--- 1.3/extra/yassl/taocrypt/include/modes.hpp 2005-05-31 20:56:25 +05:00
+++ 1.4/extra/yassl/taocrypt/include/modes.hpp 2005-06-10 20:09:35 +05:00
@@ -60,7 +60,12 @@
public:
enum { MaxBlockSz = 16 };
- explicit Mode_BASE(int sz) : blockSz_(sz) { assert(sz <= MaxBlockSz); }
+ explicit Mode_BASE(int sz)
+ : blockSz_(sz), reg_(reinterpret_cast<byte*>(r_)),
+ tmp_(reinterpret_cast<byte*>(t_))
+ {
+ assert(sz <= MaxBlockSz);
+ }
virtual ~Mode_BASE() {}
virtual void ProcessAndXorBlock(const byte*, const byte*, byte*) const = 0;
@@ -71,9 +76,13 @@
void SetIV(const byte* iv) { memcpy(reg_, iv, blockSz_); }
private:
- byte reg_[MaxBlockSz];
- byte tmp_[MaxBlockSz];
- int blockSz_;
+ int blockSz_;
+ byte* reg_;
+ byte* tmp_;
+
+ word32 r_[MaxBlockSz / sizeof(word32)]; // align reg_ on word32
+ word32 t_[MaxBlockSz / sizeof(word32)]; // align tmp_ on word32
+
Mode_BASE(const Mode_BASE&); // hide copy
Mode_BASE& operator=(const Mode_BASE&); // and assign
--- 1.1/extra/yassl/taocrypt/include/rsa.hpp 2005-04-28 18:23:16 +05:00
+++ 1.2/extra/yassl/taocrypt/include/rsa.hpp 2005-06-10 20:09:35 +05:00
@@ -27,7 +27,6 @@
#include "integer.hpp"
#include "random.hpp"
-#include "stdexcept.hpp"
namespace TaoCrypt {
--- 1.1/extra/yassl/taocrypt/src/aes.cpp 2005-04-28 18:23:17 +05:00
+++ 1.2/extra/yassl/taocrypt/src/aes.cpp 2005-06-10 20:09:35 +05:00
@@ -23,7 +23,6 @@
#include "runtime.hpp"
#include "aes.hpp"
-#include "stdexcept.hpp"
namespace TaoCrypt {
--- 1.3/extra/yassl/taocrypt/src/dsa.cpp 2005-05-31 20:56:25 +05:00
+++ 1.4/extra/yassl/taocrypt/src/dsa.cpp 2005-06-10 20:09:35 +05:00
@@ -24,7 +24,6 @@
#include "sha.hpp"
#include "asn.hpp"
#include "modarith.hpp"
-#include "stdexcept.hpp"
namespace TaoCrypt {
--- 1.1/extra/yassl/taocrypt/src/hash.cpp 2005-04-28 18:23:19 +05:00
+++ 1.2/extra/yassl/taocrypt/src/hash.cpp 2005-06-10 20:09:35 +05:00
@@ -24,6 +24,7 @@
#include "runtime.hpp"
#include <string.h>
+#include <assert.h>
#include "hash.hpp"
@@ -31,21 +32,30 @@
namespace TaoCrypt {
+HASHwithTransform::HASHwithTransform(word32 digSz, word32 buffSz)
+{
+ assert(digSz <= MaxDigestSz);
+ assert(buffSz <= MaxBufferSz);
+}
+
+
// Update digest with data of size len, do in blocks
void HASHwithTransform::Update(const byte* data, word32 len)
{
// do block size increments
word32 blockSz = getBlockSize();
+ byte* local = reinterpret_cast<byte*>(buffer_);
+
while (len) {
word32 add = min(len, blockSz - buffLen_);
- memcpy(&buffer_[buffLen_], data, add);
+ memcpy(&local[buffLen_], data, add);
buffLen_ += add;
data += add;
len -= add;
if (buffLen_ == blockSz) {
- ByteReverseIf(buffer_, buffer_, blockSz, getByteOrder());
+ ByteReverseIf(local, local, blockSz, getByteOrder());
Transform();
}
}
@@ -60,22 +70,23 @@
word32 padSz = getPadSize();
ByteOrder order = getByteOrder();
word32 prePadLen = length_ + buffLen_ * 8; // in bits
+ byte* local = reinterpret_cast<byte*>(buffer_);
- buffer_[buffLen_++] = 0x80; // add 1
+ local[buffLen_++] = 0x80; // add 1
// pad with zeros
if (buffLen_ > padSz) {
- while (buffLen_ < blockSz) buffer_[buffLen_++] = 0;
- ByteReverseIf(buffer_, buffer_, blockSz, order);
+ while (buffLen_ < blockSz) local[buffLen_++] = 0;
+ ByteReverseIf(local, local, blockSz, order);
Transform();
}
- while (buffLen_ < padSz) buffer_[buffLen_++] = 0;
+ while (buffLen_ < padSz) local[buffLen_++] = 0;
- ByteReverseIf(buffer_, buffer_, blockSz, order);
+ ByteReverseIf(local, local, blockSz, order);
word32 hiSize = 0; // for future 64 bit length TODO:
- memcpy(&buffer_[padSz], order ? &hiSize : &prePadLen,
sizeof(prePadLen));
- memcpy(&buffer_[padSz+4], order ? &prePadLen : &hiSize,
sizeof(prePadLen));
+ memcpy(&local[padSz], order ? &hiSize : &prePadLen, sizeof(prePadLen));
+ memcpy(&local[padSz+4], order ? &prePadLen : &hiSize, sizeof(prePadLen));
Transform();
--- 1.9/extra/yassl/taocrypt/src/integer.cpp 2005-06-03 16:42:56 +05:00
+++ 1.10/extra/yassl/taocrypt/src/integer.cpp 2005-06-10 20:09:35 +05:00
@@ -23,19 +23,9 @@
/* based on Wei Dai's integer.cpp from CryptoPP */
-#ifdef _MSC_VER
- // 4250: dominance
- // 4660: explicitly instantiating a class already implicitly instantiated
- // 4661: no suitable definition provided for explicit template request
- // 4786: identifer was truncated in debug information
- // 4355: 'this' : used in base member initializer list
-# pragma warning(disable: 4250 4660 4661 4786 4355)
-#endif
-
#include "integer.hpp"
#include "modarith.hpp"
#include "asn.hpp"
-#include "stdexcept.hpp"
--- 1.1/extra/yassl/taocrypt/src/md5.cpp 2005-04-28 18:23:20 +05:00
+++ 1.2/extra/yassl/taocrypt/src/md5.cpp 2005-06-10 20:09:36 +05:00
@@ -61,10 +61,11 @@
void MD5::Swap(MD5& other)
{
- mySTL::swap(buffer_, other.buffer_);
- mySTL::swap(buffLen_, other.buffLen_);
- mySTL::swap(digest_, other.digest_);
mySTL::swap(length_, other.length_);
+ mySTL::swap(buffLen_, other.buffLen_);
+
+ memcpy(digest_, other.digest_, DIGEST_SIZE);
+ memcpy(buffer_, other.buffer_, BLOCK_SIZE);
}
@@ -84,73 +85,73 @@
word32 c = digest_[2];
word32 d = digest_[3];
- MD5STEP(F1, a, b, c, d, *(word32*)&buffer_[0*4] + 0xd76aa478, 7);
- MD5STEP(F1, d, a, b, c, *(word32*)&buffer_[1*4] + 0xe8c7b756, 12);
- MD5STEP(F1, c, d, a, b, *(word32*)&buffer_[2*4] + 0x242070db, 17);
- MD5STEP(F1, b, c, d, a, *(word32*)&buffer_[3*4] + 0xc1bdceee, 22);
- MD5STEP(F1, a, b, c, d, *(word32*)&buffer_[4*4] + 0xf57c0faf, 7);
- MD5STEP(F1, d, a, b, c, *(word32*)&buffer_[5*4] + 0x4787c62a, 12);
- MD5STEP(F1, c, d, a, b, *(word32*)&buffer_[6*4] + 0xa8304613, 17);
- MD5STEP(F1, b, c, d, a, *(word32*)&buffer_[7*4] + 0xfd469501, 22);
- MD5STEP(F1, a, b, c, d, *(word32*)&buffer_[8*4] + 0x698098d8, 7);
- MD5STEP(F1, d, a, b, c, *(word32*)&buffer_[9*4] + 0x8b44f7af, 12);
- MD5STEP(F1, c, d, a, b, *(word32*)&buffer_[10*4] + 0xffff5bb1, 17);
- MD5STEP(F1, b, c, d, a, *(word32*)&buffer_[11*4] + 0x895cd7be, 22);
- MD5STEP(F1, a, b, c, d, *(word32*)&buffer_[12*4] + 0x6b901122, 7);
- MD5STEP(F1, d, a, b, c, *(word32*)&buffer_[13*4] + 0xfd987193, 12);
- MD5STEP(F1, c, d, a, b, *(word32*)&buffer_[14*4] + 0xa679438e, 17);
- MD5STEP(F1, b, c, d, a, *(word32*)&buffer_[15*4] + 0x49b40821, 22);
-
- MD5STEP(F2, a, b, c, d, *(word32*)&buffer_[1*4] + 0xf61e2562, 5);
- MD5STEP(F2, d, a, b, c, *(word32*)&buffer_[6*4] + 0xc040b340, 9);
- MD5STEP(F2, c, d, a, b, *(word32*)&buffer_[11*4] + 0x265e5a51, 14);
- MD5STEP(F2, b, c, d, a, *(word32*)&buffer_[0*4] + 0xe9b6c7aa, 20);
- MD5STEP(F2, a, b, c, d, *(word32*)&buffer_[5*4] + 0xd62f105d, 5);
- MD5STEP(F2, d, a, b, c, *(word32*)&buffer_[10*4] + 0x02441453, 9);
- MD5STEP(F2, c, d, a, b, *(word32*)&buffer_[15*4] + 0xd8a1e681, 14);
- MD5STEP(F2, b, c, d, a, *(word32*)&buffer_[4*4] + 0xe7d3fbc8, 20);
- MD5STEP(F2, a, b, c, d, *(word32*)&buffer_[9*4] + 0x21e1cde6, 5);
- MD5STEP(F2, d, a, b, c, *(word32*)&buffer_[14*4] + 0xc33707d6, 9);
- MD5STEP(F2, c, d, a, b, *(word32*)&buffer_[3*4] + 0xf4d50d87, 14);
- MD5STEP(F2, b, c, d, a, *(word32*)&buffer_[8*4] + 0x455a14ed, 20);
- MD5STEP(F2, a, b, c, d, *(word32*)&buffer_[13*4] + 0xa9e3e905, 5);
- MD5STEP(F2, d, a, b, c, *(word32*)&buffer_[2*4] + 0xfcefa3f8, 9);
- MD5STEP(F2, c, d, a, b, *(word32*)&buffer_[7*4] + 0x676f02d9, 14);
- MD5STEP(F2, b, c, d, a, *(word32*)&buffer_[12*4] + 0x8d2a4c8a, 20);
-
- MD5STEP(F3, a, b, c, d, *(word32*)&buffer_[5*4] + 0xfffa3942, 4);
- MD5STEP(F3, d, a, b, c, *(word32*)&buffer_[8*4] + 0x8771f681, 11);
- MD5STEP(F3, c, d, a, b, *(word32*)&buffer_[11*4] + 0x6d9d6122, 16);
- MD5STEP(F3, b, c, d, a, *(word32*)&buffer_[14*4] + 0xfde5380c, 23);
- MD5STEP(F3, a, b, c, d, *(word32*)&buffer_[1*4] + 0xa4beea44, 4);
- MD5STEP(F3, d, a, b, c, *(word32*)&buffer_[4*4] + 0x4bdecfa9, 11);
- MD5STEP(F3, c, d, a, b, *(word32*)&buffer_[7*4] + 0xf6bb4b60, 16);
- MD5STEP(F3, b, c, d, a, *(word32*)&buffer_[10*4] + 0xbebfbc70, 23);
- MD5STEP(F3, a, b, c, d, *(word32*)&buffer_[13*4] + 0x289b7ec6, 4);
- MD5STEP(F3, d, a, b, c, *(word32*)&buffer_[0*4] + 0xeaa127fa, 11);
- MD5STEP(F3, c, d, a, b, *(word32*)&buffer_[3*4] + 0xd4ef3085, 16);
- MD5STEP(F3, b, c, d, a, *(word32*)&buffer_[6*4] + 0x04881d05, 23);
- MD5STEP(F3, a, b, c, d, *(word32*)&buffer_[9*4] + 0xd9d4d039, 4);
- MD5STEP(F3, d, a, b, c, *(word32*)&buffer_[12*4] + 0xe6db99e5, 11);
- MD5STEP(F3, c, d, a, b, *(word32*)&buffer_[15*4] + 0x1fa27cf8, 16);
- MD5STEP(F3, b, c, d, a, *(word32*)&buffer_[2*4] + 0xc4ac5665, 23);
-
- MD5STEP(F4, a, b, c, d, *(word32*)&buffer_[0*4] + 0xf4292244, 6);
- MD5STEP(F4, d, a, b, c, *(word32*)&buffer_[7*4] + 0x432aff97, 10);
- MD5STEP(F4, c, d, a, b, *(word32*)&buffer_[14*4] + 0xab9423a7, 15);
- MD5STEP(F4, b, c, d, a, *(word32*)&buffer_[5*4] + 0xfc93a039, 21);
- MD5STEP(F4, a, b, c, d, *(word32*)&buffer_[12*4] + 0x655b59c3, 6);
- MD5STEP(F4, d, a, b, c, *(word32*)&buffer_[3*4] + 0x8f0ccc92, 10);
- MD5STEP(F4, c, d, a, b, *(word32*)&buffer_[10*4] + 0xffeff47d, 15);
- MD5STEP(F4, b, c, d, a, *(word32*)&buffer_[1*4] + 0x85845dd1, 21);
- MD5STEP(F4, a, b, c, d, *(word32*)&buffer_[8*4] + 0x6fa87e4f, 6);
- MD5STEP(F4, d, a, b, c, *(word32*)&buffer_[15*4] + 0xfe2ce6e0, 10);
- MD5STEP(F4, c, d, a, b, *(word32*)&buffer_[6*4] + 0xa3014314, 15);
- MD5STEP(F4, b, c, d, a, *(word32*)&buffer_[13*4] + 0x4e0811a1, 21);
- MD5STEP(F4, a, b, c, d, *(word32*)&buffer_[4*4] + 0xf7537e82, 6);
- MD5STEP(F4, d, a, b, c, *(word32*)&buffer_[11*4] + 0xbd3af235, 10);
- MD5STEP(F4, c, d, a, b, *(word32*)&buffer_[2*4] + 0x2ad7d2bb, 15);
- MD5STEP(F4, b, c, d, a, *(word32*)&buffer_[9*4] + 0xeb86d391, 21);
+ MD5STEP(F1, a, b, c, d, buffer_[0] + 0xd76aa478, 7);
+ MD5STEP(F1, d, a, b, c, buffer_[1] + 0xe8c7b756, 12);
+ MD5STEP(F1, c, d, a, b, buffer_[2] + 0x242070db, 17);
+ MD5STEP(F1, b, c, d, a, buffer_[3] + 0xc1bdceee, 22);
+ MD5STEP(F1, a, b, c, d, buffer_[4] + 0xf57c0faf, 7);
+ MD5STEP(F1, d, a, b, c, buffer_[5] + 0x4787c62a, 12);
+ MD5STEP(F1, c, d, a, b, buffer_[6] + 0xa8304613, 17);
+ MD5STEP(F1, b, c, d, a, buffer_[7] + 0xfd469501, 22);
+ MD5STEP(F1, a, b, c, d, buffer_[8] + 0x698098d8, 7);
+ MD5STEP(F1, d, a, b, c, buffer_[9] + 0x8b44f7af, 12);
+ MD5STEP(F1, c, d, a, b, buffer_[10] + 0xffff5bb1, 17);
+ MD5STEP(F1, b, c, d, a, buffer_[11] + 0x895cd7be, 22);
+ MD5STEP(F1, a, b, c, d, buffer_[12] + 0x6b901122, 7);
+ MD5STEP(F1, d, a, b, c, buffer_[13] + 0xfd987193, 12);
+ MD5STEP(F1, c, d, a, b, buffer_[14] + 0xa679438e, 17);
+ MD5STEP(F1, b, c, d, a, buffer_[15] + 0x49b40821, 22);
+
+ MD5STEP(F2, a, b, c, d, buffer_[1] + 0xf61e2562, 5);
+ MD5STEP(F2, d, a, b, c, buffer_[6] + 0xc040b340, 9);
+ MD5STEP(F2, c, d, a, b, buffer_[11] + 0x265e5a51, 14);
+ MD5STEP(F2, b, c, d, a, buffer_[0] + 0xe9b6c7aa, 20);
+ MD5STEP(F2, a, b, c, d, buffer_[5] + 0xd62f105d, 5);
+ MD5STEP(F2, d, a, b, c, buffer_[10] + 0x02441453, 9);
+ MD5STEP(F2, c, d, a, b, buffer_[15] + 0xd8a1e681, 14);
+ MD5STEP(F2, b, c, d, a, buffer_[4] + 0xe7d3fbc8, 20);
+ MD5STEP(F2, a, b, c, d, buffer_[9] + 0x21e1cde6, 5);
+ MD5STEP(F2, d, a, b, c, buffer_[14] + 0xc33707d6, 9);
+ MD5STEP(F2, c, d, a, b, buffer_[3] + 0xf4d50d87, 14);
+ MD5STEP(F2, b, c, d, a, buffer_[8] + 0x455a14ed, 20);
+ MD5STEP(F2, a, b, c, d, buffer_[13] + 0xa9e3e905, 5);
+ MD5STEP(F2, d, a, b, c, buffer_[2] + 0xfcefa3f8, 9);
+ MD5STEP(F2, c, d, a, b, buffer_[7] + 0x676f02d9, 14);
+ MD5STEP(F2, b, c, d, a, buffer_[12] + 0x8d2a4c8a, 20);
+
+ MD5STEP(F3, a, b, c, d, buffer_[5] + 0xfffa3942, 4);
+ MD5STEP(F3, d, a, b, c, buffer_[8] + 0x8771f681, 11);
+ MD5STEP(F3, c, d, a, b, buffer_[11] + 0x6d9d6122, 16);
+ MD5STEP(F3, b, c, d, a, buffer_[14] + 0xfde5380c, 23);
+ MD5STEP(F3, a, b, c, d, buffer_[1] + 0xa4beea44, 4);
+ MD5STEP(F3, d, a, b, c, buffer_[4] + 0x4bdecfa9, 11);
+ MD5STEP(F3, c, d, a, b, buffer_[7] + 0xf6bb4b60, 16);
+ MD5STEP(F3, b, c, d, a, buffer_[10] + 0xbebfbc70, 23);
+ MD5STEP(F3, a, b, c, d, buffer_[13] + 0x289b7ec6, 4);
+ MD5STEP(F3, d, a, b, c, buffer_[0] + 0xeaa127fa, 11);
+ MD5STEP(F3, c, d, a, b, buffer_[3] + 0xd4ef3085, 16);
+ MD5STEP(F3, b, c, d, a, buffer_[6] + 0x04881d05, 23);
+ MD5STEP(F3, a, b, c, d, buffer_[9] + 0xd9d4d039, 4);
+ MD5STEP(F3, d, a, b, c, buffer_[12] + 0xe6db99e5, 11);
+ MD5STEP(F3, c, d, a, b, buffer_[15] + 0x1fa27cf8, 16);
+ MD5STEP(F3, b, c, d, a, buffer_[2] + 0xc4ac5665, 23);
+
+ MD5STEP(F4, a, b, c, d, buffer_[0] + 0xf4292244, 6);
+ MD5STEP(F4, d, a, b, c, buffer_[7] + 0x432aff97, 10);
+ MD5STEP(F4, c, d, a, b, buffer_[14] + 0xab9423a7, 15);
+ MD5STEP(F4, b, c, d, a, buffer_[5] + 0xfc93a039, 21);
+ MD5STEP(F4, a, b, c, d, buffer_[12] + 0x655b59c3, 6);
+ MD5STEP(F4, d, a, b, c, buffer_[3] + 0x8f0ccc92, 10);
+ MD5STEP(F4, c, d, a, b, buffer_[10] + 0xffeff47d, 15);
+ MD5STEP(F4, b, c, d, a, buffer_[1] + 0x85845dd1, 21);
+ MD5STEP(F4, a, b, c, d, buffer_[8] + 0x6fa87e4f, 6);
+ MD5STEP(F4, d, a, b, c, buffer_[15] + 0xfe2ce6e0, 10);
+ MD5STEP(F4, c, d, a, b, buffer_[6] + 0xa3014314, 15);
+ MD5STEP(F4, b, c, d, a, buffer_[13] + 0x4e0811a1, 21);
+ MD5STEP(F4, a, b, c, d, buffer_[4] + 0xf7537e82, 6);
+ MD5STEP(F4, d, a, b, c, buffer_[11] + 0xbd3af235, 10);
+ MD5STEP(F4, c, d, a, b, buffer_[2] + 0x2ad7d2bb, 15);
+ MD5STEP(F4, b, c, d, a, buffer_[9] + 0xeb86d391, 21);
// Add the working vars back into digest state[]
digest_[0] += a;
--- 1.4/extra/yassl/taocrypt/src/misc.cpp 2005-06-06 15:43:16 +05:00
+++ 1.5/extra/yassl/taocrypt/src/misc.cpp 2005-06-10 20:09:36 +05:00
@@ -55,27 +55,13 @@
/* uncomment to test
// make sure not using globals anywhere by forgetting to use overloaded
-void* operator new(size_t sz)
-{
- assert(0);
- return malloc(sz);
-}
+void* operator new(size_t sz);
-void operator delete(void* ptr)
-{
- assert(0);
-}
+void operator delete(void* ptr);
-void* operator new[](size_t sz)
-{
- assert(0);
- return malloc(sz);
-}
+void* operator new[](size_t sz);
-void operator delete[](void* ptr)
-{
- assert(0);
-}
+void operator delete[](void* ptr);
*/
/* namespace GCC_ABI {
--- 1.1/extra/yassl/taocrypt/src/ripemd.cpp 2005-04-28 18:23:21 +05:00
+++ 1.2/extra/yassl/taocrypt/src/ripemd.cpp 2005-06-10 20:09:36 +05:00
@@ -63,10 +63,11 @@
void RIPEMD160::Swap(RIPEMD160& other)
{
- mySTL::swap(buffer_, other.buffer_);
- mySTL::swap(buffLen_, other.buffLen_);
- mySTL::swap(digest_, other.digest_);
mySTL::swap(length_, other.length_);
+ mySTL::swap(buffLen_, other.buffLen_);
+
+ memcpy(digest_, other.digest_, DIGEST_SIZE);
+ memcpy(buffer_, other.buffer_, BLOCK_SIZE);
}
@@ -104,175 +105,175 @@
d1 = d2 = digest_[3];
e1 = e2 = digest_[4];
- Subround(F, a1, b1, c1, d1, e1, *(word32*)&buffer_[ 0*4], 11, k0);
- Subround(F, e1, a1, b1, c1, d1, *(word32*)&buffer_[ 1*4], 14, k0);
- Subround(F, d1, e1, a1, b1, c1, *(word32*)&buffer_[ 2*4], 15, k0);
- Subround(F, c1, d1, e1, a1, b1, *(word32*)&buffer_[ 3*4], 12, k0);
- Subround(F, b1, c1, d1, e1, a1, *(word32*)&buffer_[ 4*4], 5, k0);
- Subround(F, a1, b1, c1, d1, e1, *(word32*)&buffer_[ 5*4], 8, k0);
- Subround(F, e1, a1, b1, c1, d1, *(word32*)&buffer_[ 6*4], 7, k0);
- Subround(F, d1, e1, a1, b1, c1, *(word32*)&buffer_[ 7*4], 9, k0);
- Subround(F, c1, d1, e1, a1, b1, *(word32*)&buffer_[ 8*4], 11, k0);
- Subround(F, b1, c1, d1, e1, a1, *(word32*)&buffer_[ 9*4], 13, k0);
- Subround(F, a1, b1, c1, d1, e1, *(word32*)&buffer_[10*4], 14, k0);
- Subround(F, e1, a1, b1, c1, d1, *(word32*)&buffer_[11*4], 15, k0);
- Subround(F, d1, e1, a1, b1, c1, *(word32*)&buffer_[12*4], 6, k0);
- Subround(F, c1, d1, e1, a1, b1, *(word32*)&buffer_[13*4], 7, k0);
- Subround(F, b1, c1, d1, e1, a1, *(word32*)&buffer_[14*4], 9, k0);
- Subround(F, a1, b1, c1, d1, e1, *(word32*)&buffer_[15*4], 8, k0);
-
- Subround(G, e1, a1, b1, c1, d1, *(word32*)&buffer_[ 7*4], 7, k1);
- Subround(G, d1, e1, a1, b1, c1, *(word32*)&buffer_[ 4*4], 6, k1);
- Subround(G, c1, d1, e1, a1, b1, *(word32*)&buffer_[13*4], 8, k1);
- Subround(G, b1, c1, d1, e1, a1, *(word32*)&buffer_[ 1*4], 13, k1);
- Subround(G, a1, b1, c1, d1, e1, *(word32*)&buffer_[10*4], 11, k1);
- Subround(G, e1, a1, b1, c1, d1, *(word32*)&buffer_[ 6*4], 9, k1);
- Subround(G, d1, e1, a1, b1, c1, *(word32*)&buffer_[15*4], 7, k1);
- Subround(G, c1, d1, e1, a1, b1, *(word32*)&buffer_[ 3*4], 15, k1);
- Subround(G, b1, c1, d1, e1, a1, *(word32*)&buffer_[12*4], 7, k1);
- Subround(G, a1, b1, c1, d1, e1, *(word32*)&buffer_[ 0*4], 12, k1);
- Subround(G, e1, a1, b1, c1, d1, *(word32*)&buffer_[ 9*4], 15, k1);
- Subround(G, d1, e1, a1, b1, c1, *(word32*)&buffer_[ 5*4], 9, k1);
- Subround(G, c1, d1, e1, a1, b1, *(word32*)&buffer_[ 2*4], 11, k1);
- Subround(G, b1, c1, d1, e1, a1, *(word32*)&buffer_[14*4], 7, k1);
- Subround(G, a1, b1, c1, d1, e1, *(word32*)&buffer_[11*4], 13, k1);
- Subround(G, e1, a1, b1, c1, d1, *(word32*)&buffer_[ 8*4], 12, k1);
-
- Subround(H, d1, e1, a1, b1, c1, *(word32*)&buffer_[ 3*4], 11, k2);
- Subround(H, c1, d1, e1, a1, b1, *(word32*)&buffer_[10*4], 13, k2);
- Subround(H, b1, c1, d1, e1, a1, *(word32*)&buffer_[14*4], 6, k2);
- Subround(H, a1, b1, c1, d1, e1, *(word32*)&buffer_[ 4*4], 7, k2);
- Subround(H, e1, a1, b1, c1, d1, *(word32*)&buffer_[ 9*4], 14, k2);
- Subround(H, d1, e1, a1, b1, c1, *(word32*)&buffer_[15*4], 9, k2);
- Subround(H, c1, d1, e1, a1, b1, *(word32*)&buffer_[ 8*4], 13, k2);
- Subround(H, b1, c1, d1, e1, a1, *(word32*)&buffer_[ 1*4], 15, k2);
- Subround(H, a1, b1, c1, d1, e1, *(word32*)&buffer_[ 2*4], 14, k2);
- Subround(H, e1, a1, b1, c1, d1, *(word32*)&buffer_[ 7*4], 8, k2);
- Subround(H, d1, e1, a1, b1, c1, *(word32*)&buffer_[ 0*4], 13, k2);
- Subround(H, c1, d1, e1, a1, b1, *(word32*)&buffer_[ 6*4], 6, k2);
- Subround(H, b1, c1, d1, e1, a1, *(word32*)&buffer_[13*4], 5, k2);
- Subround(H, a1, b1, c1, d1, e1, *(word32*)&buffer_[11*4], 12, k2);
- Subround(H, e1, a1, b1, c1, d1, *(word32*)&buffer_[ 5*4], 7, k2);
- Subround(H, d1, e1, a1, b1, c1, *(word32*)&buffer_[12*4], 5, k2);
-
- Subround(I, c1, d1, e1, a1, b1, *(word32*)&buffer_[ 1*4], 11, k3);
- Subround(I, b1, c1, d1, e1, a1, *(word32*)&buffer_[ 9*4], 12, k3);
- Subround(I, a1, b1, c1, d1, e1, *(word32*)&buffer_[11*4], 14, k3);
- Subround(I, e1, a1, b1, c1, d1, *(word32*)&buffer_[10*4], 15, k3);
- Subround(I, d1, e1, a1, b1, c1, *(word32*)&buffer_[ 0*4], 14, k3);
- Subround(I, c1, d1, e1, a1, b1, *(word32*)&buffer_[ 8*4], 15, k3);
- Subround(I, b1, c1, d1, e1, a1, *(word32*)&buffer_[12*4], 9, k3);
- Subround(I, a1, b1, c1, d1, e1, *(word32*)&buffer_[ 4*4], 8, k3);
- Subround(I, e1, a1, b1, c1, d1, *(word32*)&buffer_[13*4], 9, k3);
- Subround(I, d1, e1, a1, b1, c1, *(word32*)&buffer_[ 3*4], 14, k3);
- Subround(I, c1, d1, e1, a1, b1, *(word32*)&buffer_[ 7*4], 5, k3);
- Subround(I, b1, c1, d1, e1, a1, *(word32*)&buffer_[15*4], 6, k3);
- Subround(I, a1, b1, c1, d1, e1, *(word32*)&buffer_[14*4], 8, k3);
- Subround(I, e1, a1, b1, c1, d1, *(word32*)&buffer_[ 5*4], 6, k3);
- Subround(I, d1, e1, a1, b1, c1, *(word32*)&buffer_[ 6*4], 5, k3);
- Subround(I, c1, d1, e1, a1, b1, *(word32*)&buffer_[ 2*4], 12, k3);
-
- Subround(J, b1, c1, d1, e1, a1, *(word32*)&buffer_[ 4*4], 9, k4);
- Subround(J, a1, b1, c1, d1, e1, *(word32*)&buffer_[ 0*4], 15, k4);
- Subround(J, e1, a1, b1, c1, d1, *(word32*)&buffer_[ 5*4], 5, k4);
- Subround(J, d1, e1, a1, b1, c1, *(word32*)&buffer_[ 9*4], 11, k4);
- Subround(J, c1, d1, e1, a1, b1, *(word32*)&buffer_[ 7*4], 6, k4);
- Subround(J, b1, c1, d1, e1, a1, *(word32*)&buffer_[12*4], 8, k4);
- Subround(J, a1, b1, c1, d1, e1, *(word32*)&buffer_[ 2*4], 13, k4);
- Subround(J, e1, a1, b1, c1, d1, *(word32*)&buffer_[10*4], 12, k4);
- Subround(J, d1, e1, a1, b1, c1, *(word32*)&buffer_[14*4], 5, k4);
- Subround(J, c1, d1, e1, a1, b1, *(word32*)&buffer_[ 1*4], 12, k4);
- Subround(J, b1, c1, d1, e1, a1, *(word32*)&buffer_[ 3*4], 13, k4);
- Subround(J, a1, b1, c1, d1, e1, *(word32*)&buffer_[ 8*4], 14, k4);
- Subround(J, e1, a1, b1, c1, d1, *(word32*)&buffer_[11*4], 11, k4);
- Subround(J, d1, e1, a1, b1, c1, *(word32*)&buffer_[ 6*4], 8, k4);
- Subround(J, c1, d1, e1, a1, b1, *(word32*)&buffer_[15*4], 5, k4);
- Subround(J, b1, c1, d1, e1, a1, *(word32*)&buffer_[13*4], 6, k4);
-
- Subround(J, a2, b2, c2, d2, e2, *(word32*)&buffer_[ 5*4], 8, k5);
- Subround(J, e2, a2, b2, c2, d2, *(word32*)&buffer_[14*4], 9, k5);
- Subround(J, d2, e2, a2, b2, c2, *(word32*)&buffer_[ 7*4], 9, k5);
- Subround(J, c2, d2, e2, a2, b2, *(word32*)&buffer_[ 0*4], 11, k5);
- Subround(J, b2, c2, d2, e2, a2, *(word32*)&buffer_[ 9*4], 13, k5);
- Subround(J, a2, b2, c2, d2, e2, *(word32*)&buffer_[ 2*4], 15, k5);
- Subround(J, e2, a2, b2, c2, d2, *(word32*)&buffer_[11*4], 15, k5);
- Subround(J, d2, e2, a2, b2, c2, *(word32*)&buffer_[ 4*4], 5, k5);
- Subround(J, c2, d2, e2, a2, b2, *(word32*)&buffer_[13*4], 7, k5);
- Subround(J, b2, c2, d2, e2, a2, *(word32*)&buffer_[ 6*4], 7, k5);
- Subround(J, a2, b2, c2, d2, e2, *(word32*)&buffer_[15*4], 8, k5);
- Subround(J, e2, a2, b2, c2, d2, *(word32*)&buffer_[ 8*4], 11, k5);
- Subround(J, d2, e2, a2, b2, c2, *(word32*)&buffer_[ 1*4], 14, k5);
- Subround(J, c2, d2, e2, a2, b2, *(word32*)&buffer_[10*4], 14, k5);
- Subround(J, b2, c2, d2, e2, a2, *(word32*)&buffer_[ 3*4], 12, k5);
- Subround(J, a2, b2, c2, d2, e2, *(word32*)&buffer_[12*4], 6, k5);
-
- Subround(I, e2, a2, b2, c2, d2, *(word32*)&buffer_[ 6*4], 9, k6);
- Subround(I, d2, e2, a2, b2, c2, *(word32*)&buffer_[11*4], 13, k6);
- Subround(I, c2, d2, e2, a2, b2, *(word32*)&buffer_[ 3*4], 15, k6);
- Subround(I, b2, c2, d2, e2, a2, *(word32*)&buffer_[ 7*4], 7, k6);
- Subround(I, a2, b2, c2, d2, e2, *(word32*)&buffer_[ 0*4], 12, k6);
- Subround(I, e2, a2, b2, c2, d2, *(word32*)&buffer_[13*4], 8, k6);
- Subround(I, d2, e2, a2, b2, c2, *(word32*)&buffer_[ 5*4], 9, k6);
- Subround(I, c2, d2, e2, a2, b2, *(word32*)&buffer_[10*4], 11, k6);
- Subround(I, b2, c2, d2, e2, a2, *(word32*)&buffer_[14*4], 7, k6);
- Subround(I, a2, b2, c2, d2, e2, *(word32*)&buffer_[15*4], 7, k6);
- Subround(I, e2, a2, b2, c2, d2, *(word32*)&buffer_[ 8*4], 12, k6);
- Subround(I, d2, e2, a2, b2, c2, *(word32*)&buffer_[12*4], 7, k6);
- Subround(I, c2, d2, e2, a2, b2, *(word32*)&buffer_[ 4*4], 6, k6);
- Subround(I, b2, c2, d2, e2, a2, *(word32*)&buffer_[ 9*4], 15, k6);
- Subround(I, a2, b2, c2, d2, e2, *(word32*)&buffer_[ 1*4], 13, k6);
- Subround(I, e2, a2, b2, c2, d2, *(word32*)&buffer_[ 2*4], 11, k6);
-
- Subround(H, d2, e2, a2, b2, c2, *(word32*)&buffer_[15*4], 9, k7);
- Subround(H, c2, d2, e2, a2, b2, *(word32*)&buffer_[ 5*4], 7, k7);
- Subround(H, b2, c2, d2, e2, a2, *(word32*)&buffer_[ 1*4], 15, k7);
- Subround(H, a2, b2, c2, d2, e2, *(word32*)&buffer_[ 3*4], 11, k7);
- Subround(H, e2, a2, b2, c2, d2, *(word32*)&buffer_[ 7*4], 8, k7);
- Subround(H, d2, e2, a2, b2, c2, *(word32*)&buffer_[14*4], 6, k7);
- Subround(H, c2, d2, e2, a2, b2, *(word32*)&buffer_[ 6*4], 6, k7);
- Subround(H, b2, c2, d2, e2, a2, *(word32*)&buffer_[ 9*4], 14, k7);
- Subround(H, a2, b2, c2, d2, e2, *(word32*)&buffer_[11*4], 12, k7);
- Subround(H, e2, a2, b2, c2, d2, *(word32*)&buffer_[ 8*4], 13, k7);
- Subround(H, d2, e2, a2, b2, c2, *(word32*)&buffer_[12*4], 5, k7);
- Subround(H, c2, d2, e2, a2, b2, *(word32*)&buffer_[ 2*4], 14, k7);
- Subround(H, b2, c2, d2, e2, a2, *(word32*)&buffer_[10*4], 13, k7);
- Subround(H, a2, b2, c2, d2, e2, *(word32*)&buffer_[ 0*4], 13, k7);
- Subround(H, e2, a2, b2, c2, d2, *(word32*)&buffer_[ 4*4], 7, k7);
- Subround(H, d2, e2, a2, b2, c2, *(word32*)&buffer_[13*4], 5, k7);
-
- Subround(G, c2, d2, e2, a2, b2, *(word32*)&buffer_[ 8*4], 15, k8);
- Subround(G, b2, c2, d2, e2, a2, *(word32*)&buffer_[ 6*4], 5, k8);
- Subround(G, a2, b2, c2, d2, e2, *(word32*)&buffer_[ 4*4], 8, k8);
- Subround(G, e2, a2, b2, c2, d2, *(word32*)&buffer_[ 1*4], 11, k8);
- Subround(G, d2, e2, a2, b2, c2, *(word32*)&buffer_[ 3*4], 14, k8);
- Subround(G, c2, d2, e2, a2, b2, *(word32*)&buffer_[11*4], 14, k8);
- Subround(G, b2, c2, d2, e2, a2, *(word32*)&buffer_[15*4], 6, k8);
- Subround(G, a2, b2, c2, d2, e2, *(word32*)&buffer_[ 0*4], 14, k8);
- Subround(G, e2, a2, b2, c2, d2, *(word32*)&buffer_[ 5*4], 6, k8);
- Subround(G, d2, e2, a2, b2, c2, *(word32*)&buffer_[12*4], 9, k8);
- Subround(G, c2, d2, e2, a2, b2, *(word32*)&buffer_[ 2*4], 12, k8);
- Subround(G, b2, c2, d2, e2, a2, *(word32*)&buffer_[13*4], 9, k8);
- Subround(G, a2, b2, c2, d2, e2, *(word32*)&buffer_[ 9*4], 12, k8);
- Subround(G, e2, a2, b2, c2, d2, *(word32*)&buffer_[ 7*4], 5, k8);
- Subround(G, d2, e2, a2, b2, c2, *(word32*)&buffer_[10*4], 15, k8);
- Subround(G, c2, d2, e2, a2, b2, *(word32*)&buffer_[14*4], 8, k8);
-
- Subround(F, b2, c2, d2, e2, a2, *(word32*)&buffer_[12*4], 8, k9);
- Subround(F, a2, b2, c2, d2, e2, *(word32*)&buffer_[15*4], 5, k9);
- Subround(F, e2, a2, b2, c2, d2, *(word32*)&buffer_[10*4], 12, k9);
- Subround(F, d2, e2, a2, b2, c2, *(word32*)&buffer_[ 4*4], 9, k9);
- Subround(F, c2, d2, e2, a2, b2, *(word32*)&buffer_[ 1*4], 12, k9);
- Subround(F, b2, c2, d2, e2, a2, *(word32*)&buffer_[ 5*4], 5, k9);
- Subround(F, a2, b2, c2, d2, e2, *(word32*)&buffer_[ 8*4], 14, k9);
- Subround(F, e2, a2, b2, c2, d2, *(word32*)&buffer_[ 7*4], 6, k9);
- Subround(F, d2, e2, a2, b2, c2, *(word32*)&buffer_[ 6*4], 8, k9);
- Subround(F, c2, d2, e2, a2, b2, *(word32*)&buffer_[ 2*4], 13, k9);
- Subround(F, b2, c2, d2, e2, a2, *(word32*)&buffer_[13*4], 6, k9);
- Subround(F, a2, b2, c2, d2, e2, *(word32*)&buffer_[14*4], 5, k9);
- Subround(F, e2, a2, b2, c2, d2, *(word32*)&buffer_[ 0*4], 15, k9);
- Subround(F, d2, e2, a2, b2, c2, *(word32*)&buffer_[ 3*4], 13, k9);
- Subround(F, c2, d2, e2, a2, b2, *(word32*)&buffer_[ 9*4], 11, k9);
- Subround(F, b2, c2, d2, e2, a2, *(word32*)&buffer_[11*4], 11, k9);
+ Subround(F, a1, b1, c1, d1, e1, buffer_[ 0], 11, k0);
+ Subround(F, e1, a1, b1, c1, d1, buffer_[ 1], 14, k0);
+ Subround(F, d1, e1, a1, b1, c1, buffer_[ 2], 15, k0);
+ Subround(F, c1, d1, e1, a1, b1, buffer_[ 3], 12, k0);
+ Subround(F, b1, c1, d1, e1, a1, buffer_[ 4], 5, k0);
+ Subround(F, a1, b1, c1, d1, e1, buffer_[ 5], 8, k0);
+ Subround(F, e1, a1, b1, c1, d1, buffer_[ 6], 7, k0);
+ Subround(F, d1, e1, a1, b1, c1, buffer_[ 7], 9, k0);
+ Subround(F, c1, d1, e1, a1, b1, buffer_[ 8], 11, k0);
+ Subround(F, b1, c1, d1, e1, a1, buffer_[ 9], 13, k0);
+ Subround(F, a1, b1, c1, d1, e1, buffer_[10], 14, k0);
+ Subround(F, e1, a1, b1, c1, d1, buffer_[11], 15, k0);
+ Subround(F, d1, e1, a1, b1, c1, buffer_[12], 6, k0);
+ Subround(F, c1, d1, e1, a1, b1, buffer_[13], 7, k0);
+ Subround(F, b1, c1, d1, e1, a1, buffer_[14], 9, k0);
+ Subround(F, a1, b1, c1, d1, e1, buffer_[15], 8, k0);
+
+ Subround(G, e1, a1, b1, c1, d1, buffer_[ 7], 7, k1);
+ Subround(G, d1, e1, a1, b1, c1, buffer_[ 4], 6, k1);
+ Subround(G, c1, d1, e1, a1, b1, buffer_[13], 8, k1);
+ Subround(G, b1, c1, d1, e1, a1, buffer_[ 1], 13, k1);
+ Subround(G, a1, b1, c1, d1, e1, buffer_[10], 11, k1);
+ Subround(G, e1, a1, b1, c1, d1, buffer_[ 6], 9, k1);
+ Subround(G, d1, e1, a1, b1, c1, buffer_[15], 7, k1);
+ Subround(G, c1, d1, e1, a1, b1, buffer_[ 3], 15, k1);
+ Subround(G, b1, c1, d1, e1, a1, buffer_[12], 7, k1);
+ Subround(G, a1, b1, c1, d1, e1, buffer_[ 0], 12, k1);
+ Subround(G, e1, a1, b1, c1, d1, buffer_[ 9], 15, k1);
+ Subround(G, d1, e1, a1, b1, c1, buffer_[ 5], 9, k1);
+ Subround(G, c1, d1, e1, a1, b1, buffer_[ 2], 11, k1);
+ Subround(G, b1, c1, d1, e1, a1, buffer_[14], 7, k1);
+ Subround(G, a1, b1, c1, d1, e1, buffer_[11], 13, k1);
+ Subround(G, e1, a1, b1, c1, d1, buffer_[ 8], 12, k1);
+
+ Subround(H, d1, e1, a1, b1, c1, buffer_[ 3], 11, k2);
+ Subround(H, c1, d1, e1, a1, b1, buffer_[10], 13, k2);
+ Subround(H, b1, c1, d1, e1, a1, buffer_[14], 6, k2);
+ Subround(H, a1, b1, c1, d1, e1, buffer_[ 4], 7, k2);
+ Subround(H, e1, a1, b1, c1, d1, buffer_[ 9], 14, k2);
+ Subround(H, d1, e1, a1, b1, c1, buffer_[15], 9, k2);
+ Subround(H, c1, d1, e1, a1, b1, buffer_[ 8], 13, k2);
+ Subround(H, b1, c1, d1, e1, a1, buffer_[ 1], 15, k2);
+ Subround(H, a1, b1, c1, d1, e1, buffer_[ 2], 14, k2);
+ Subround(H, e1, a1, b1, c1, d1, buffer_[ 7], 8, k2);
+ Subround(H, d1, e1, a1, b1, c1, buffer_[ 0], 13, k2);
+ Subround(H, c1, d1, e1, a1, b1, buffer_[ 6], 6, k2);
+ Subround(H, b1, c1, d1, e1, a1, buffer_[13], 5, k2);
+ Subround(H, a1, b1, c1, d1, e1, buffer_[11], 12, k2);
+ Subround(H, e1, a1, b1, c1, d1, buffer_[ 5], 7, k2);
+ Subround(H, d1, e1, a1, b1, c1, buffer_[12], 5, k2);
+
+ Subround(I, c1, d1, e1, a1, b1, buffer_[ 1], 11, k3);
+ Subround(I, b1, c1, d1, e1, a1, buffer_[ 9], 12, k3);
+ Subround(I, a1, b1, c1, d1, e1, buffer_[11], 14, k3);
+ Subround(I, e1, a1, b1, c1, d1, buffer_[10], 15, k3);
+ Subround(I, d1, e1, a1, b1, c1, buffer_[ 0], 14, k3);
+ Subround(I, c1, d1, e1, a1, b1, buffer_[ 8], 15, k3);
+ Subround(I, b1, c1, d1, e1, a1, buffer_[12], 9, k3);
+ Subround(I, a1, b1, c1, d1, e1, buffer_[ 4], 8, k3);
+ Subround(I, e1, a1, b1, c1, d1, buffer_[13], 9, k3);
+ Subround(I, d1, e1, a1, b1, c1, buffer_[ 3], 14, k3);
+ Subround(I, c1, d1, e1, a1, b1, buffer_[ 7], 5, k3);
+ Subround(I, b1, c1, d1, e1, a1, buffer_[15], 6, k3);
+ Subround(I, a1, b1, c1, d1, e1, buffer_[14], 8, k3);
+ Subround(I, e1, a1, b1, c1, d1, buffer_[ 5], 6, k3);
+ Subround(I, d1, e1, a1, b1, c1, buffer_[ 6], 5, k3);
+ Subround(I, c1, d1, e1, a1, b1, buffer_[ 2], 12, k3);
+
+ Subround(J, b1, c1, d1, e1, a1, buffer_[ 4], 9, k4);
+ Subround(J, a1, b1, c1, d1, e1, buffer_[ 0], 15, k4);
+ Subround(J, e1, a1, b1, c1, d1, buffer_[ 5], 5, k4);
+ Subround(J, d1, e1, a1, b1, c1, buffer_[ 9], 11, k4);
+ Subround(J, c1, d1, e1, a1, b1, buffer_[ 7], 6, k4);
+ Subround(J, b1, c1, d1, e1, a1, buffer_[12], 8, k4);
+ Subround(J, a1, b1, c1, d1, e1, buffer_[ 2], 13, k4);
+ Subround(J, e1, a1, b1, c1, d1, buffer_[10], 12, k4);
+ Subround(J, d1, e1, a1, b1, c1, buffer_[14], 5, k4);
+ Subround(J, c1, d1, e1, a1, b1, buffer_[ 1], 12, k4);
+ Subround(J, b1, c1, d1, e1, a1, buffer_[ 3], 13, k4);
+ Subround(J, a1, b1, c1, d1, e1, buffer_[ 8], 14, k4);
+ Subround(J, e1, a1, b1, c1, d1, buffer_[11], 11, k4);
+ Subround(J, d1, e1, a1, b1, c1, buffer_[ 6], 8, k4);
+ Subround(J, c1, d1, e1, a1, b1, buffer_[15], 5, k4);
+ Subround(J, b1, c1, d1, e1, a1, buffer_[13], 6, k4);
+
+ Subround(J, a2, b2, c2, d2, e2, buffer_[ 5], 8, k5);
+ Subround(J, e2, a2, b2, c2, d2, buffer_[14], 9, k5);
+ Subround(J, d2, e2, a2, b2, c2, buffer_[ 7], 9, k5);
+ Subround(J, c2, d2, e2, a2, b2, buffer_[ 0], 11, k5);
+ Subround(J, b2, c2, d2, e2, a2, buffer_[ 9], 13, k5);
+ Subround(J, a2, b2, c2, d2, e2, buffer_[ 2], 15, k5);
+ Subround(J, e2, a2, b2, c2, d2, buffer_[11], 15, k5);
+ Subround(J, d2, e2, a2, b2, c2, buffer_[ 4], 5, k5);
+ Subround(J, c2, d2, e2, a2, b2, buffer_[13], 7, k5);
+ Subround(J, b2, c2, d2, e2, a2, buffer_[ 6], 7, k5);
+ Subround(J, a2, b2, c2, d2, e2, buffer_[15], 8, k5);
+ Subround(J, e2, a2, b2, c2, d2, buffer_[ 8], 11, k5);
+ Subround(J, d2, e2, a2, b2, c2, buffer_[ 1], 14, k5);
+ Subround(J, c2, d2, e2, a2, b2, buffer_[10], 14, k5);
+ Subround(J, b2, c2, d2, e2, a2, buffer_[ 3], 12, k5);
+ Subround(J, a2, b2, c2, d2, e2, buffer_[12], 6, k5);
+
+ Subround(I, e2, a2, b2, c2, d2, buffer_[ 6], 9, k6);
+ Subround(I, d2, e2, a2, b2, c2, buffer_[11], 13, k6);
+ Subround(I, c2, d2, e2, a2, b2, buffer_[ 3], 15, k6);
+ Subround(I, b2, c2, d2, e2, a2, buffer_[ 7], 7, k6);
+ Subround(I, a2, b2, c2, d2, e2, buffer_[ 0], 12, k6);
+ Subround(I, e2, a2, b2, c2, d2, buffer_[13], 8, k6);
+ Subround(I, d2, e2, a2, b2, c2, buffer_[ 5], 9, k6);
+ Subround(I, c2, d2, e2, a2, b2, buffer_[10], 11, k6);
+ Subround(I, b2, c2, d2, e2, a2, buffer_[14], 7, k6);
+ Subround(I, a2, b2, c2, d2, e2, buffer_[15], 7, k6);
+ Subround(I, e2, a2, b2, c2, d2, buffer_[ 8], 12, k6);
+ Subround(I, d2, e2, a2, b2, c2, buffer_[12], 7, k6);
+ Subround(I, c2, d2, e2, a2, b2, buffer_[ 4], 6, k6);
+ Subround(I, b2, c2, d2, e2, a2, buffer_[ 9], 15, k6);
+ Subround(I, a2, b2, c2, d2, e2, buffer_[ 1], 13, k6);
+ Subround(I, e2, a2, b2, c2, d2, buffer_[ 2], 11, k6);
+
+ Subround(H, d2, e2, a2, b2, c2, buffer_[15], 9, k7);
+ Subround(H, c2, d2, e2, a2, b2, buffer_[ 5], 7, k7);
+ Subround(H, b2, c2, d2, e2, a2, buffer_[ 1], 15, k7);
+ Subround(H, a2, b2, c2, d2, e2, buffer_[ 3], 11, k7);
+ Subround(H, e2, a2, b2, c2, d2, buffer_[ 7], 8, k7);
+ Subround(H, d2, e2, a2, b2, c2, buffer_[14], 6, k7);
+ Subround(H, c2, d2, e2, a2, b2, buffer_[ 6], 6, k7);
+ Subround(H, b2, c2, d2, e2, a2, buffer_[ 9], 14, k7);
+ Subround(H, a2, b2, c2, d2, e2, buffer_[11], 12, k7);
+ Subround(H, e2, a2, b2, c2, d2, buffer_[ 8], 13, k7);
+ Subround(H, d2, e2, a2, b2, c2, buffer_[12], 5, k7);
+ Subround(H, c2, d2, e2, a2, b2, buffer_[ 2], 14, k7);
+ Subround(H, b2, c2, d2, e2, a2, buffer_[10], 13, k7);
+ Subround(H, a2, b2, c2, d2, e2, buffer_[ 0], 13, k7);
+ Subround(H, e2, a2, b2, c2, d2, buffer_[ 4], 7, k7);
+ Subround(H, d2, e2, a2, b2, c2, buffer_[13], 5, k7);
+
+ Subround(G, c2, d2, e2, a2, b2, buffer_[ 8], 15, k8);
+ Subround(G, b2, c2, d2, e2, a2, buffer_[ 6], 5, k8);
+ Subround(G, a2, b2, c2, d2, e2, buffer_[ 4], 8, k8);
+ Subround(G, e2, a2, b2, c2, d2, buffer_[ 1], 11, k8);
+ Subround(G, d2, e2, a2, b2, c2, buffer_[ 3], 14, k8);
+ Subround(G, c2, d2, e2, a2, b2, buffer_[11], 14, k8);
+ Subround(G, b2, c2, d2, e2, a2, buffer_[15], 6, k8);
+ Subround(G, a2, b2, c2, d2, e2, buffer_[ 0], 14, k8);
+ Subround(G, e2, a2, b2, c2, d2, buffer_[ 5], 6, k8);
+ Subround(G, d2, e2, a2, b2, c2, buffer_[12], 9, k8);
+ Subround(G, c2, d2, e2, a2, b2, buffer_[ 2], 12, k8);
+ Subround(G, b2, c2, d2, e2, a2, buffer_[13], 9, k8);
+ Subround(G, a2, b2, c2, d2, e2, buffer_[ 9], 12, k8);
+ Subround(G, e2, a2, b2, c2, d2, buffer_[ 7], 5, k8);
+ Subround(G, d2, e2, a2, b2, c2, buffer_[10], 15, k8);
+ Subround(G, c2, d2, e2, a2, b2, buffer_[14], 8, k8);
+
+ Subround(F, b2, c2, d2, e2, a2, buffer_[12], 8, k9);
+ Subround(F, a2, b2, c2, d2, e2, buffer_[15], 5, k9);
+ Subround(F, e2, a2, b2, c2, d2, buffer_[10], 12, k9);
+ Subround(F, d2, e2, a2, b2, c2, buffer_[ 4], 9, k9);
+ Subround(F, c2, d2, e2, a2, b2, buffer_[ 1], 12, k9);
+ Subround(F, b2, c2, d2, e2, a2, buffer_[ 5], 5, k9);
+ Subround(F, a2, b2, c2, d2, e2, buffer_[ 8], 14, k9);
+ Subround(F, e2, a2, b2, c2, d2, buffer_[ 7], 6, k9);
+ Subround(F, d2, e2, a2, b2, c2, buffer_[ 6], 8, k9);
+ Subround(F, c2, d2, e2, a2, b2, buffer_[ 2], 13, k9);
+ Subround(F, b2, c2, d2, e2, a2, buffer_[13], 6, k9);
+ Subround(F, a2, b2, c2, d2, e2, buffer_[14], 5, k9);
+ Subround(F, e2, a2, b2, c2, d2, buffer_[ 0], 15, k9);
+ Subround(F, d2, e2, a2, b2, c2, buffer_[ 3], 13, k9);
+ Subround(F, c2, d2, e2, a2, b2, buffer_[ 9], 11, k9);
+ Subround(F, b2, c2, d2, e2, a2, buffer_[11], 11, k9);
c1 = digest_[1] + c1 + d2;
digest_[1] = digest_[2] + d1 + e2;
--- 1.5/extra/yassl/taocrypt/src/rsa.cpp 2005-05-31 20:56:26 +05:00
+++ 1.6/extra/yassl/taocrypt/src/rsa.cpp 2005-06-10 20:09:36 +05:00
@@ -24,7 +24,6 @@
#include "rsa.hpp"
#include "asn.hpp"
#include "modarith.hpp"
-#include "stdexcept.hpp"
--- 1.1/extra/yassl/taocrypt/src/sha.cpp 2005-04-28 18:23:21 +05:00
+++ 1.2/extra/yassl/taocrypt/src/sha.cpp 2005-06-10 20:09:36 +05:00
@@ -29,7 +29,7 @@
namespace TaoCrypt {
-#define blk0(i) (W[i] = (*reinterpret_cast<word32*>(&buffer_[i*4])))
+#define blk0(i) (W[i] = buffer_[i])
#define blk1(i) (W[i&15] = \
rotlFixed(W[(i+13)&15]^W[(i+8)&15]^W[(i+2)&15]^W[i&15],1))
@@ -85,10 +85,11 @@
void SHA::Swap(SHA& other)
{
- mySTL::swap(buffer_, other.buffer_);
- mySTL::swap(buffLen_, other.buffLen_);
- mySTL::swap(digest_, other.digest_);
mySTL::swap(length_, other.length_);
+ mySTL::swap(buffLen_, other.buffLen_);
+
+ memcpy(digest_, other.digest_, DIGEST_SIZE);
+ memcpy(buffer_, other.buffer_, BLOCK_SIZE);
}
| Thread |
|---|
| • bk commit into 5.0 tree (svoj:1.1953) | svoj | 10 Jun |