List:Internals« Previous MessageNext Message »
From:svoj Date:May 24 2005 7:15pm
Subject:bk commit into 5.0 tree (svoj:1.1904)
View as plain text  
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.1904 05/05/25 00:15:06 svoj@stripped +28 -0
  Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/src/rsa.cpp
    1.4 05/05/25 00:15:01 svoj@stripped +0 -7
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/src/random.cpp
    1.2 05/05/25 00:15:01 svoj@stripped +0 -1
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/src/misc.cpp
    1.2 05/05/25 00:15:01 svoj@stripped +0 -27
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/src/integer.cpp
    1.5 05/05/25 00:15:01 svoj@stripped +8 -235
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/src/dsa.cpp
    1.2 05/05/25 00:15:01 svoj@stripped +0 -2
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/src/dh.cpp
    1.3 05/05/25 00:15:01 svoj@stripped +0 -1
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/src/asn.cpp
    1.2 05/05/25 00:15:01 svoj@stripped +10 -10
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/src/algebra.cpp
    1.2 05/05/25 00:15:01 svoj@stripped +37 -62
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/include/modes.hpp
    1.2 05/05/25 00:15:01 svoj@stripped +27 -28
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/include/modarith.hpp
    1.2 05/05/25 00:15:01 svoj@stripped +6 -7
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/include/misc.hpp
    1.4 05/05/25 00:15:01 svoj@stripped +0 -11
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/include/integer.hpp
    1.4 05/05/25 00:15:01 svoj@stripped +3 -7
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/include/hash.hpp
    1.2 05/05/25 00:15:01 svoj@stripped +1 -1
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/include/error.hpp
    1.3 05/05/25 00:15:01 svoj@stripped +2 -1
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/include/des.hpp
    1.2 05/05/25 00:15:01 svoj@stripped +3 -2
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/include/block.hpp
    1.3 05/05/25 00:15:00 svoj@stripped +8 -12
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/include/algebra.hpp
    1.2 05/05/25 00:15:00 svoj@stripped +19 -107
    Upgrade yaSSL to 0.9.9.

  extra/yassl/taocrypt/include/aes.hpp
    1.2 05/05/25 00:15:00 svoj@stripped +3 -2
    Upgrade yaSSL to 0.9.9.

  extra/yassl/src/yassl_int.cpp
    1.5 05/05/25 00:15:00 svoj@stripped +53 -74
    Upgrade yaSSL to 0.9.9.

  extra/yassl/src/yassl_imp.cpp
    1.4 05/05/25 00:15:00 svoj@stripped +39 -40
    Upgrade yaSSL to 0.9.9.

  extra/yassl/src/ssl.cpp
    1.3 05/05/25 00:15:00 svoj@stripped +2 -2
    Upgrade yaSSL to 0.9.9.

  extra/yassl/src/handshake.cpp
    1.2 05/05/25 00:15:00 svoj@stripped +15 -15
    Upgrade yaSSL to 0.9.9.

  extra/yassl/src/crypto_wrapper.cpp
    1.3 05/05/25 00:15:00 svoj@stripped +27 -31
    Upgrade yaSSL to 0.9.9.

  extra/yassl/src/cert_wrapper.cpp
    1.3 05/05/25 00:15:00 svoj@stripped +12 -12
    Upgrade yaSSL to 0.9.9.

  extra/yassl/src/buffer.cpp
    1.2 05/05/25 00:15:00 svoj@stripped +6 -6
    Upgrade yaSSL to 0.9.9.

  extra/yassl/include/yassl_types.hpp
    1.4 05/05/25 00:15:00 svoj@stripped +0 -10
    Upgrade yaSSL to 0.9.9.

  extra/yassl/include/yassl_int.hpp
    1.3 05/05/25 00:15:00 svoj@stripped +1 -1
    Upgrade yaSSL to 0.9.9.

  extra/yassl/include/factory.hpp
    1.2 05/05/25 00:15:00 svoj@stripped +1 -1
    Upgrade yaSSL to 0.9.9.

# 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.1/extra/yassl/include/factory.hpp	2005-04-28 18:23:03 +05:00
+++ 1.2/extra/yassl/include/factory.hpp	2005-05-25 00:15:00 +05:00
@@ -67,7 +67,7 @@
         init(*this); 
     }
 
-    // reservce place in vector before registering, used by init funcion
+    // reserve place in vector before registering, used by init funcion
     void Reserve(size_t sz)
     {
         callbacks_.reserve(sz);

--- 1.2/extra/yassl/include/yassl_int.hpp	2005-05-06 20:54:27 +05:00
+++ 1.3/extra/yassl/include/yassl_int.hpp	2005-05-25 00:15:00 +05:00
@@ -31,8 +31,8 @@
 #include "yassl_imp.hpp"
 #include "crypto_wrapper.hpp"
 #include "cert_wrapper.hpp"
-#include "lock.hpp"
 #include "log.hpp"
+#include "lock.hpp"
 
 
 namespace yaSSL {

--- 1.3/extra/yassl/include/yassl_types.hpp	2005-05-20 23:52:35 +05:00
+++ 1.4/extra/yassl/include/yassl_types.hpp	2005-05-25 00:15:00 +05:00
@@ -29,16 +29,6 @@
 
 #include <stddef.h>
 
-namespace yaSSL {
-
-// library allocation
-struct new_t {};      // yaSSL New type
-extern new_t ys;      // pass in parameter
-
-} // namespace yaSSL
-
-void* operator new  (size_t, yaSSL::new_t);
-void* operator new[](size_t, yaSSL::new_t);
 
 namespace yaSSL {
 

--- 1.1/extra/yassl/src/buffer.cpp	2005-04-28 18:23:09 +05:00
+++ 1.2/extra/yassl/src/buffer.cpp	2005-05-25 00:15:00 +05:00
@@ -62,13 +62,13 @@
 
 
 input_buffer::input_buffer(uint s) 
-    : size_(0), current_(0), buffer_(new (ys) byte[s]), end_(buffer_ + s)
+    : size_(0), current_(0), buffer_(new byte[s]), end_(buffer_ + s)
 {}
 
 
 // with assign
 input_buffer::input_buffer(uint s, const byte* t, uint len) 
-    : size_(0), current_(0), buffer_(new (ys) byte[s]), end_(buffer_ + s) 
+    : size_(0), current_(0), buffer_(new byte[s]), end_(buffer_ + s) 
 { 
     assign(t, len); 
 }
@@ -84,7 +84,7 @@
 void input_buffer::allocate(uint s) 
 { 
     assert(!buffer_);       // find realloc error
-    buffer_ = new (ys) byte[s];
+    buffer_ = new byte[s];
     end_ = buffer_ + s; 
 }
 
@@ -198,13 +198,13 @@
 
 // with allocate
 output_buffer::output_buffer(uint s) 
-    : current_(0), buffer_(new (ys) byte[s]), end_(buffer_ + s) 
+    : current_(0), buffer_(new byte[s]), end_(buffer_ + s) 
 {}
 
 
 // with assign
 output_buffer::output_buffer(uint s, const byte* t, uint len) 
-    : current_(0), buffer_(new (ys) byte[s]), end_(buffer_+ s) 
+    : current_(0), buffer_(new byte[s]), end_(buffer_+ s) 
 { 
     write(t, len); 
 }
@@ -239,7 +239,7 @@
 void output_buffer::allocate(uint s) 
 { 
     assert(!buffer_);   // find realloc error
-    buffer_ = new (ys) byte[s]; end_ = buffer_ + s; 
+    buffer_ = new byte[s]; end_ = buffer_ + s; 
 }
 
 

--- 1.2/extra/yassl/src/cert_wrapper.cpp	2005-05-20 01:44:00 +05:00
+++ 1.3/extra/yassl/src/cert_wrapper.cpp	2005-05-25 00:15:00 +05:00
@@ -39,7 +39,7 @@
 namespace yaSSL {
 
 
-x509::x509(uint sz) : length_(sz), buffer_(new (ys) opaque[sz]) 
+x509::x509(uint sz) : length_(sz), buffer_(new opaque[sz]) 
 {
 }
 
@@ -51,7 +51,7 @@
 
 
 x509::x509(const x509& that) : length_(that.length_),
-                               buffer_(new (ys) opaque[length_])
+                               buffer_(new opaque[length_])
 {
     memcpy(buffer_, that.buffer_, length_);
 }
@@ -153,7 +153,7 @@
 void CertManager::CopySelfCert(const x509* x)
 {
     if (x)
-        list_.push_back(new (ys) x509(*x));
+        list_.push_back(new x509(*x));
 }
 
 
@@ -165,7 +165,7 @@
 
     if (!cert.GetError().What()) {
         const TaoCrypt::PublicKey& key = cert.GetPublicKey();
-        signers_.push_back(new (ys) TaoCrypt::Signer(key.GetKey(), key.size(),
+        signers_.push_back(new TaoCrypt::Signer(key.GetKey(), key.size(),
                                         cert.GetCommonName(), cert.GetHash()));
     }
     return cert.GetError().What();
@@ -234,7 +234,7 @@
             return err;
 
         const TaoCrypt::PublicKey& key = cert.GetPublicKey();
-        signers_.push_back(new (ys) TaoCrypt::Signer(key.GetKey(), key.size(),
+        signers_.push_back(new TaoCrypt::Signer(key.GetKey(), key.size(),
                                         cert.GetCommonName(), cert.GetHash()));
         --last;
         --count;
@@ -259,7 +259,7 @@
 
         int iSz = cert.GetIssuer() ? strlen(cert.GetIssuer()) + 1 : 0;
         int sSz = cert.GetCommonName() ? strlen(cert.GetCommonName()) + 1 : 0;
-        peerX509_ = new (ys) X509(cert.GetIssuer(), iSz, cert.GetCommonName(),
+        peerX509_ = new X509(cert.GetIssuer(), iSz, cert.GetCommonName(),
                                   sSz);
     }
     return 0;
@@ -273,13 +273,13 @@
     privateKey_.assign(key.get_buffer(), key.get_length());
 
     // set key type
-    if (x509* cert509 = list_.front()) {
-        TaoCrypt::Source source(cert509->get_buffer(), cert509->get_length());
-        TaoCrypt::CertDecoder cert(source, false);
-        cert.DecodeToKey();
-        if (int err = cert.GetError().What())
+    if (x509* cert = list_.front()) {
+        TaoCrypt::Source source(cert->get_buffer(), cert->get_length());
+        TaoCrypt::CertDecoder cd(source, false);
+        cd.DecodeToKey();
+        if (int err = cd.GetError().What())
             return err;
-        if (cert.GetKeyType() == TaoCrypt::RSAk)
+        if (cd.GetKeyType() == TaoCrypt::RSAk)
             keyType_ = rsa_sa_algo;
         else
             keyType_ = dsa_sa_algo;

--- 1.2/extra/yassl/src/crypto_wrapper.cpp	2005-04-30 22:48:23 +05:00
+++ 1.3/extra/yassl/src/crypto_wrapper.cpp	2005-05-25 00:15:00 +05:00
@@ -58,13 +58,13 @@
 };
 
 
-MD5::MD5() : pimpl_(new (ys) MD5Impl) {}
+MD5::MD5() : pimpl_(new MD5Impl) {}
 
 
 MD5::~MD5() { delete pimpl_; }
 
 
-MD5::MD5(const MD5& that) : Digest(), pimpl_(new (ys) 
+MD5::MD5(const MD5& that) : Digest(), pimpl_(new 
                                              MD5Impl(that.pimpl_->md5_)) {}
 
 
@@ -116,14 +116,13 @@
 };
 
 
-SHA::SHA() : pimpl_(new (ys) SHAImpl) {}
+SHA::SHA() : pimpl_(new SHAImpl) {}
 
 
 SHA::~SHA() { delete pimpl_; }
 
 
-SHA::SHA(const SHA& that) : Digest(), pimpl_(new (ys)
-                                             SHAImpl(that.pimpl_->sha_)) {}
+SHA::SHA(const SHA& that) : Digest(), pimpl_(new SHAImpl(that.pimpl_->sha_)) {}
 
 SHA& SHA::operator=(const SHA& that)
 {
@@ -174,14 +173,13 @@
 };
 
 
-RMD::RMD() : pimpl_(new (ys) RMDImpl) {}
+RMD::RMD() : pimpl_(new RMDImpl) {}
 
 
 RMD::~RMD() { delete pimpl_; }
 
 
-RMD::RMD(const RMD& that) : Digest(), pimpl_(new (ys)
-                                             RMDImpl(that.pimpl_->rmd_)) {}
+RMD::RMD(const RMD& that) : Digest(), pimpl_(new RMDImpl(that.pimpl_->rmd_)) {}
 
 RMD& RMD::operator=(const RMD& that)
 {
@@ -232,7 +230,7 @@
 
 
 HMAC_MD5::HMAC_MD5(const byte* secret, unsigned int len) 
-    : pimpl_(new (ys) HMAC_MD5Impl) 
+    : pimpl_(new HMAC_MD5Impl) 
 {
     pimpl_->mac_.SetKey(secret, len);
 }
@@ -282,7 +280,7 @@
 
 
 HMAC_SHA::HMAC_SHA(const byte* secret, unsigned int len) 
-    : pimpl_(new (ys) HMAC_SHAImpl) 
+    : pimpl_(new HMAC_SHAImpl) 
 {
     pimpl_->mac_.SetKey(secret, len);
 }
@@ -333,7 +331,7 @@
 
 
 HMAC_RMD::HMAC_RMD(const byte* secret, unsigned int len) 
-    : pimpl_(new (ys) HMAC_RMDImpl) 
+    : pimpl_(new HMAC_RMDImpl) 
 {
     pimpl_->mac_.SetKey(secret, len);
 }
@@ -381,7 +379,7 @@
 };
 
 
-DES::DES() : pimpl_(new (ys) DESImpl) {}
+DES::DES() : pimpl_(new DESImpl) {}
 
 DES::~DES() { delete pimpl_; }
 
@@ -417,7 +415,7 @@
 };
 
 
-DES_EDE::DES_EDE() : pimpl_(new (ys) DES_EDEImpl) {}
+DES_EDE::DES_EDE() : pimpl_(new DES_EDEImpl) {}
 
 DES_EDE::~DES_EDE() { delete pimpl_; }
 
@@ -455,7 +453,7 @@
 };
 
 
-RC4::RC4() : pimpl_(new (ys) RC4Impl) {}
+RC4::RC4() : pimpl_(new RC4Impl) {}
 
 RC4::~RC4() { delete pimpl_; }
 
@@ -497,7 +495,7 @@
 };
 
 
-AES::AES(unsigned int ks) : pimpl_(new (ys) AESImpl(ks)) {}
+AES::AES(unsigned int ks) : pimpl_(new AESImpl(ks)) {}
 
 AES::~AES() { delete pimpl_; }
 
@@ -538,7 +536,7 @@
     TaoCrypt::RandomNumberGenerator RNG_;
 };
 
-RandomPool::RandomPool() : pimpl_(new (ys) RandomImpl) {}
+RandomPool::RandomPool() : pimpl_(new RandomImpl) {}
 
 RandomPool::~RandomPool() { delete pimpl_; }
 
@@ -582,7 +580,7 @@
 
 // Set public or private key
 DSS::DSS(const byte* key, unsigned int sz, bool publicKey) 
-    : pimpl_(new (ys) DSSImpl)
+    : pimpl_(new DSSImpl)
 {
     if (publicKey) 
         pimpl_->SetPublic(key, sz);
@@ -653,7 +651,7 @@
 
 // Set public or private key
 RSA::RSA(const byte* key, unsigned int sz, bool publicKey) 
-    : pimpl_(new (ys) RSAImpl)
+    : pimpl_(new RSAImpl)
 {
     if (publicKey) 
         pimpl_->SetPublic(key, sz);
@@ -725,13 +723,13 @@
     explicit IntegerImpl(const TaoCrypt::Integer& i) : int_(i) {}
 };
 
-Integer::Integer() : pimpl_(new (ys) IntegerImpl) {}
+Integer::Integer() : pimpl_(new IntegerImpl) {}
 
 Integer::~Integer() { delete pimpl_; }
 
 
 
-Integer::Integer(const Integer& other) : pimpl_(new (ys) 
+Integer::Integer(const Integer& other) : pimpl_(new 
                                                IntegerImpl(other.pimpl_->int_))
 {}
 
@@ -770,9 +768,9 @@
 
     void AllocKeys(unsigned int pubSz, unsigned int privSz, unsigned int agrSz)
     {
-        publicKey_  = new (ys) byte[pubSz];
-        privateKey_ = new (ys) byte[privSz];
-        agreedKey_  = new (ys) byte[agrSz];
+        publicKey_  = new byte[pubSz];
+        privateKey_ = new byte[privSz];
+        agreedKey_  = new byte[agrSz];
     }
 };
 
@@ -781,7 +779,7 @@
 /*
 // server Side DH, server's view
 DiffieHellman::DiffieHellman(const char* file, const RandomPool& random)
-    : pimpl_(new (ys) DHImpl(random.pimpl_->RNG_))
+    : pimpl_(new DHImpl(random.pimpl_->RNG_))
 {
     using namespace TaoCrypt;
     Source source;
@@ -805,12 +803,12 @@
 DiffieHellman::DiffieHellman(const byte* p, unsigned int pSz, const byte* g,
                              unsigned int gSz, const byte* pub,
                              unsigned int pubSz, const RandomPool& random)
-    : pimpl_(new (ys) DHImpl(random.pimpl_->RNG_))
+    : pimpl_(new DHImpl(random.pimpl_->RNG_))
 {
     using TaoCrypt::Integer;
 
     pimpl_->dh_.Initialize(Integer(p, pSz).Ref(), Integer(g, gSz).Ref());
-    pimpl_->publicKey_ = new (ys) opaque[pubSz];
+    pimpl_->publicKey_ = new opaque[pubSz];
     memcpy(pimpl_->publicKey_, pub, pubSz);
 }
 
@@ -818,7 +816,7 @@
 // Server Side DH, server's view
 DiffieHellman::DiffieHellman(const Integer& p, const Integer& g,
                              const RandomPool& random)
-: pimpl_(new (ys) DHImpl(random.pimpl_->RNG_))
+: pimpl_(new DHImpl(random.pimpl_->RNG_))
 {
     using TaoCrypt::Integer;
 
@@ -836,7 +834,7 @@
 
 // Client side and view, use server that for p and g
 DiffieHellman::DiffieHellman(const DiffieHellman& that) 
-    : pimpl_(new (ys) DHImpl(*that.pimpl_))
+    : pimpl_(new DHImpl(*that.pimpl_))
 {   
     pimpl_->dh_.GenerateKeyPair(pimpl_->ranPool_, pimpl_->privateKey_,
                                                   pimpl_->publicKey_);
@@ -957,7 +955,7 @@
     Base64Decoder b64Dec(der);
 
     uint sz = der.size();
-    mySTL::auto_ptr<x509> x(new (ys) x509(sz));
+    mySTL::auto_ptr<x509> x(new x509(sz));
     memcpy(x->use_buffer(), der.get_buffer(), sz);
 
     fclose(file);
@@ -971,8 +969,6 @@
 template class TaoCrypt::HMAC<TaoCrypt::MD5>;
 template class TaoCrypt::HMAC<TaoCrypt::SHA>;
 template class TaoCrypt::HMAC<TaoCrypt::RIPEMD160>;
-template class TaoCrypt::Mode_BASE<16>;
-template class TaoCrypt::Mode_BASE<8>;
 #endif
 
 #endif // !USE_CRYPTOPP_LIB

--- 1.1/extra/yassl/src/handshake.cpp	2005-04-28 18:23:10 +05:00
+++ 1.2/extra/yassl/src/handshake.cpp	2005-05-25 00:15:00 +05:00
@@ -362,9 +362,9 @@
     if (lastLen) times += 1;
 
     if (hash == md5)
-        hmac.reset(new (ys) HMAC_MD5(secret.get_buffer(), secret.get_size()));
+        hmac.reset(new HMAC_MD5(secret.get_buffer(), secret.get_size()));
     else
-        hmac.reset(new (ys) HMAC_SHA(secret.get_buffer(), secret.get_size()));
+        hmac.reset(new HMAC_SHA(secret.get_buffer(), secret.get_size()));
                                                                    // A0 = seed
     hmac->get_digest(previous, seed.get_buffer(), seed.get_size());// A1
     uint lastTime = times - 1;
@@ -582,11 +582,11 @@
     MACAlgorithm algo = ssl.getSecurity().get_parms().mac_algorithm_;
 
     if (algo == sha)
-        hmac.reset(new (ys) HMAC_SHA(ssl.get_macSecret(verify), SHA_LEN));
+        hmac.reset(new HMAC_SHA(ssl.get_macSecret(verify), SHA_LEN));
     else if (algo == rmd)
-        hmac.reset(new (ys) HMAC_RMD(ssl.get_macSecret(verify), RMD_LEN));
+        hmac.reset(new HMAC_RMD(ssl.get_macSecret(verify), RMD_LEN));
     else
-        hmac.reset(new (ys) HMAC_MD5(ssl.get_macSecret(verify), MD5_LEN));
+        hmac.reset(new HMAC_MD5(ssl.get_macSecret(verify), MD5_LEN));
     
     hmac->update(seq, SEQ_SZ);                                       // seq_num
     inner[0] = content;                                              // type
@@ -687,7 +687,7 @@
         // make sure we have enough input in buffer to process this record
         if (hdr.length_ > buffer.get_remaining()) { 
             uint sz = buffer.get_remaining() + RECORD_HEADER;
-            buffered.reset(new (ys) input_buffer(sz, buffer.get_buffer() +
+            buffered.reset(new input_buffer(sz, buffer.get_buffer() +
                            buffer.get_current() - RECORD_HEADER, sz));
             break;
         }
@@ -760,7 +760,7 @@
 
     RecordLayerHeader rlHeader;
     HandShakeHeader   hsHeader;
-    mySTL::auto_ptr<output_buffer> out(new (ys) output_buffer);
+    mySTL::auto_ptr<output_buffer> out(new output_buffer);
     buildHeaders(ssl, hsHeader, rlHeader, ck);
     buildOutput(*out.get(), rlHeader, hsHeader, ck);
     hashHandShake(ssl, *out.get());
@@ -781,7 +781,7 @@
 
     RecordLayerHeader rlHeader;
     HandShakeHeader   hsHeader;
-    mySTL::auto_ptr<output_buffer> out(new (ys) output_buffer);
+    mySTL::auto_ptr<output_buffer> out(new output_buffer);
     buildHeaders(ssl, hsHeader, rlHeader, sk);
     buildOutput(*out.get(), rlHeader, hsHeader, sk);
     hashHandShake(ssl, *out.get());
@@ -806,7 +806,7 @@
     ChangeCipherSpec ccs;
     RecordLayerHeader rlHeader;
     buildHeader(ssl, rlHeader, ccs);
-    mySTL::auto_ptr<output_buffer> out(new (ys) output_buffer);
+    mySTL::auto_ptr<output_buffer> out(new output_buffer);
     buildOutput(*out.get(), rlHeader, ccs);
    
     if (buffer == buffered)
@@ -823,7 +823,7 @@
 
     Finished fin;
     buildFinished(ssl, fin, side == client_end ? client : server);
-    mySTL::auto_ptr<output_buffer> out(new (ys) output_buffer);
+    mySTL::auto_ptr<output_buffer> out(new output_buffer);
     cipherFinished(ssl, fin, *out.get());                   // hashes handshake
 
     if (ssl.getSecurity().get_resuming()) {
@@ -907,7 +907,7 @@
     ServerHello       sh(ssl.getSecurity().get_connection().version_);
     RecordLayerHeader rlHeader;
     HandShakeHeader   hsHeader;
-    mySTL::auto_ptr<output_buffer> out(new (ys) output_buffer);
+    mySTL::auto_ptr<output_buffer> out(new output_buffer);
 
     buildServerHello(ssl, sh);
     ssl.set_random(sh.get_random(), server_end);
@@ -930,7 +930,7 @@
     ServerHelloDone   shd;
     RecordLayerHeader rlHeader;
     HandShakeHeader   hsHeader;
-    mySTL::auto_ptr<output_buffer> out(new (ys) output_buffer);
+    mySTL::auto_ptr<output_buffer> out(new output_buffer);
 
     buildHeaders(ssl, hsHeader, rlHeader, shd);
     buildOutput(*out.get(), rlHeader, hsHeader, shd);
@@ -951,7 +951,7 @@
     Certificate       cert(ssl.getCrypto().get_certManager().get_cert());
     RecordLayerHeader rlHeader;
     HandShakeHeader   hsHeader;
-    mySTL::auto_ptr<output_buffer> out(new (ys) output_buffer);
+    mySTL::auto_ptr<output_buffer> out(new output_buffer);
 
     buildHeaders(ssl, hsHeader, rlHeader, cert);
     buildOutput(*out.get(), rlHeader, hsHeader, cert);
@@ -973,7 +973,7 @@
     request.Build();
     RecordLayerHeader  rlHeader;
     HandShakeHeader    hsHeader;
-    mySTL::auto_ptr<output_buffer> out(new (ys) output_buffer);
+    mySTL::auto_ptr<output_buffer> out(new output_buffer);
 
     buildHeaders(ssl, hsHeader, rlHeader, request);
     buildOutput(*out.get(), rlHeader, hsHeader, request);
@@ -995,7 +995,7 @@
     verify.Build(ssl);
     RecordLayerHeader  rlHeader;
     HandShakeHeader    hsHeader;
-    mySTL::auto_ptr<output_buffer> out(new (ys) output_buffer);
+    mySTL::auto_ptr<output_buffer> out(new output_buffer);
 
     buildHeaders(ssl, hsHeader, rlHeader, verify);
     buildOutput(*out.get(), rlHeader, hsHeader, verify);

--- 1.2/extra/yassl/src/ssl.cpp	2005-05-20 19:32:41 +05:00
+++ 1.3/extra/yassl/src/ssl.cpp	2005-05-25 00:15:00 +05:00
@@ -443,7 +443,7 @@
             fseek(input, 0, SEEK_END);
             long sz = ftell(input);
             rewind(input);
-            x = new (ys) x509(sz); // takes ownership
+            x = new x509(sz); // takes ownership
             size_t bytes = fread(x->use_buffer(), sz, 1, input);
             if (bytes != 1) {
                 fclose(input);
@@ -663,7 +663,7 @@
 
     if (!retVal) {
         created = true;
-        bn.reset(new (ys) BIGNUM);
+        bn.reset(new BIGNUM);
         retVal = bn.get();
     }
 

--- 1.3/extra/yassl/src/yassl_imp.cpp	2005-05-05 19:19:22 +05:00
+++ 1.4/extra/yassl/src/yassl_imp.cpp	2005-05-25 00:15:00 +05:00
@@ -134,10 +134,10 @@
     const CertManager& cert = ssl.getCrypto().get_certManager();
     
     if (ssl.getSecurity().get_parms().sig_algo_ == rsa_sa_algo)
-        auth.reset(new (ys) RSA(cert.get_privateKey(),
+        auth.reset(new RSA(cert.get_privateKey(),
                    cert.get_privateKeyLength(), false));
     else {
-        auth.reset(new (ys) DSS(cert.get_privateKey(),
+        auth.reset(new DSS(cert.get_privateKey(),
                    cert.get_privateKeyLength(), false));
         sigSz += DSS_ENCODED_EXTRA;
     }
@@ -168,7 +168,7 @@
     byte hash[FINISHED_SZ];
     MD5  md5;
     SHA  sha;
-    signature_ = new (ys) byte[sigSz];
+    signature_ = new byte[sigSz];
 
     const Connection& conn = ssl.getSecurity().get_connection();
     // md5
@@ -199,7 +199,7 @@
     tmp.write(signature_, sigSz);
 
     // key message
-    keyMessage_ = new (ys) opaque[length_];
+    keyMessage_ = new opaque[length_];
     memcpy(keyMessage_, tmp.get_buffer(), tmp.get_size());
 }
 
@@ -253,7 +253,7 @@
 void EncryptedPreMasterSecret::alloc(int sz)
 {
     length_ = sz;
-    secret_ = new (ys) opaque[sz];
+    secret_ = new opaque[sz];
 }
 
 
@@ -303,7 +303,7 @@
 void ClientDiffieHellmanPublic::alloc(int sz, bool offset) 
 {
     length_ = sz + (offset ? KEY_OFFSET : 0); 
-    Yc_ = new (ys) opaque[length_];
+    Yc_ = new opaque[length_];
 }
 
 
@@ -348,7 +348,7 @@
     tmp[1] = input[AUTO];
     ato16(tmp, length);
 
-    signature_ = new (ys) byte[length];
+    signature_ = new byte[length];
     input.read(signature_, length);
 
     // verify signature
@@ -386,7 +386,7 @@
     }
 
     // save input
-    ssl.useCrypto().SetDH(new (ys) DiffieHellman(parms_.get_p(),
+    ssl.useCrypto().SetDH(new DiffieHellman(parms_.get_p(),
                parms_.get_pSize(), parms_.get_g(), parms_.get_gSize(),
                parms_.get_pub(), parms_.get_pubSize(),
                ssl.getCrypto().get_random()));
@@ -928,7 +928,7 @@
     // read data
     if (dataSz) {
         input_buffer* data;
-        ssl.addData(data = new (ys) input_buffer(dataSz));
+        ssl.addData(data = new input_buffer(dataSz));
         input.read(data->get_buffer(), dataSz);
         data->add_size(dataSz);
 
@@ -1025,7 +1025,7 @@
         c24to32(tmp, cert_sz);
         
         x509* myCert;
-        cm.AddPeerCert(myCert = new (ys) x509(cert_sz));
+        cm.AddPeerCert(myCert = new x509(cert_sz));
         input.read(myCert->use_buffer(), myCert->get_length());
 
         list_sz -= cert_sz + CERT_HEADER;
@@ -1111,21 +1111,21 @@
 
 opaque* ServerDHParams::alloc_p(int sz)
 {
-    p_ = new (ys) opaque[pSz_ = sz];
+    p_ = new opaque[pSz_ = sz];
     return p_;
 }
 
 
 opaque* ServerDHParams::alloc_g(int sz)
 {
-    g_ = new (ys) opaque[gSz_ = sz];
+    g_ = new opaque[gSz_ = sz];
     return g_;
 }
 
 
 opaque* ServerDHParams::alloc_pub(int sz)
 {
-    Ys_ = new (ys) opaque[pubSz_ = sz];
+    Ys_ = new opaque[pubSz_ = sz];
     return Ys_;
 }
 
@@ -1537,7 +1537,7 @@
     for (int j = 0; j < authCount; j++) {
         int sz = REQUEST_HEADER + MIN_DIS_SIZE;
         DistinguishedName dn;
-        certificate_authorities_.push_back(dn = new (ys) byte[sz]);
+        certificate_authorities_.push_back(dn = new byte[sz]);
 
         opaque tmp[REQUEST_HEADER];
         c16toa(MIN_DIS_SIZE, tmp);
@@ -1584,7 +1584,7 @@
         ato16(tmp, dnSz);
         
         DistinguishedName dn;
-        request.certificate_authorities_.push_back(dn = new (ys) 
+        request.certificate_authorities_.push_back(dn = new 
                                                   byte[REQUEST_HEADER + dnSz]);
         memcpy(dn, tmp, REQUEST_HEADER);
         input.read(&dn[REQUEST_HEADER], dnSz);
@@ -1665,7 +1665,7 @@
         RSA rsa(cert.get_privateKey(), cert.get_privateKeyLength(), false);
 
         sz = rsa.get_cipherLength() + VERIFY_HEADER;
-        sig.reset(new (ys) byte[sz]);
+        sig.reset(new byte[sz]);
 
         c16toa(sz - VERIFY_HEADER, len);
         memcpy(sig.get(), len, VERIFY_HEADER);
@@ -1676,7 +1676,7 @@
         DSS dss(cert.get_privateKey(), cert.get_privateKeyLength(), false);
 
         sz = DSS_SIG_SZ + DSS_ENCODED_EXTRA + VERIFY_HEADER;
-        sig.reset(new (ys) byte[sz]);
+        sig.reset(new byte[sz]);
 
         c16toa(sz - VERIFY_HEADER, len);
         memcpy(sig.get(), len, VERIFY_HEADER);
@@ -1714,7 +1714,7 @@
     ato16(tmp, sz);
     request.set_length(sz);
 
-    request.signature_ = new (ys) byte[sz];
+    request.signature_ = new byte[sz];
     input.read(request.signature_, sz);
 
     return input;
@@ -1975,7 +1975,7 @@
 
 void Connection::AllocPreSecret(uint sz) 
 { 
-    pre_master_secret_ = new (ys) opaque[pre_secret_len_ = sz];
+    pre_master_secret_ = new opaque[pre_secret_len_ = sz];
 }
 
 
@@ -2011,35 +2011,35 @@
 
 
 // Create functions for message factory
-Message* CreateCipherSpec() { return new (ys) ChangeCipherSpec; }
-Message* CreateAlert()      { return new (ys) Alert; }
-Message* CreateHandShake()  { return new (ys) HandShakeHeader; }
-Message* CreateData()       { return new (ys) Data; }
+Message* CreateCipherSpec() { return new ChangeCipherSpec; }
+Message* CreateAlert()      { return new Alert; }
+Message* CreateHandShake()  { return new HandShakeHeader; }
+Message* CreateData()       { return new Data; }
 
 // Create functions for handshake factory
-HandShakeBase* CreateHelloRequest()       { return new (ys) HelloRequest; }
-HandShakeBase* CreateClientHello()        { return new (ys) ClientHello; }
-HandShakeBase* CreateServerHello()        { return new (ys) ServerHello; }
-HandShakeBase* CreateCertificate()        { return new (ys) Certificate; }
-HandShakeBase* CreateServerKeyExchange()  { return new (ys) ServerKeyExchange;}
-HandShakeBase* CreateCertificateRequest() { return new (ys) 
+HandShakeBase* CreateHelloRequest()       { return new HelloRequest; }
+HandShakeBase* CreateClientHello()        { return new ClientHello; }
+HandShakeBase* CreateServerHello()        { return new ServerHello; }
+HandShakeBase* CreateCertificate()        { return new Certificate; }
+HandShakeBase* CreateServerKeyExchange()  { return new ServerKeyExchange;}
+HandShakeBase* CreateCertificateRequest() { return new 
                                                     CertificateRequest; }
-HandShakeBase* CreateServerHelloDone()    { return new (ys) ServerHelloDone; }
-HandShakeBase* CreateCertificateVerify()  { return new (ys) CertificateVerify;}
-HandShakeBase* CreateClientKeyExchange()  { return new (ys) ClientKeyExchange;}
-HandShakeBase* CreateFinished()           { return new (ys) Finished; }
+HandShakeBase* CreateServerHelloDone()    { return new ServerHelloDone; }
+HandShakeBase* CreateCertificateVerify()  { return new CertificateVerify;}
+HandShakeBase* CreateClientKeyExchange()  { return new ClientKeyExchange;}
+HandShakeBase* CreateFinished()           { return new Finished; }
 
 // Create functions for server key exchange factory
-ServerKeyBase* CreateRSAServerKEA()       { return new (ys) RSA_Server; }
-ServerKeyBase* CreateDHServerKEA()        { return new (ys) DH_Server; }
-ServerKeyBase* CreateFortezzaServerKEA()  { return new (ys) Fortezza_Server; }
+ServerKeyBase* CreateRSAServerKEA()       { return new RSA_Server; }
+ServerKeyBase* CreateDHServerKEA()        { return new DH_Server; }
+ServerKeyBase* CreateFortezzaServerKEA()  { return new Fortezza_Server; }
 
 // Create functions for client key exchange factory
-ClientKeyBase* CreateRSAClient()      { return new (ys) 
+ClientKeyBase* CreateRSAClient()      { return new 
                                                 EncryptedPreMasterSecret; }
-ClientKeyBase* CreateDHClient()       { return new (ys) 
+ClientKeyBase* CreateDHClient()       { return new 
                                                 ClientDiffieHellmanPublic; }
-ClientKeyBase* CreateFortezzaClient() { return new (ys) FortezzaKeys; }
+ClientKeyBase* CreateFortezzaClient() { return new FortezzaKeys; }
 
 
 // Constructor calls this to Register compile time callbacks
@@ -2115,4 +2115,3 @@
 template yaSSL::del_ptr_zero mySTL::for_each<mySTL::list<yaSSL::x509*>::iterator, yaSSL::del_ptr_zero>(mySTL::list<yaSSL::x509*>::iterator, mySTL::list<yaSSL::x509*>::iterator, yaSSL::del_ptr_zero);
 }
 #endif
-

--- 1.4/extra/yassl/src/yassl_int.cpp	2005-05-06 20:54:27 +05:00
+++ 1.5/extra/yassl/src/yassl_int.cpp	2005-05-25 00:15:00 +05:00
@@ -31,28 +31,6 @@
 #include "openssl/ssl.h"  // for DH
 
 
-void* operator new(size_t sz, yaSSL::new_t)
-{
-    void* ptr = ::operator new(sz);
-
-    if (!ptr) abort();
-
-    return ptr;
-}
-
-void* operator new[](size_t sz, yaSSL::new_t n)
-{
-#if defined(_MSC_VER) && (_MSC_VER < 1300)
-    void* ptr = ::operator new(sz);         // no ::operator new[]
-#else
-    void* ptr = ::operator new[](sz);
-#endif
-
-    if (!ptr) abort();
-
-    return ptr;
-}
-
 
 namespace yaSSL {
 
@@ -60,8 +38,6 @@
 using mySTL::min;
 
 
-new_t ys;   // for library new
-
 
 // convert a 32 bit integer into a 24 bit one
 void c32to24(uint32 u32, uint24& u24)
@@ -308,8 +284,8 @@
         parms.key_size_  = AES_256_KEY_SZ;
         parms.iv_size_   = AES_BLOCK_SZ;
         parms.cipher_type_ = block;
-        crypto_.setDigest(new (ys) SHA);
-        crypto_.setCipher(new (ys) AES(AES_256_KEY_SZ));
+        crypto_.setDigest(new SHA);
+        crypto_.setCipher(new AES(AES_256_KEY_SZ));
         strncpy(parms.cipher_name_, cipher_names[TLS_RSA_WITH_AES_256_CBC_SHA],
                 MAX_SUITE_NAME);
         break;
@@ -322,8 +298,8 @@
         parms.key_size_  = AES_128_KEY_SZ;
         parms.iv_size_   = AES_BLOCK_SZ;
         parms.cipher_type_ = block;
-        crypto_.setDigest(new (ys) SHA);
-        crypto_.setCipher(new (ys) AES);
+        crypto_.setDigest(new SHA);
+        crypto_.setCipher(new AES);
         strncpy(parms.cipher_name_, cipher_names[TLS_RSA_WITH_AES_128_CBC_SHA],
                 MAX_SUITE_NAME);
         break;
@@ -336,8 +312,8 @@
         parms.key_size_  = DES_EDE_KEY_SZ;
         parms.iv_size_   = DES_IV_SZ;
         parms.cipher_type_ = block;
-        crypto_.setDigest(new (ys) SHA);
-        crypto_.setCipher(new (ys) DES_EDE);
+        crypto_.setDigest(new SHA);
+        crypto_.setCipher(new DES_EDE);
         strncpy(parms.cipher_name_, cipher_names[SSL_RSA_WITH_3DES_EDE_CBC_SHA]
                 , MAX_SUITE_NAME);
         break;
@@ -350,8 +326,8 @@
         parms.key_size_  = DES_KEY_SZ;
         parms.iv_size_   = DES_IV_SZ;
         parms.cipher_type_ = block;
-        crypto_.setDigest(new (ys) SHA);
-        crypto_.setCipher(new (ys) DES);
+        crypto_.setDigest(new SHA);
+        crypto_.setCipher(new DES);
         strncpy(parms.cipher_name_, cipher_names[SSL_RSA_WITH_DES_CBC_SHA],
                 MAX_SUITE_NAME);
         break;
@@ -364,8 +340,8 @@
         parms.key_size_  = RC4_KEY_SZ;
         parms.iv_size_   = 0;
         parms.cipher_type_ = stream;
-        crypto_.setDigest(new (ys) SHA);
-        crypto_.setCipher(new (ys) RC4);
+        crypto_.setDigest(new SHA);
+        crypto_.setCipher(new RC4);
         strncpy(parms.cipher_name_, cipher_names[SSL_RSA_WITH_RC4_128_SHA],
                 MAX_SUITE_NAME);
         break;
@@ -378,8 +354,8 @@
         parms.key_size_  = RC4_KEY_SZ;
         parms.iv_size_   = 0;
         parms.cipher_type_ = stream;
-        crypto_.setDigest(new (ys) MD5);
-        crypto_.setCipher(new (ys) RC4);
+        crypto_.setDigest(new MD5);
+        crypto_.setCipher(new RC4);
         strncpy(parms.cipher_name_, cipher_names[SSL_RSA_WITH_RC4_128_MD5],
                 MAX_SUITE_NAME);
         break;
@@ -394,8 +370,8 @@
         parms.iv_size_   = DES_IV_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) SHA);
-        crypto_.setCipher(new (ys) DES);
+        crypto_.setDigest(new SHA);
+        crypto_.setCipher(new DES);
         strncpy(parms.cipher_name_, cipher_names[SSL_DHE_RSA_WITH_DES_CBC_SHA],
                 MAX_SUITE_NAME);
         break;
@@ -410,8 +386,8 @@
         parms.iv_size_   = DES_IV_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) SHA);
-        crypto_.setCipher(new (ys) DES_EDE);
+        crypto_.setDigest(new SHA);
+        crypto_.setCipher(new DES_EDE);
         strncpy(parms.cipher_name_,
               cipher_names[SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA], MAX_SUITE_NAME);
         break;
@@ -426,8 +402,8 @@
         parms.iv_size_   = AES_BLOCK_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) SHA);
-        crypto_.setCipher(new (ys) AES(AES_256_KEY_SZ));
+        crypto_.setDigest(new SHA);
+        crypto_.setCipher(new AES(AES_256_KEY_SZ));
         strncpy(parms.cipher_name_,
                cipher_names[TLS_DHE_RSA_WITH_AES_256_CBC_SHA], MAX_SUITE_NAME);
         break;
@@ -442,8 +418,8 @@
         parms.iv_size_   = AES_BLOCK_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) SHA);
-        crypto_.setCipher(new (ys) AES);
+        crypto_.setDigest(new SHA);
+        crypto_.setCipher(new AES);
         strncpy(parms.cipher_name_,
                cipher_names[TLS_DHE_RSA_WITH_AES_128_CBC_SHA], MAX_SUITE_NAME);
         break;
@@ -458,8 +434,8 @@
         parms.iv_size_   = DES_IV_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) SHA);
-        crypto_.setCipher(new (ys) DES);
+        crypto_.setDigest(new SHA);
+        crypto_.setCipher(new DES);
         strncpy(parms.cipher_name_, cipher_names[SSL_DHE_DSS_WITH_DES_CBC_SHA],
                 MAX_SUITE_NAME);
         break;
@@ -474,8 +450,8 @@
         parms.iv_size_   = DES_IV_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) SHA);
-        crypto_.setCipher(new (ys) DES_EDE);
+        crypto_.setDigest(new SHA);
+        crypto_.setCipher(new DES_EDE);
         strncpy(parms.cipher_name_,
               cipher_names[SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA], MAX_SUITE_NAME);
         break;
@@ -490,8 +466,8 @@
         parms.iv_size_   = AES_BLOCK_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) SHA);
-        crypto_.setCipher(new (ys) AES(AES_256_KEY_SZ));
+        crypto_.setDigest(new SHA);
+        crypto_.setCipher(new AES(AES_256_KEY_SZ));
         strncpy(parms.cipher_name_,
                cipher_names[TLS_DHE_DSS_WITH_AES_256_CBC_SHA], MAX_SUITE_NAME);
         break;
@@ -506,8 +482,8 @@
         parms.iv_size_   = AES_BLOCK_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) SHA);
-        crypto_.setCipher(new (ys) AES);
+        crypto_.setDigest(new SHA);
+        crypto_.setCipher(new AES);
         strncpy(parms.cipher_name_,
                cipher_names[TLS_DHE_DSS_WITH_AES_128_CBC_SHA], MAX_SUITE_NAME);
         break;
@@ -520,8 +496,8 @@
         parms.key_size_  = AES_256_KEY_SZ;
         parms.iv_size_   = AES_BLOCK_SZ;
         parms.cipher_type_ = block;
-        crypto_.setDigest(new (ys) RMD);
-        crypto_.setCipher(new (ys) AES(AES_256_KEY_SZ));
+        crypto_.setDigest(new RMD);
+        crypto_.setCipher(new AES(AES_256_KEY_SZ));
         strncpy(parms.cipher_name_,
                 cipher_names[TLS_RSA_WITH_AES_256_CBC_RMD160], MAX_SUITE_NAME);
         break;
@@ -534,8 +510,8 @@
         parms.key_size_  = AES_128_KEY_SZ;
         parms.iv_size_   = AES_BLOCK_SZ;
         parms.cipher_type_ = block;
-        crypto_.setDigest(new (ys) RMD);
-        crypto_.setCipher(new (ys) AES);
+        crypto_.setDigest(new RMD);
+        crypto_.setCipher(new AES);
         strncpy(parms.cipher_name_,
                 cipher_names[TLS_RSA_WITH_AES_128_CBC_RMD160], MAX_SUITE_NAME);
         break;
@@ -548,8 +524,8 @@
         parms.key_size_  = DES_EDE_KEY_SZ;
         parms.iv_size_   = DES_IV_SZ;
         parms.cipher_type_ = block;
-        crypto_.setDigest(new (ys) RMD);
-        crypto_.setCipher(new (ys) DES_EDE);
+        crypto_.setDigest(new RMD);
+        crypto_.setCipher(new DES_EDE);
         strncpy(parms.cipher_name_,
                cipher_names[TLS_RSA_WITH_3DES_EDE_CBC_RMD160], MAX_SUITE_NAME);
         break;
@@ -564,8 +540,8 @@
         parms.iv_size_   = DES_IV_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) RMD);
-        crypto_.setCipher(new (ys) DES_EDE);
+        crypto_.setDigest(new RMD);
+        crypto_.setCipher(new DES_EDE);
         strncpy(parms.cipher_name_,
                 cipher_names[TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD160],
                 MAX_SUITE_NAME);
@@ -581,8 +557,8 @@
         parms.iv_size_   = AES_BLOCK_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) RMD);
-        crypto_.setCipher(new (ys) AES(AES_256_KEY_SZ));
+        crypto_.setDigest(new RMD);
+        crypto_.setCipher(new AES(AES_256_KEY_SZ));
         strncpy(parms.cipher_name_,
                 cipher_names[TLS_DHE_RSA_WITH_AES_256_CBC_RMD160],
                 MAX_SUITE_NAME);
@@ -598,8 +574,8 @@
         parms.iv_size_   = AES_BLOCK_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) RMD);
-        crypto_.setCipher(new (ys) AES);
+        crypto_.setDigest(new RMD);
+        crypto_.setCipher(new AES);
         strncpy(parms.cipher_name_,
                 cipher_names[TLS_DHE_RSA_WITH_AES_128_CBC_RMD160],
                 MAX_SUITE_NAME);
@@ -615,8 +591,8 @@
         parms.iv_size_   = DES_IV_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) RMD);
-        crypto_.setCipher(new (ys) DES_EDE);
+        crypto_.setDigest(new RMD);
+        crypto_.setCipher(new DES_EDE);
         strncpy(parms.cipher_name_,
                 cipher_names[TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD160],
                 MAX_SUITE_NAME);
@@ -632,8 +608,8 @@
         parms.iv_size_   = AES_BLOCK_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) RMD);
-        crypto_.setCipher(new (ys) AES(AES_256_KEY_SZ));
+        crypto_.setDigest(new RMD);
+        crypto_.setCipher(new AES(AES_256_KEY_SZ));
         strncpy(parms.cipher_name_,
                 cipher_names[TLS_DHE_DSS_WITH_AES_256_CBC_RMD160],
                 MAX_SUITE_NAME);
@@ -649,8 +625,8 @@
         parms.iv_size_   = AES_BLOCK_SZ;
         parms.cipher_type_ = block;
         secure_.use_connection().send_server_key_  = true; // eph
-        crypto_.setDigest(new (ys) RMD);
-        crypto_.setCipher(new (ys) AES);
+        crypto_.setDigest(new RMD);
+        crypto_.setCipher(new AES);
         strncpy(parms.cipher_name_,
                 cipher_names[TLS_DHE_DSS_WITH_AES_128_CBC_RMD160],
                 MAX_SUITE_NAME);
@@ -936,12 +912,14 @@
 } // namespace for locals
 using namespace yassl_int_cpp_local1;
 
+
 uint SSL::bufferedData()
 {
     return mySTL::for_each(buffers_.getData().begin(),buffers_.getData().end(),
                            SumData()).total_;
 }
 
+
 // use input buffer to fill data
 void SSL::fillData(Data& data)
 {
@@ -1367,7 +1345,7 @@
 void Sessions::add(const SSL& ssl) 
 {
     Lock guard(mutex_);
-    list_.push_back(new (ys) SSL_SESSION(ssl, random_));
+    list_.push_back(new SSL_SESSION(ssl, random_));
 }
 
 
@@ -1397,6 +1375,7 @@
 } // local namespace
 using namespace yassl_int_cpp_local2;
 
+
 // lookup session by id, return a copy if space provided
 SSL_SESSION* Sessions::lookup(const opaque* id, SSL_SESSION* copy)
 {
@@ -1764,7 +1743,7 @@
 void Crypto::SetDH(const DH_Parms& dh)
 {
     if (dh.set_)
-        dh_ = new (ys) DiffieHellman(dh.p_, dh.g_, random_);
+        dh_ = new DiffieHellman(dh.p_, dh.g_, random_);
 }
 
 
@@ -1931,7 +1910,7 @@
     : name_(0)
 {
     if (sz) {
-        name_ = new (ys) char[sz];
+        name_ = new char[sz];
         memcpy(name_, n, sz);
     }
 }
@@ -1952,7 +1931,7 @@
 X509::X509(const char* i, size_t iSz, const char* s, size_t sSz)
     : issuer_(i, iSz), subject_(s, sSz)
 {}
-
+   
 
 X509_NAME* X509::GetIssuer()
 {

--- 1.1/extra/yassl/taocrypt/include/aes.hpp	2005-04-28 18:23:12 +05:00
+++ 1.2/extra/yassl/taocrypt/include/aes.hpp	2005-05-25 00:15:00 +05:00
@@ -37,11 +37,12 @@
 
 
 // AES encryption and decryption, see FIPS-197
-class AES : public Mode_BASE<AES_BLOCK_SIZE> {
+class AES : public Mode_BASE {
 public:
     enum { BLOCK_SIZE = AES_BLOCK_SIZE };
 
-    AES(CipherDir DIR, Mode MODE) : dir_(DIR), mode_(MODE) {}
+    AES(CipherDir DIR, Mode MODE)
+        : Mode_BASE(BLOCK_SIZE), dir_(DIR), mode_(MODE) {}
 
     void Process(byte*, const byte*, word32);
     void SetKey(const byte* iv, word32 sz, CipherDir fake = ENCRYPTION);

--- 1.1/extra/yassl/taocrypt/include/algebra.hpp	2005-04-28 18:23:12 +05:00
+++ 1.2/extra/yassl/taocrypt/include/algebra.hpp	2005-05-25 00:15:00 +05:00
@@ -24,11 +24,10 @@
 #ifndef TAO_CRYPT_ALGEBRA_HPP
 #define TAO_CRYPT_ALGEBRA_HPP
 
-#include "misc.hpp"
+#include "integer.hpp"
 
 namespace TaoCrypt {
 
-class Integer;
 
 // "const Element&" returned by member functions are references
 // to internal data members. Since each object may have only
@@ -38,11 +37,11 @@
 // But this should be fine:
 // abcd = group.Add(a, group.Add(b, group.Add(c,d));
 
-//! Abstract Group
-template <class T> class TAOCRYPT_NO_VTABLE AbstractGroup
+// Abstract Group
+class TAOCRYPT_NO_VTABLE AbstractGroup
 {
 public:
-    typedef T Element;
+    typedef Integer Element;
 
     virtual ~AbstractGroup() {}
 
@@ -65,15 +64,14 @@
                   const Integer *exponents, unsigned int exponentsCount) const;
 };
 
-//! Abstract Ring
-template <class T> class TAOCRYPT_NO_VTABLE AbstractRing
-    : public AbstractGroup<T>
+// Abstract Ring
+class TAOCRYPT_NO_VTABLE AbstractRing : public AbstractGroup
 {
 public:
-    typedef T Element;
+    typedef Integer Element;
 
     AbstractRing() {m_mg.m_pRing = this;}
-    AbstractRing(const AbstractRing &source) {m_mg.m_pRing = this;}
+    AbstractRing(const AbstractRing &source) : AbstractGroup() {m_mg.m_pRing = this;}
     AbstractRing& operator=(const AbstractRing &source) {return *this;}
 
     virtual bool IsUnit(const Element &a) const =0;
@@ -91,14 +89,14 @@
     virtual void SimultaneousExponentiate(Element *results, const Element&,
                   const Integer *exponents, unsigned int exponentsCount) const;
 
-    virtual const AbstractGroup<T>& MultiplicativeGroup() const
+    virtual const AbstractGroup& MultiplicativeGroup() const
         {return m_mg;}
 
 private:
-    class MultiplicativeGroupT : public AbstractGroup<T>
+    class MultiplicativeGroupT : public AbstractGroup
     {
     public:
-        const AbstractRing<T>& GetRing() const
+        const AbstractRing& GetRing() const
             {return *m_pRing;}
 
         bool Equal(const Element &a, const Element &b) const
@@ -137,44 +135,19 @@
             {GetRing().SimultaneousExponentiate(results, base, exponents,
                                                 exponentsCount);}
 
-        const AbstractRing<T> *m_pRing;
+        const AbstractRing* m_pRing;
     };
 
     MultiplicativeGroupT m_mg;
 };
 
-// ********************************************************
 
-//! Base and Exponent
-template <class T, class E = Integer>
-struct BaseAndExponent
+// Abstract Euclidean Domain
+class TAOCRYPT_NO_VTABLE AbstractEuclideanDomain
+    : public AbstractRing
 {
 public:
-    BaseAndExponent() {}
-    BaseAndExponent(const T &base, const E &exponent) : base(base),
-                                                        exponent(exponent) {}
-    bool operator<(const BaseAndExponent<T, E> &rhs) const 
-                    {return exponent < rhs.exponent;}
-    T base;
-    E exponent;
-};
-
-// VC60 workaround: incomplete member template support
-template <class Element, class Iterator>
-    Element GeneralCascadeMultiplication(const AbstractGroup<Element> &group,
-                                         Iterator begin, Iterator end);
-template <class Element, class Iterator>
-    Element GeneralCascadeExponentiation(const AbstractRing<Element> &ring,
-                                         Iterator begin, Iterator end);
-
-// ********************************************************
-
-//! Abstract Euclidean Domain
-template <class T> class TAOCRYPT_NO_VTABLE AbstractEuclideanDomain
-    : public AbstractRing<T>
-{
-public:
-    typedef T Element;
+    typedef Integer Element;
 
     virtual void DivisionAlgorithm(Element &r, Element &q, const Element &a,
                                    const Element &d) const =0;
@@ -186,13 +159,12 @@
     mutable Element result;
 };
 
-// ********************************************************
 
-//! EuclideanDomainOf
-template <class T> class EuclideanDomainOf : public AbstractEuclideanDomain<T>
+// EuclideanDomainOf
+class EuclideanDomainOf : public AbstractEuclideanDomain
 {
 public:
-    typedef T Element;
+    typedef Integer Element;
 
     EuclideanDomainOf() {}
 
@@ -249,68 +221,8 @@
     mutable Element result;
 };
 
-//! Quotient Ring
-template<class T> class QuotientRing : public AbstractRing<typename T::Element>
-{
-public:
-    typedef T EuclideanDomain;
-    typedef typename T::Element Element;
-
-    QuotientRing(const EuclideanDomain &domain, const Element &modulus)
-        : m_domain(domain), m_modulus(modulus) {}
-
-    const EuclideanDomain & GetDomain() const
-        {return m_domain;}
-
-    const Element& GetModulus() const
-        {return m_modulus;}
-
-    bool Equal(const Element &a, const Element &b) const
-        {return m_domain.Equal(m_domain.Mod(m_domain.Subtract(a, b),
-                               m_modulus), m_domain.Identity());}
-
-    const Element& Identity() const
-        {return m_domain.Identity();}
-
-    const Element& Add(const Element &a, const Element &b) const
-        {return m_domain.Add(a, b);}
-
-    Element& Accumulate(Element &a, const Element &b) const
-        {return m_domain.Accumulate(a, b);}
-
-    const Element& Inverse(const Element &a) const
-        {return m_domain.Inverse(a);}
-
-    const Element& Subtract(const Element &a, const Element &b) const
-        {return m_domain.Subtract(a, b);}
-
-    Element& Reduce(Element &a, const Element &b) const
-        {return m_domain.Reduce(a, b);}
-
-    const Element& Double(const Element &a) const
-        {return m_domain.Double(a);}
-
-    bool IsUnit(const Element &a) const
-        {return m_domain.IsUnit(m_domain.Gcd(a, m_modulus));}
-
-    const Element& MultiplicativeIdentity() const
-        {return m_domain.MultiplicativeIdentity();}
-
-    const Element& Multiply(const Element &a, const Element &b) const
-        {return m_domain.Mod(m_domain.Multiply(a, b), m_modulus);}
-
-    const Element& Square(const Element &a) const
-        {return m_domain.Mod(m_domain.Square(a), m_modulus);}
-
-    const Element& MultiplicativeInverse(const Element &a) const;
-
-protected:
-    EuclideanDomain m_domain;
-    Element m_modulus;
-};
 
 
 } // namespace
-
 
 #endif // TAO_CRYPT_ALGEBRA_HPP

--- 1.2/extra/yassl/taocrypt/include/block.hpp	2005-05-20 19:32:41 +05:00
+++ 1.3/extra/yassl/taocrypt/include/block.hpp	2005-05-25 00:15:00 +05:00
@@ -34,10 +34,6 @@
 #include <stddef.h>         // ptrdiff_t
 
 
-#if defined(_MSC_VER) && defined(_CRTAPI1)
-#define TAOCRYPT_MSVCRT6
-#endif
-
 
 namespace TaoCrypt {
 
@@ -47,13 +43,13 @@
 class AllocatorBase
 {
 public:
-    typedef T      value_type;
-    typedef size_t size_type;
-    typedef ptrdiff_t      difference_type;
-    typedef T*       pointer;
-    typedef const T* const_pointer;
-    typedef T&       reference;
-    typedef const T& const_reference;
+    typedef T         value_type;
+    typedef size_t    size_type;
+    typedef ptrdiff_t difference_type;
+    typedef T*        pointer;
+    typedef const T*  const_pointer;
+    typedef T&        reference;
+    typedef const T&  const_reference;
 
     pointer       address(reference r) const {return (&r);}
     const_pointer address(const_reference r) const {return (&r); }
@@ -104,7 +100,7 @@
         CheckSize(n);
         if (n == 0)
             return 0;
-        return new (tc) T[n];
+        return new T[n];
     }
 
     void deallocate(void* p, size_type n)

--- 1.1/extra/yassl/taocrypt/include/des.hpp	2005-04-28 18:23:13 +05:00
+++ 1.2/extra/yassl/taocrypt/include/des.hpp	2005-05-25 00:15:01 +05:00
@@ -36,12 +36,13 @@
 enum { DES_BLOCK_SIZE = 8 };
 
 // Base for all DES types
-class DES_BASE : public Mode_BASE<DES_BLOCK_SIZE> {
+class DES_BASE : public Mode_BASE {
 public:
     enum { BLOCK_SIZE = DES_BLOCK_SIZE, KEY_SIZE = 32, BOXES = 8,
            BOX_SIZE = 64 };
 
-    DES_BASE(CipherDir DIR, Mode MODE) : dir_(DIR), mode_(MODE) {}
+    DES_BASE(CipherDir DIR, Mode MODE) 
+        : Mode_BASE(BLOCK_SIZE), dir_(DIR), mode_(MODE) {}
 
     void Process(byte*, const byte*, word32);
 protected:

--- 1.2/extra/yassl/taocrypt/include/error.hpp	2005-05-20 01:44:00 +05:00
+++ 1.3/extra/yassl/taocrypt/include/error.hpp	2005-05-25 00:15:01 +05:00
@@ -65,7 +65,8 @@
 DSA_SZ_E        = 1035, // "bad DSA r or s size"
 BEFORE_DATE_E   = 1036, // "before date in the future"
 AFTER_DATE_E    = 1037, // "after date in the past"
-SIG_CONFIRM_E   = 1038  // "bad signature confirmation"
+SIG_CONFIRM_E   = 1038, // "bad self  signature confirmation"
+SIG_OTHER_E     = 1039  // "bad other signature confirmation"
 
 };
 

--- 1.1/extra/yassl/taocrypt/include/hash.hpp	2005-04-28 18:23:14 +05:00
+++ 1.2/extra/yassl/taocrypt/include/hash.hpp	2005-05-25 00:15:01 +05:00
@@ -50,7 +50,7 @@
 class HASHwithTransform : public HASH {
 public:
     HASHwithTransform(word32 digSz, word32 buffSz) 
-        : digest_(new (tc) word32[digSz]), buffer_(new (tc) byte[buffSz]) {}
+        : digest_(new word32[digSz]), buffer_(new byte[buffSz]) {}
     virtual ~HASHwithTransform() { delete[] buffer_; delete[] digest_; }
 
     virtual ByteOrder getByteOrder()  const = 0;

--- 1.3/extra/yassl/taocrypt/include/integer.hpp	2005-05-20 19:32:42 +05:00
+++ 1.4/extra/yassl/taocrypt/include/integer.hpp	2005-05-25 00:15:01 +05:00
@@ -29,8 +29,8 @@
 #include "block.hpp"
 #include "random.hpp"
 #include "file.hpp"
-#include <string.h>
 #include "algorithm.hpp"    // mySTL::swap
+#include <string.h>
 
 
 #ifdef TAOCRYPT_X86ASM_AVAILABLE
@@ -128,9 +128,6 @@
         Integer(signed long value);
         Integer(Sign s, word highWord, word lowWord);
 
-        explicit Integer(const char* str);
-        explicit Integer(const wchar_t* str);
-
         // BER Decode Source
         explicit Integer(Source&);
 
@@ -254,15 +251,13 @@
 private:
     friend class ModularArithmetic;
     friend class MontgomeryRepresentation;
-    friend class HalfMontgomeryRepresentation;
-
     Integer(word value, unsigned int length);
 
     static const Integer zero;
     static const Integer one;
     static const Integer two;
-
     int PositiveCompare(const Integer& t) const;
+
     friend void PositiveAdd(Integer& sum, const Integer& a, const Integer& b);
     friend void PositiveSubtract(Integer& diff, const Integer& a,
                                  const Integer& b);
@@ -308,6 +303,7 @@
 
 Integer CRT(const Integer& xp, const Integer& p, const Integer& xq,
             const Integer& q,  const Integer& u);
+
 inline Integer ModularExponentiation(const Integer& a, const Integer& e,
                                      const Integer& m)
 {

--- 1.3/extra/yassl/taocrypt/include/misc.hpp	2005-05-22 07:16:35 +05:00
+++ 1.4/extra/yassl/taocrypt/include/misc.hpp	2005-05-25 00:15:01 +05:00
@@ -28,17 +28,6 @@
 #include <assert.h>
 #include <string.h>
 
-namespace TaoCrypt {
-
-// library allocation
-struct new_t {};      // TaoCrypt New type
-extern new_t tc;      // pass in parameter
-
-} // namespace TaoCrypt
-
-void* operator new  (size_t, TaoCrypt::new_t);
-void* operator new[](size_t, TaoCrypt::new_t);
-
 
 namespace TaoCrypt {
 

--- 1.1/extra/yassl/taocrypt/include/modarith.hpp	2005-04-28 18:23:15 +05:00
+++ 1.2/extra/yassl/taocrypt/include/modarith.hpp	2005-05-25 00:15:01 +05:00
@@ -27,14 +27,13 @@
 #define TAO_CRYPT_MODARITH_HPP
 
 #include "misc.hpp"
-#include "integer.hpp"
 #include "algebra.hpp"
 
 namespace TaoCrypt {
 
 
-//! ModularArithmetic
-class ModularArithmetic : public AbstractRing<Integer>
+// ModularArithmetic
+class ModularArithmetic : public AbstractRing
 {
 public:
 
@@ -45,7 +44,7 @@
         : modulus(modulus), result((word)0, modulus.reg_.size()) {}
 
     ModularArithmetic(const ModularArithmetic &ma)
-        : AbstractRing<Integer>(),
+        : AbstractRing(),
         modulus(ma.modulus), result((word)0, modulus.reg_.size()) {}
 
     const Integer& GetModulus() const {return modulus;}
@@ -149,12 +148,12 @@
 
     Integer CascadeExponentiate(const Integer &x, const Integer &e1,
                                 const Integer &y, const Integer &e2) const
-        {return AbstractRing<Integer>::CascadeExponentiate(x, e1, y, e2);}
+        {return AbstractRing::CascadeExponentiate(x, e1, y, e2);}
 
     void SimultaneousExponentiate(Element *results, const Element &base,
             const Integer *exponents, unsigned int exponentsCount) const
-        {AbstractRing<Integer>::SimultaneousExponentiate(results, base,
-                                              exponents, exponentsCount);}
+        {AbstractRing::SimultaneousExponentiate(results, base,
+                                                exponents, exponentsCount);}
 
 private:
     Integer u;

--- 1.1/extra/yassl/taocrypt/include/modes.hpp	2005-04-28 18:23:16 +05:00
+++ 1.2/extra/yassl/taocrypt/include/modes.hpp	2005-05-25 00:15:01 +05:00
@@ -56,10 +56,11 @@
 
 
 // Mode Base for block ciphers, static size
-template<int BLOCK_SIZE>
 class Mode_BASE {
 public:
-    Mode_BASE() {}
+    enum { MaxBlockSz = 16 };
+
+    explicit Mode_BASE(int sz) : blockSz_(sz) { assert(sz <= MaxBlockSz); }
     virtual ~Mode_BASE() {}
 
     virtual void ProcessAndXorBlock(const byte*, const byte*, byte*) const = 0;
@@ -68,10 +69,11 @@
     void CBC_Encrypt(byte*, const byte*, word32);
     void CBC_Decrypt(byte*, const byte*, word32);
 
-    void SetIV(const byte* iv) { memcpy(reg_, iv, BLOCK_SIZE); }
+    void SetIV(const byte* iv) { memcpy(reg_, iv, blockSz_); }
 private:
-    byte reg_[BLOCK_SIZE];
-    byte tmp_[BLOCK_SIZE];
+    byte reg_[MaxBlockSz];
+    byte tmp_[MaxBlockSz];
+    int  blockSz_;
 
     Mode_BASE(const Mode_BASE&);            // hide copy
     Mode_BASE& operator=(const Mode_BASE&); // and assign
@@ -79,51 +81,48 @@
 
 
 // ECB Process blocks
-template<int BLOCK_SIZE>
-void Mode_BASE<BLOCK_SIZE>::ECB_Process(byte* out, const byte* in, word32 sz)
+inline void Mode_BASE::ECB_Process(byte* out, const byte* in, word32 sz)
 {
-    word32 blocks = sz / BLOCK_SIZE;
+    word32 blocks = sz / blockSz_;
 
     while (blocks--) {
         ProcessAndXorBlock(in, 0, out);
-        out += BLOCK_SIZE;
-        in  += BLOCK_SIZE;
+        out += blockSz_;
+        in  += blockSz_;
     }
 }
 
 
 // CBC Encrypt
-template<int BLOCK_SIZE>
-void Mode_BASE<BLOCK_SIZE>::CBC_Encrypt(byte* out, const byte* in, word32 sz)
+inline void Mode_BASE::CBC_Encrypt(byte* out, const byte* in, word32 sz)
 {
-    word32 blocks = sz / BLOCK_SIZE;
+    word32 blocks = sz / blockSz_;
 
     while (blocks--) {
-        xorbuf(reg_, in, BLOCK_SIZE);
+        xorbuf(reg_, in, blockSz_);
         ProcessAndXorBlock(reg_, 0, reg_);
-        memcpy(out, reg_, BLOCK_SIZE);
-        out += BLOCK_SIZE;
-        in  += BLOCK_SIZE;
+        memcpy(out, reg_, blockSz_);
+        out += blockSz_;
+        in  += blockSz_;
     }
 }
 
 
 // CBC Decrypt
-template<int BLOCK_SIZE>
-void Mode_BASE<BLOCK_SIZE>::CBC_Decrypt(byte* out, const byte* in, word32 sz)
+inline void Mode_BASE::CBC_Decrypt(byte* out, const byte* in, word32 sz)
 {
-    word32 blocks = sz / BLOCK_SIZE;
-    byte   hold[BLOCK_SIZE];
+    word32 blocks = sz / blockSz_;
+    byte   hold[MaxBlockSz];
 
     while (blocks--) {
-        memcpy(tmp_, in, BLOCK_SIZE);
+        memcpy(tmp_, in, blockSz_);
         ProcessAndXorBlock(tmp_, 0, out);
-        xorbuf(out,  reg_, BLOCK_SIZE);
-        memcpy(hold, reg_,   BLOCK_SIZE); // swap reg_ and tmp_
-        memcpy(reg_,   tmp_, BLOCK_SIZE);
-        memcpy(tmp_, hold, BLOCK_SIZE);
-        out += BLOCK_SIZE;
-        in  += BLOCK_SIZE;
+        xorbuf(out,  reg_, blockSz_);
+        memcpy(hold, reg_,   blockSz_); // swap reg_ and tmp_
+        memcpy(reg_,   tmp_, blockSz_);
+        memcpy(tmp_, hold, blockSz_);
+        out += blockSz_;
+        in  += blockSz_;
     }
 }
 

--- 1.1/extra/yassl/taocrypt/src/algebra.cpp	2005-04-28 18:23:18 +05:00
+++ 1.2/extra/yassl/taocrypt/src/algebra.cpp	2005-05-25 00:15:01 +05:00
@@ -23,60 +23,58 @@
 
 #include "runtime.hpp"
 #include "algebra.hpp"
-#include "integer.hpp"
 #include "vector.hpp"   // mySTL::vector (simple)
 
 
 namespace TaoCrypt {
 
-template <class T> const T& AbstractGroup<T>::Double(const Element &a) const
+
+const Integer& AbstractGroup::Double(const Element &a) const
 {
     return Add(a, a);
 }
 
-template <class T> const T& AbstractGroup<T>::Subtract(const Element &a,
-                                                       const Element &b) const
+const Integer& AbstractGroup::Subtract(const Element &a, const Element &b) const
 {
     // make copy of a in case Inverse() overwrites it
     Element a1(a);
     return Add(a1, Inverse(b));
 }
 
-template <class T> T& AbstractGroup<T>::Accumulate(Element &a,
-                                                   const Element &b) const
+Integer& AbstractGroup::Accumulate(Element &a, const Element &b) const
 {
     return a = Add(a, b);
 }
 
-template <class T> T& AbstractGroup<T>::Reduce(Element &a,
-                                               const Element &b) const
+Integer& AbstractGroup::Reduce(Element &a, const Element &b) const
 {
     return a = Subtract(a, b);
 }
 
-template <class T> const T& AbstractRing<T>::Square(const Element &a) const
+const Integer& AbstractRing::Square(const Element &a) const
 {
     return Multiply(a, a);
 }
 
-template <class T> const T& AbstractRing<T>::Divide(const Element &a,
-                                                    const Element &b) const
+
+const Integer& AbstractRing::Divide(const Element &a, const Element &b) const
 {
     // make copy of a in case MultiplicativeInverse() overwrites it
     Element a1(a);
     return Multiply(a1, MultiplicativeInverse(b));
 }
 
-template <class T> const T& AbstractEuclideanDomain<T>::Mod(const Element &a,
-                                                        const Element &b) const
+
+const Integer& AbstractEuclideanDomain::Mod(const Element &a,
+                                            const Element &b) const
 {
     Element q;
     DivisionAlgorithm(result, q, a, b);
     return result;
 }
 
-template <class T> const T& AbstractEuclideanDomain<T>::Gcd(const Element &a,
-                                                        const Element &b) const
+const Integer& AbstractEuclideanDomain::Gcd(const Element &a,
+                                            const Element &b) const
 {
     Element g[3]={b, a};
     unsigned int i0=0, i1=1, i2=2;
@@ -90,45 +88,17 @@
     return result = g[i0];
 }
 
-template <class T> const typename 
-    QuotientRing<T>::Element& QuotientRing<T>::MultiplicativeInverse(
-        const Element &a) const
-{
-    Element g[3]={m_modulus, a};
-#ifdef __BCPLUSPLUS__
-    // BC++50 workaround          
-    Element v[3];
-    v[0]=m_domain.Identity();
-    v[1]=m_domain.MultiplicativeIdentity();
-#else
-    Element v[3]={m_domain.Identity(), m_domain.MultiplicativeIdentity()};
-#endif
-    Element y;
-    unsigned int i0=0, i1=1, i2=2;
-
-    while (!Equal(g[i1], Identity()))
-    {
-        // y = g[i0] / g[i1];
-        // g[i2] = g[i0] % g[i1];
-        m_domain.DivisionAlgorithm(g[i2], y, g[i0], g[i1]);
-        // v[i2] = v[i0] - (v[i1] * y);
-        v[i2] = m_domain.Subtract(v[i0], m_domain.Multiply(v[i1], y));
-        unsigned int t = i0; i0 = i1; i1 = i2; i2 = t;
-    }
-
-    return m_domain.IsUnit(g[i0]) ? m_domain.Divide(v[i0], g[i0]) : 
-        m_domain.Identity();
-}
 
-template <class T> T AbstractGroup<T>::ScalarMultiply(const Element &base,
-                                                 const Integer &exponent) const
+Integer AbstractGroup::ScalarMultiply(const Element &base,
+                                      const Integer &exponent) const
 {
     Element result;
     SimultaneousMultiply(&result, base, &exponent, 1);
     return result;
 }
 
-template <class T> T AbstractGroup<T>::CascadeScalarMultiply(const Element &x,
+
+Integer AbstractGroup::CascadeScalarMultiply(const Element &x,
                   const Integer &e1, const Element &y, const Integer &e2) const
 {
     const unsigned expLen = max(e1.BitCount(), e2.BitCount());
@@ -258,8 +228,8 @@
     bool fastNegate, negateNext, firstTime, finished;
 };
 
-template <class T>
-void AbstractGroup<T>::SimultaneousMultiply(T *results, const T &base,
+
+void AbstractGroup::SimultaneousMultiply(Integer *results, const Integer &base,
                           const Integer *expBegin, unsigned int expCount) const
 {
     mySTL::vector<mySTL::vector<Element> > buckets(expCount);
@@ -321,34 +291,39 @@
     }
 }
 
-template <class T> T AbstractRing<T>::Exponentiate(const Element &base,
-                                                 const Integer &exponent) const
+Integer AbstractRing::Exponentiate(const Element &base,
+                                   const Integer &exponent) const
 {
     Element result;
     SimultaneousExponentiate(&result, base, &exponent, 1);
     return result;
 }
 
-template <class T> T AbstractRing<T>::CascadeExponentiate(const Element &x,
+
+Integer AbstractRing::CascadeExponentiate(const Element &x,
                   const Integer &e1, const Element &y, const Integer &e2) const
 {
-    return MultiplicativeGroup().AbstractGroup<T>::CascadeScalarMultiply(
+    return MultiplicativeGroup().AbstractGroup::CascadeScalarMultiply(
                 x, e1, y, e2);
 }
 
-template <class Element, class Iterator> Element GeneralCascadeExponentiation(
-               const AbstractRing<Element> &ring, Iterator begin, Iterator end)
-{
-    return GeneralCascadeMultiplication<Element>(ring.MultiplicativeGroup(),
-                                                 begin, end);
-}
 
-template <class T>
-void AbstractRing<T>::SimultaneousExponentiate(T *results, const T &base,
+void AbstractRing::SimultaneousExponentiate(Integer *results,
+                                            const Integer &base,
                          const Integer *exponents, unsigned int expCount) const
 {
-    MultiplicativeGroup().AbstractGroup<T>::SimultaneousMultiply(results, base,
+    MultiplicativeGroup().AbstractGroup::SimultaneousMultiply(results, base,
                                                           exponents, expCount);
 }
 
+
 } // namespace
+
+#ifdef __GNUC__
+namespace mySTL {
+template TaoCrypt::WindowSlider* uninit_copy<TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*>(TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*);
+template vector<TaoCrypt::Integer>* uninit_fill_n<vector<TaoCrypt::Integer>*, unsigned int, vector<TaoCrypt::Integer> >(vector<TaoCrypt::Integer>*, unsigned int, vector<TaoCrypt::Integer> const&);
+template void destroy<TaoCrypt::WindowSlider*>(TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*);
+template void destroy<vector<TaoCrypt::Integer>*>(vector<TaoCrypt::Integer>*, vector<TaoCrypt::Integer>*);
+}
+#endif

--- 1.1/extra/yassl/taocrypt/src/asn.cpp	2005-04-28 18:23:18 +05:00
+++ 1.2/extra/yassl/taocrypt/src/asn.cpp	2005-05-25 00:15:01 +05:00
@@ -187,7 +187,7 @@
 void PublicKey::SetSize(word32 s)
 {
     sz_ = s;
-    key_ = new (tc) byte[sz_];
+    key_ = new byte[sz_];
 }
 
 
@@ -199,7 +199,7 @@
 
 void PublicKey::AddToEnd(const byte* data, word32 len)
 {
-    mySTL::auto_ptr<byte> tmp(new (tc) byte[sz_ + len]);
+    mySTL::auto_ptr<byte> tmp(new byte[sz_ + len]);
 
     memcpy(tmp.get(), key_, sz_);
     memcpy(tmp.get() + sz_, data, len);
@@ -218,7 +218,7 @@
 {
     if (n) {
         int sz = strlen(n);
-        name_ = new (tc) char[sz + 1];
+        name_ = new char[sz + 1];
         memcpy(name_, n, sz);
         name_[sz] = 0;
     }
@@ -480,7 +480,7 @@
     }
     else
         if (!ValidateSignature(signers))
-            source_.SetError(SIG_CONFIRM_E);
+            source_.SetError(SIG_OTHER_E);
 }
 
 
@@ -632,7 +632,7 @@
     }
     sigLength_--;
 
-    signature_ = new (tc) byte[sigLength_];
+    signature_ = new byte[sigLength_];
     memcpy(signature_, source_.get_current(), sigLength_);
     source_.advance(sigLength_);
 
@@ -653,7 +653,7 @@
 
     sigLength_ = GetLength(source_);
 
-    signature_ = new (tc) byte[sigLength_];
+    signature_ = new byte[sigLength_];
     memcpy(signature_, source_.get_current(), sigLength_);
     source_.advance(sigLength_);
 
@@ -693,7 +693,7 @@
 
             if (id == COMMON_NAME) {
                 char*& ptr = (nt == ISSUER) ? issuer_ : subject_;
-                ptr = new (tc) char[strLen + 1];
+                ptr = new char[strLen + 1];
                 memcpy(ptr, source_.get_current(), strLen);
                 ptr[strLen] = 0;
             }
@@ -810,15 +810,15 @@
     mySTL::auto_ptr<HASH> hasher;
 
     if (signatureOID_ == MD5wRSA) {
-        hasher.reset(new (tc) MD5);
+        hasher.reset(new MD5);
         ht = MD5h;
     }
     else if (signatureOID_ == MD2wRSA) {
-        hasher.reset(new (tc) MD2);
+        hasher.reset(new MD2);
         ht = MD2h;
     }
     else if (signatureOID_ == SHAwRSA || signatureOID_ == SHAwDSA) {
-        hasher.reset(new (tc) SHA);
+        hasher.reset(new SHA);
         ht = SHAh;
     }
     else {

--- 1.2/extra/yassl/taocrypt/src/dh.cpp	2005-05-20 19:32:42 +05:00
+++ 1.3/extra/yassl/taocrypt/src/dh.cpp	2005-05-25 00:15:01 +05:00
@@ -26,7 +26,6 @@
 #include "runtime.hpp"
 #include "dh.hpp"
 #include "asn.hpp"
-#include <math.h>
 
 namespace TaoCrypt {
 

--- 1.1/extra/yassl/taocrypt/src/dsa.cpp	2005-04-28 18:23:19 +05:00
+++ 1.2/extra/yassl/taocrypt/src/dsa.cpp	2005-05-25 00:15:01 +05:00
@@ -27,8 +27,6 @@
 #include "modarith.hpp"
 #include "stdexcept.hpp"
 
-#include "algebra.cpp"   // for GCC 3.2 on aix ?
-
 
 namespace TaoCrypt {
 

--- 1.4/extra/yassl/taocrypt/src/integer.cpp	2005-05-06 20:54:27 +05:00
+++ 1.5/extra/yassl/taocrypt/src/integer.cpp	2005-05-25 00:15:01 +05:00
@@ -38,11 +38,10 @@
 #include "asn.hpp"
 #include "stdexcept.hpp"
 
-#include "algebra.cpp"
 
 
 #ifdef __DECCXX
-    #include <c_asm.h>  // for asm multiply overflow
+    #include <c_asm.h>  // for asm overflow assembly
 #endif
 
 
@@ -63,7 +62,7 @@
     #pragma message("You do not seem to have the Visual C++ Processor Pack ")
     #pragma message("installed, so use of SSE2 intrinsics will be disabled.")
 #elif defined(__GNUC__) && defined(__i386__)
-/*  #warning You do not have GCC 3.3 or later, or did not specify the -msse2 \
+/*   #warning You do not have GCC 3.3 or later, or did not specify the -msse2 \
              compiler option. Use of SSE2 intrinsics will be disabled.
 */
 #endif
@@ -109,7 +108,7 @@
         assert(IsAlignedOn(p, 16));
         return (T*)p;
     }
-    return new (tc) T[n];
+    return new T[n];
 }
 
 
@@ -178,7 +177,7 @@
             #elif defined(__DECCXX)
                 r.halfs_.high = asm("umulh %a0, %a1, %v0", a, b);
             #else
-                #error unsupported alpha compiler for asm multiply overflow
+                #error can not implement multiply overflow
             #endif
         #elif defined(__ia64__)
             r.halfs_.low = a*b;
@@ -392,6 +391,7 @@
     return Q;
 }
 
+
 // do a 4 word by 2 word divide, returns 2 word quotient in Q0 and Q1
 template <class S, class D>
 inline D DivideFourWordsByTwo(S *T, const D &Al, const D &Ah, const D &B)
@@ -470,66 +470,6 @@
 }
 
 
-template <class T>
-static Integer StringToInteger(const T *str)
-{
-    word radix;
-
-    unsigned int length;
-    for (length = 0; str[length] != 0; length++) {}
-
-    Integer v;
-
-    if (length == 0)
-        return v;
-
-    switch (str[length-1])
-    {
-    case 'h':
-    case 'H':
-        radix=16;
-        break;
-    case 'o':
-    case 'O':
-        radix=8;
-        break;
-    case 'b':
-    case 'B':
-        radix=2;
-        break;
-    default:
-        radix=10;
-    }
-
-    if (length > 2 && str[0] == '0' && str[1] == 'x')
-        radix = 16;
-
-    for (unsigned i=0; i<length; i++)
-    {
-        word digit;
-
-        if (str[i] >= '0' && str[i] <= '9')
-            digit = str[i] - '0';
-        else if (str[i] >= 'A' && str[i] <= 'F')
-            digit = str[i] - 'A' + 10;
-        else if (str[i] >= 'a' && str[i] <= 'f')
-            digit = str[i] - 'a' + 10;
-        else
-            digit = radix;
-
-        if (digit < radix)
-        {
-            v *= radix;
-            v += digit;
-        }
-    }
-
-    if (str[0] == '-')
-        v.Negate();
-
-    return v;
-}
-
 static int Compare(const word *A, const word *B, unsigned int N)
 {
     while (N--)
@@ -2308,85 +2248,6 @@
     }
 }
 
-/*
-template <class P>
-void RecursiveMultiplyTop(word *R, word *T, const word *L, const word *A,
-                          const word *B, unsigned int N, const P *dummy=0)
-{
-    assert(N>=2 && N%2==0);
-
-    if (N==4)
-    {
-        P::Multiply4(T, A, B);
-        ((dword *)R)[0] = ((dword *)T)[2];
-        ((dword *)R)[1] = ((dword *)T)[3];
-    }
-    else if (N==2)
-    {
-        P::Multiply2(T, A, B);
-        ((dword *)R)[0] = ((dword *)T)[1];
-    }
-    else
-    {
-        const unsigned int N2 = N/2;
-        int carry;
-
-        int aComp = Compare(A0, A1, N2);
-        int bComp = Compare(B0, B1, N2);
-
-        switch (2*aComp + aComp + bComp)
-        {
-        case -4:
-            P::Subtract(R0, A1, A0, N2);
-            P::Subtract(R1, B0, B1, N2);
-            RecursiveMultiply<P>(T0, T2, R0, R1, N2);
-            P::Subtract(T1, T1, R0, N2);
-            carry = -1;
-            break;
-        case -2:
-            P::Subtract(R0, A1, A0, N2);
-            P::Subtract(R1, B0, B1, N2);
-            RecursiveMultiply<P>(T0, T2, R0, R1, N2);
-            carry = 0;
-            break;
-        case 2:
-            P::Subtract(R0, A0, A1, N2);
-            P::Subtract(R1, B1, B0, N2);
-            RecursiveMultiply<P>(T0, T2, R0, R1, N2);
-            carry = 0;
-            break;
-        case 4:
-            P::Subtract(R0, A1, A0, N2);
-            P::Subtract(R1, B0, B1, N2);
-            RecursiveMultiply<P>(T0, T2, R0, R1, N2);
-            P::Subtract(T1, T1, R1, N2);
-            carry = -1;
-            break;
-        default:
-            SetWords(T0, 0, N);
-            carry = 0;
-        }
-
-        RecursiveMultiply<P>(T2, R0, A1, B1, N2);
-
-        // now T[01] holds (A1-A0)*(B0-B1), T[23] holds A1*B1
-
-        word c2 = P::Subtract(R0, L+N2, L, N2);
-        c2 += P::Subtract(R0, R0, T0, N2);
-        word t = (Compare(R0, T2, N2) == -1);
-
-        carry += t;
-        carry += Increment(R0, N2, c2+t);
-        carry += P::Add(R0, R0, T1, N2);
-        carry += P::Add(R0, R0, T3, N2);
-        assert (carry >= 0 && carry <= 2);
-
-        CopyWords(R1, T3, N2);
-        Increment(R1, N2, carry);
-    }
-}
-*/
-
 
 void RecursiveMultiplyTop(word *R, word *T, const word *L, const word *A,
                           const word *B, unsigned int N)
@@ -2739,20 +2600,6 @@
 }
 
 
-Integer::Integer(const char *str)
-    : reg_(2), sign_(POSITIVE)
-{
-    *this = StringToInteger(str);
-}
-
-
-Integer::Integer(const wchar_t *str)
-    : reg_(2), sign_(POSITIVE)
-{
-    *this = StringToInteger(str);
-}
-
-
 Integer::Integer(const byte *encodedInteger, unsigned int byteCount,
                  Signedness s)
 {
@@ -3358,76 +3205,6 @@
 #undef R2
 #undef R3
 
-/*
-// do a 3 word by 2 word divide, returns quotient and leaves remainder in A
-static word SubatomicDivide(word *A, word B0, word B1)
-{
-    // assert {A[2],A[1]} < {B1,B0}, so quotient can fit in a word
-    assert(A[2] < B1 || (A[2]==B1 && A[1] < B0));
-
-    dword p, u;
-    word Q;
-
-    // estimate the quotient: do a 2 word by 1 word divide
-    if (B1+1 == 0)
-        Q = A[2];
-    else
-        Q = word(MAKE_DWORD(A[1], A[2]) / (B1+1));
-
-    // now subtract Q*B from A
-    p = (dword) B0*Q;
-    u = (dword) A[0] - LOW_WORD(p);
-    A[0] = LOW_WORD(u);
-    u = (dword) A[1] - HIGH_WORD(p) - (word)(0-HIGH_WORD(u)) - (dword)B1*Q;
-    A[1] = LOW_WORD(u);
-    A[2] += HIGH_WORD(u);
-
-    // Q <= actual quotient, so fix it
-    while (A[2] || A[1] > B1 || (A[1]==B1 && A[0]>=B0))
-    {
-        u = (dword) A[0] - B0;
-        A[0] = LOW_WORD(u);
-        u = (dword) A[1] - B1 - (word)(0-HIGH_WORD(u));
-        A[1] = LOW_WORD(u);
-        A[2] += HIGH_WORD(u);
-        Q++;
-        assert(Q);	// shouldn't overflow
-    }
-
-    return Q;
-}
-*/
-
-
-/*
-// do a 4 word by 2 word divide, returns 2 word quotient in Q0 and Q1
-static inline void AtomicDivide(word *Q, const word *A, const word *B)
-{
-    if (!B[0] && !B[1]) // if divisor is 0, we assume divisor==2**(2*WORD_BITS)
-    {
-        Q[0] = A[2];
-        Q[1] = A[3];
-    }
-    else
-    {
-        word T[4];
-        T[0] = A[0]; T[1] = A[1]; T[2] = A[2]; T[3] = A[3];
-        Q[1] = SubatomicDivide(T+1, B[0], B[1]);
-        Q[0] = SubatomicDivide(T, B[0], B[1]);
-
-#ifndef NDEBUG
-        // multiply quotient and divisor and add remainder
-        // make sure it equals dividend
-        assert(!T[2] && !T[3] && (T[1] < B[1] || (T[1]==B[1] && T[0]<B[0])));
-        word P[4];
-        LowLevel::Multiply2(P, Q, B);
-        Add(P, P, T, 4);
-        assert(memcmp(P, A, 4*WORD_SIZE)==0);
-#endif
-    }
-}
-*/
-
 
 static inline void AtomicDivide(word *Q, const word *A, const word *B)
 {
@@ -3772,7 +3549,7 @@
 
 Integer Integer::Gcd(const Integer &a, const Integer &b)
 {
-    return EuclideanDomainOf<Integer>().Gcd(a, b);
+    return EuclideanDomainOf().Gcd(a, b);
 }
 
 Integer Integer::InverseMod(const Integer &m) const
@@ -3955,7 +3732,7 @@
                                                     dr.ConvertIn(y), e2));
     }
     else
-        return AbstractRing<Integer>::CascadeExponentiate(x, e1, y, e2);
+        return AbstractRing::CascadeExponentiate(x, e1, y, e2);
 }
 
 void ModularArithmetic::SimultaneousExponentiate(Integer *results,
@@ -3971,7 +3748,7 @@
             results[i] = dr.ConvertOut(results[i]);
     }
     else
-        AbstractRing<Integer>::SimultaneousExponentiate(results, base,
+        AbstractRing::SimultaneousExponentiate(results, base,
                                                     exponents, exponentsCount);
 }
 
@@ -4170,10 +3947,6 @@
 }
 
 #ifdef __GNUC__
-template Integer StringToInteger<char>(char const*);
-template Integer StringToInteger<wchar_t>(wchar_t const*);
-template class EuclideanDomainOf<Integer>;
-template class AbstractEuclideanDomain<Integer>;
 template unsigned int DivideThreeWordsByTwo<unsigned int, DWord>(unsigned int*, unsigned int, unsigned int, DWord*);
 #endif
 

--- 1.1/extra/yassl/taocrypt/src/misc.cpp	2005-04-28 18:23:20 +05:00
+++ 1.2/extra/yassl/taocrypt/src/misc.cpp	2005-05-25 00:15:01 +05:00
@@ -27,34 +27,7 @@
 #include <new>        // for NewHandler
 
 
-void* operator new(size_t sz, TaoCrypt::new_t)
-{
-    void* ptr = ::operator new(sz);
-
-    if (!ptr) abort();
-
-    return ptr;
-}
-
-void* operator new[](size_t sz, TaoCrypt::new_t tc)
-{
-#if defined(_MSC_VER) && (_MSC_VER < 1300)
-    void* ptr = ::operator new(sz);         // no ::operator new[]
-#else
-    void* ptr = ::operator new[](sz);
-#endif
-
-    if (!ptr) abort();
-
-    return ptr;
-}
-
-
-
 namespace TaoCrypt {
-
-
-new_t tc;   // for library new
 
 
 inline void XorWords(word* r, const word* a, unsigned int n)

--- 1.1/extra/yassl/taocrypt/src/random.cpp	2005-04-28 18:23:21 +05:00
+++ 1.2/extra/yassl/taocrypt/src/random.cpp	2005-05-25 00:15:01 +05:00
@@ -26,7 +26,6 @@
 
 #include "runtime.hpp"
 #include "random.hpp"
-#include "stdexcept.hpp"
 
 #if defined(WIN32)
     #define _WIN32_WINNT 0x0400

--- 1.3/extra/yassl/taocrypt/src/rsa.cpp	2005-05-05 19:19:22 +05:00
+++ 1.4/extra/yassl/taocrypt/src/rsa.cpp	2005-05-25 00:15:01 +05:00
@@ -27,7 +27,6 @@
 #include "modarith.hpp"
 #include "stdexcept.hpp"
 
-#include "algebra.cpp"   // for GCC 3.2 on aix ?
 
 
 namespace TaoCrypt {
@@ -214,8 +213,6 @@
 #ifdef __GNUC__
 template AllocatorWithCleanup<unsigned char>::pointer StdReallocate<unsigned char, AllocatorWithCleanup<unsigned char> >(AllocatorWithCleanup<unsigned char>&, unsigned char*, AllocatorWithCleanup<unsigned char>::size_type, AllocatorWithCleanup<unsigned char>::size_type, bool);
 template AllocatorWithCleanup<unsigned int>::pointer StdReallocate<unsigned int, AllocatorWithCleanup<unsigned int> >(AllocatorWithCleanup<unsigned int>&, unsigned int*, AllocatorWithCleanup<unsigned int>::size_type, AllocatorWithCleanup<unsigned int>::size_type, bool);
-template class AbstractGroup<Integer>;
-template class AbstractRing<Integer>;
 template class RSA_Decryptor<RSA_BlockType2>;
 template class RSA_Encryptor<RSA_BlockType1>;
 template class RSA_Encryptor<RSA_BlockType2>;
@@ -227,11 +224,7 @@
 namespace mySTL {
 template TaoCrypt::Integer* uninit_copy<TaoCrypt::Integer*, TaoCrypt::Integer*>(TaoCrypt::Integer*, TaoCrypt::Integer*, TaoCrypt::Integer*);
 template TaoCrypt::Integer* uninit_fill_n<TaoCrypt::Integer*, unsigned int, TaoCrypt::Integer>(TaoCrypt::Integer*, unsigned int, TaoCrypt::Integer const&);
-template TaoCrypt::WindowSlider* uninit_copy<TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*>(TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*);
-template vector<TaoCrypt::Integer>* uninit_fill_n<vector<TaoCrypt::Integer>*, unsigned int, vector<TaoCrypt::Integer> >(vector<TaoCrypt::Integer>*, unsigned int, vector<TaoCrypt::Integer> const&);
 template void destroy<TaoCrypt::Integer*>(TaoCrypt::Integer*, TaoCrypt::Integer*);
-template void destroy<TaoCrypt::WindowSlider*>(TaoCrypt::WindowSlider*, TaoCrypt::WindowSlider*);
-template void destroy<vector<TaoCrypt::Integer>*>(vector<TaoCrypt::Integer>*, vector<TaoCrypt::Integer>*);
 }
 #endif
 
Thread
bk commit into 5.0 tree (svoj:1.1904)svoj24 May