diff options
author | unknown <msvensson@neptunus.(none)> | 2007-01-29 16:54:40 +0100 |
---|---|---|
committer | unknown <msvensson@neptunus.(none)> | 2007-01-29 16:54:40 +0100 |
commit | f0aacbca63bf6191cb6b59ef650b56ccf7e181f0 (patch) | |
tree | b6a5e8e8caed2b74a28ec61b821d2450a1af4fa6 /extra/yassl/taocrypt/src/integer.cpp | |
parent | 7d4477f866d26b8bd8e941e6484d843cc30c83c8 (diff) | |
download | mariadb-git-f0aacbca63bf6191cb6b59ef650b56ccf7e181f0.tar.gz |
Import latest version of yaSSL
- Replace SawTooth copyright header with MySQL's
- Bug#19209 Test 'rpl_openssl' hangs on Windows
- Spurious "2013 Connection to server lost" errors fixed
yaSSL doesn't close socket anymore, that is left to the application
extra/yassl/README:
Import patch yassl.diff
extra/yassl/include/buffer.hpp:
Import patch yassl.diff
extra/yassl/include/cert_wrapper.hpp:
Import patch yassl.diff
extra/yassl/include/crypto_wrapper.hpp:
Import patch yassl.diff
extra/yassl/include/factory.hpp:
Import patch yassl.diff
extra/yassl/include/handshake.hpp:
Import patch yassl.diff
extra/yassl/include/lock.hpp:
Import patch yassl.diff
extra/yassl/include/log.hpp:
Import patch yassl.diff
extra/yassl/include/openssl/ssl.h:
Import patch yassl.diff
extra/yassl/include/socket_wrapper.hpp:
Import patch yassl.diff
extra/yassl/include/timer.hpp:
Import patch yassl.diff
extra/yassl/include/yassl.hpp:
Import patch yassl.diff
extra/yassl/include/yassl_error.hpp:
Import patch yassl.diff
extra/yassl/include/yassl_imp.hpp:
Import patch yassl.diff
extra/yassl/include/yassl_int.hpp:
Import patch yassl.diff
extra/yassl/include/yassl_types.hpp:
Import patch yassl.diff
extra/yassl/src/buffer.cpp:
Import patch yassl.diff
extra/yassl/src/cert_wrapper.cpp:
Import patch yassl.diff
extra/yassl/src/crypto_wrapper.cpp:
Import patch yassl.diff
extra/yassl/src/handshake.cpp:
Import patch yassl.diff
extra/yassl/src/lock.cpp:
Import patch yassl.diff
extra/yassl/src/log.cpp:
Import patch yassl.diff
extra/yassl/src/socket_wrapper.cpp:
Import patch yassl.diff
extra/yassl/src/ssl.cpp:
Import patch yassl.diff
extra/yassl/src/template_instnt.cpp:
Import patch yassl.diff
extra/yassl/src/timer.cpp:
Import patch yassl.diff
extra/yassl/src/yassl.cpp:
Import patch yassl.diff
extra/yassl/src/yassl_error.cpp:
Import patch yassl.diff
extra/yassl/src/yassl_imp.cpp:
Import patch yassl.diff
extra/yassl/src/yassl_int.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/aes.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/algebra.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/arc4.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/asn.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/block.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/blowfish.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/coding.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/des.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/dh.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/dsa.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/error.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/file.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/hash.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/hmac.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/integer.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/kernelc.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/md2.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/md4.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/md5.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/misc.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/modarith.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/modes.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/pwdbased.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/random.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/ripemd.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/rsa.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/runtime.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/sha.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/twofish.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/type_traits.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/include/types.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/algorithm.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/helpers.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/list.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/memory.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/memory_array.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/pair.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/stdexcept.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/mySTL/vector.hpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/aes.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/aestables.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/algebra.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/arc4.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/asn.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/bftables.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/blowfish.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/coding.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/crypto.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/des.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/dh.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/dsa.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/file.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/hash.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/integer.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/md2.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/md4.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/md5.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/misc.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/random.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/ripemd.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/rsa.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/sha.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/template_instnt.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/tftables.cpp:
Import patch yassl.diff
extra/yassl/taocrypt/src/twofish.cpp:
Import patch yassl.diff
Diffstat (limited to 'extra/yassl/taocrypt/src/integer.cpp')
-rw-r--r-- | extra/yassl/taocrypt/src/integer.cpp | 65 |
1 files changed, 23 insertions, 42 deletions
diff --git a/extra/yassl/taocrypt/src/integer.cpp b/extra/yassl/taocrypt/src/integer.cpp index 5927f7e3d5e..419783403ea 100644 --- a/extra/yassl/taocrypt/src/integer.cpp +++ b/extra/yassl/taocrypt/src/integer.cpp @@ -1,27 +1,20 @@ -/* integer.cpp - * - * Copyright (C) 2003 Sawtooth Consulting Ltd. - * - * This file is part of yaSSL. - * - * yaSSL is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * There are special exceptions to the terms and conditions of the GPL as it - * is applied to yaSSL. View the full text of the exception in the file - * FLOSS-EXCEPTIONS in the directory of this software distribution. - * - * yaSSL is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ +/* + Copyright (C) 2000-2007 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ @@ -38,23 +31,12 @@ #include <c_asm.h> // for asm overflow assembly #endif - -// 64bit multiply overflow intrinsic -#if defined(_MSC_VER) && defined(_WIN64) && !defined(__INTEL_COMPILER) && \ - !defined(TAOCRYPT_NATIVE_DWORD_AVAILABLE) - #ifdef __ia64__ - #define myUMULH __UMULH - #elif __x86_64__ - #define myUMULH __umulh - #else - #error unknown 64bit windows - #endif - -extern "C" word myUMULH(word, word); - -#pragma intrinsic (myUMULH) +#if defined(_M_X64) || defined(_M_IA64) + #include <intrin.h> +#pragma intrinsic(_umul128) #endif + #ifdef __GNUC__ #include <signal.h> #include <setjmp.h> @@ -184,9 +166,8 @@ DWord() {} #ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE r.whole_ = (dword)a * b; - #elif defined(_MSC_VER) - r.halfs_.low = a*b; - r.halfs_.high = myUMULH(a,b); + #elif defined(_M_X64) || defined(_M_IA64) + r.halfs_.low = _umul128(a, b, &r.halfs_.high); #elif defined(__alpha__) r.halfs_.low = a*b; |