Commit Graph

225 Commits (6eeebaf26b04e1695a7c404d555ebd003d076d68)

Author SHA1 Message Date
Jeffrey Walton 7d02a3c74d Fix undeclared identifiers '_tzcnt_u32' and '__blsr_u32' under Clang (Issue 205) 2016-06-26 06:28:07 -04:00
Jeffrey Walton e961c2da5b Merge Atomics branch into Master 2016-06-06 22:08:04 -04:00
Jeffrey Walton 432db09b72 Removed CRYPTOPP_DISABLE_ASM from __BMI__ check 2016-05-25 17:48:16 -04:00
Jeffrey Walton 733c78ba23 Relocate ARM defines to contribute to CRYPTOPP_BOOL_ALIGN16 2016-05-21 15:50:04 -04:00
Jeffrey Walton 6a6027c2cd Include "cpu.h" rather than <immintrin.h> directly to avoid compile error when using GCC and -mno-sse<N> 2016-05-21 08:32:23 -04:00
Jeffrey Walton b1a7ada564 Merge branch 'atomics' into windows-store 2016-05-16 18:49:05 -04:00
Jeffrey Walton d2fada4417 Merge branch 'master' into atomics 2016-05-15 00:08:47 -04:00
Jeffrey Walton e5d2f4a71a Merge branch 'master' into windows-store 2016-05-15 00:08:22 -04:00
Jeffrey Walton be0d838e11 Updated documentation 2016-05-15 00:04:28 -04:00
Jeffrey Walton 58656e4bac Updated documentation 2016-05-15 00:03:58 -04:00
Jeffrey Walton d294b4290b Add changes for Windows Sotre that went missing with my clumsy Git skills 2016-05-09 03:07:57 -04:00
Jeffrey Walton 8bb9197adc Add atomics support 2016-05-02 23:38:10 -04:00
Jeffrey Walton 1ce593357f Cleared compile errors under Visual Studio .Net compilers 2016-04-29 10:25:18 -04:00
Jeffrey Walton 1d4967b5fc Updated to use BLSR intrinsic from SSE4/BMI when available 2016-04-26 17:13:15 -04:00
Jeffrey Walton 5c41ccb8fb Enable tzcnt intrinsic for GCC when BMI is defined 2016-04-25 07:20:37 -04:00
Jeffrey Walton 412a41faa0 Enable tzcnt intrinsic for GCC when AVX2 is defined 2016-04-25 06:24:06 -04:00
Enrico Pisko 90748eb3c2 replaced special character which caused warning C4819 with other system encoding 2016-04-25 10:16:59 +02:00
Jeffrey Walton f4877218fa Updated documentation 2016-04-24 22:20:25 -04:00
Jeffrey Walton c82f0a0d6a Updated documentation 2016-04-21 04:08:06 -04:00
Jeffrey Walton f71b9c4894 Updated documentation 2016-01-31 22:18:25 -05:00
Jeffrey Walton 3a3fae8b8b Fixed potential ODR violation of non-member function StringNarrow 2016-01-30 14:01:20 -05:00
Jeffrey Walton 47cf7aca3e Cleared -Wconversion warnings (Issue 126) 2016-01-28 15:26:57 -05:00
Jeffrey Walton 66359e8532 Updated documentation 2016-01-26 17:12:42 -05:00
Jeffrey Walton fa05fa6e40 Updated documentation 2016-01-26 16:08:09 -05:00
Jeffrey Walton 8723adb857 Updated documentation 2016-01-26 13:46:44 -05:00
Jeffrey Walton b53def3736 Cleared -Wcast-align with unaligned access (Issue 122) 2016-01-26 10:43:51 -05:00
Jeffrey Walton 1f1fecce88 Cleared -Wcast-align (Issue 122) 2016-01-25 19:28:55 -05:00
Jeffrey Walton 2b7dba4fa6 Suppressed false positives on -Wcast-align warning 2016-01-14 19:08:56 -05:00
Crayon2000 0d483f3092 Reverted file format to UTF-8 (No BOM)
Format was changed in my last commit.
2016-01-11 23:32:35 -05:00
Crayon2000 c31b96b11b To use wcstombs with C++Builder we need to include stdlib.h
wcstombs was supported in C++Builder 2010 : http://docwiki.embarcadero.com/RADStudio/2010/en/Wcstombs
2016-01-11 23:28:54 -05:00
Jeffrey Walton 298988a5b9 Crypto++ 5.6.3 check-in 2015-11-22 19:17:15 -05:00
Jeffrey Walton 62618fda97 Revert botched "Crypto++ 5.6.3 check-in". Corruption due to VMware adding garbage to the end of some source files during drag and drop from guest to host.
This reverts commit c454358122.
2015-11-22 19:11:31 -05:00
Jeffrey Walton c454358122 Crypto++ 5.6.3 check-in 2015-11-20 19:15:33 -05:00
Jeffrey Walton 6ac1e46a1f Cleared issues 11,12,13 (Clang integrated assembler), 58 (RC rollup), 66 (Coverity rollup) 2015-11-18 15:32:28 -05:00
Jeffrey Walton 48809d4e85 CRYPTOPP 5.6.3 RC6 checkin 2015-11-05 01:59:46 -05:00
Alberto Curro 1d5bcc08fb Fixes the warning on IntToString about comparison of unsigned and signed values, when boost::uint32_t and boost::uint64_t are used with the function 2015-10-01 14:35:45 +01:00
Jeffrey Walton 973e48744b Removed guard on memcpy_s call to memcpy. All the Undefined Behavior has been removed. The CRYPTOPP_ASSERT remains to guard the use of the functions, as does Clang/GCC Undefined Behavior sanitizer 2015-08-03 19:20:27 -04:00
Jeffrey Walton b44546be11 Revert "Hid inline assembly behind a macro". The MEMORY_BARRIER code is OK, and the use of inline assembly code is OK to tame the optimizer is OK; but its confusing because the interactions are not readily apparent. 2015-08-01 19:00:31 -04:00
Jeffrey Walton 390d27b6cd Hid inline assembly behind a macro 2015-08-01 18:02:03 -04:00
Jeffrey Walton e9c086aaac Added assert. Thanks to Jean-Pierre Münch for the suggestion 2015-07-30 18:58:11 -04:00
Jeffrey Walton 77206baf56 Whitespace checkin 2015-07-30 13:07:33 -04:00
Jeffrey Walton 264018e8ec Suppressed "sign comparison" warning under GCC and Clang 2015-07-30 09:14:43 -04:00
Jeffrey Walton 33e6a62c5e Reverted to previous SafeConvert code. Its not as efficient as it could be, but it is darn sure correct. Self-tests for the verification to follow 2015-07-30 08:38:28 -04:00
Jeffrey Walton 414b673706 Added test for T1 is signed 2015-07-29 22:37:36 -04:00
Jeffrey Walton 2936447d05 Updated IntToString and SafeConvert to squash the "signed/unsigned" warnings once and for all. Removed the specializations that caused more trouble than they were worth. (If all platforms offered size_t and ssizeT the same way, specializations would have been the preferred solution 2015-07-29 06:33:41 -04:00
Jeffrey Walton ef318d5423 Fixed compiler errors on Apple due to cross product of {C++03,C++11} x {libc++, libstdc++}. It included bringing in the correct <memory> in <stdcpp.h>, and then only including <stdcpp.h> when <memory> was needed. 2015-07-27 16:01:55 -04:00
Jeffrey Walton c42947e19b Rearranged includes for consistency after testing 2015-07-27 13:03:18 -04:00
Jeffrey Walton 5eff653a54 Added guard and specialization for APple with and without "-std=c++11" 2015-07-27 12:40:06 -04:00
Jeffrey Walton 30b706316b Cleared "signed/unsigned" warning introduced by 1997c21b37 under GCC. The ultimate fix is to guard the std::streamsize specialization to ensure Microsoft compilers don't see it 2015-07-26 13:56:45 -04:00
Jeffrey Walton 1997c21b37 Cleared "explicit specialization has already been defined" under MSVC and Visual Studio 2015 2015-07-26 11:27:36 -04:00
Jeffrey Walton d3b2c03e4e Added missing specialization for i386. Added comment on why we were specializing 2015-07-25 02:06:52 -04:00
Jeffrey Walton 35b213c085 Cleared "unused parameter" warning with GCC 5.1 and -Wextra 2015-07-23 19:30:14 -04:00
Jeffrey Walton 504ba0ea87 Cleared "comparison between signed and unsigned integer" warning in SafeConvert by providing template specializations 2015-07-23 18:15:29 -04:00
Jeffrey Walton 07e8319478 Cleared "unused function" warning when using GCC with -Wall 2015-07-23 14:21:06 -04:00
Jeffrey Walton b2d9be1b80 Cleared "unused variable" warning when using CRYPTOPP_STATIC_ASSERT under GCC. The "__attribute__ ((unused)" was present in GCC 2.95, so it will be available for the GCC's we support. Non-GCC's will get the non-decorated assert 2015-07-23 12:30:13 -04:00
Jeffrey Walton ac0f94c23a Removed branch from rotlVariable. The mask ensures it stays well defined 2015-07-23 04:06:10 -04:00
Jeffrey Walton 1303f4bdcc Cutover to CRYPTOPP_ASSERT in misc.h. Posix's behavior of "let's crash the program by raising SIGABRT" in Debug builds has got to be one of the most questionable decisions in the history of computing. The new behavior: if there's a SIGTRAP handler somewhere, then the handler will be invoked. Some platforms, like Apple and Microsoft, provide a default SIGTRAP handler. If there's no SIGTRAP handler, then the program will crash just like it raised a SIGABRT. In this case, there's no effective change in behavior 2015-07-23 03:39:13 -04:00
Jeffrey Walton e6300f52e2 Removed template specializations for Clang using preprocessor for rotFixed due to LLVM Bug 24226. Removed asserts from __rlwinm because the mask ensures the operation is well defined (see the comments in ppc_intrinsics.h) 2015-07-23 01:53:45 -04:00
Jeffrey Walton 2441817708 Improved comment for GCC_DIAGNOSTIC_AWARE 2015-07-21 19:02:11 -04:00
Jeffrey Walton 88f94ed358 Cleared behavior that relied upon undefined behavior 2015-07-19 14:35:30 -04:00
Jeffrey Walton e874cd2ef8 Fixed spelling error in header comments 2015-07-19 10:57:12 -04:00
Jeffrey Walton 5bd61dcc92 Added inline assembly for left and right rotate under GCC on x86/x86_64 2015-07-19 08:31:58 -04:00
Jeffrey Walton 8cef820ac8 Cleared UBsan error based on undefined shift. Tightened behaviors based on offline conversation with Wei and Denis. One shift error remains due to use of rotVariable by Cast. The UB will be cleared shortly, when specializations using GCC assembler is checked in 2015-07-17 22:21:01 -04:00
Jeffrey Walton 5f299d76a0 Cleared UBsan error on non-null pointers being used with memcpy and memmove from library functions memcpy_s and memmove_s 2015-07-17 21:09:42 -04:00
Jeffrey Walton 172cce3974 Added source code documentation on the rotFixed, rotVariable and rotMod functions 2015-07-17 07:40:16 -04:00
Jeffrey Walton e7eee759bb Cleared UBsan errors under GCC 5.1. Cleared signed/unsigned warnings under Visual Studio 2015-07-17 07:16:01 -04:00
Jeffrey Walton 828c550389 Cleared C4242 warning uder Visual Studio 2015-07-13 23:59:01 -04:00
Jeffrey Walton 01caf892e0 Whitespcae check-in 2015-07-13 23:20:36 -04:00
Jeffrey Walton 9bf0eed0f6 Cleared crash with GCC 4.8 and above and -O3. In a nutshell, it was due to vectorization and alignment violations agains the vmovdqa instruction 2015-07-13 22:53:16 -04:00
Jeffrey Walton b5ed163c87 Cleared UBSan warnings reported by Jonathan Wakely. Cleared many issues reported in GitHub Issue 4 (its a rollup of -fsanitize=undefined) 2015-07-13 20:37:34 -04:00
Jeffrey Walton c6abf130eb Moved GCC_DIAGNOSTIC_AWARE and GCC_OPTIMIZE_AWARE into misc.h 2015-07-13 00:39:13 -04:00
Jeffrey Walton 12931b3301 Cleared signed/unsigned warning on IncrementCounterByOne 2015-07-12 18:32:10 -04:00
Jeffrey Walton 02dff96e97 Cleared signed/unsigned warning using GCC __builtin_XXX 2015-07-12 18:19:46 -04:00
Jeffrey Walton 8386b3f139 Guarded COUNTOF macro. Thanks to Graham Bull for the suggestion 2015-07-05 17:53:42 -04:00
Jeffrey Walton f2379159f8 Added COUNTOF to misc.h to count elements in an array (fails on pointers). Moved CRYPTOPP_UNUSED to misc.h 2015-07-03 15:40:44 -04:00
Jeffrey Walton 457eaeaf23 Static analysis showed the unsigned int y is truncated to an unsigned char via _rotr16. It does not appear to be a problem with the library, but it may be a problem for users. The assert will alert in Debug builds (but not Release builds) 2015-06-29 08:38:38 -04:00
Jeffrey Walton a14a5696e1 Added GCC_DIAGNOSTIC_AWARE to help suppress some warnings on contemporary compilers. The macro was needed to help with managing old compilers, like GCC 4.2.1, present on OpenBSD 2015-06-29 02:09:02 -04:00
Jeffrey Walton a0390f1fd7 Added inline to StringNarrow to squash unused function warning 2015-06-28 22:21:57 -04:00
Jeffrey Walton 17fea9df2a Backed out commit d2686acc10. Its not clear it was safe to clear the warning this way 2015-06-13 15:40:06 -04:00
Jeffrey Walton d2686acc10 Cleared signed/unsigned warning 2015-06-08 04:05:42 -04:00
weidai ed7652256c fix compile with MINGW 2013-01-26 17:15:07 +00:00
weidai 11c126bf8a fix compile with clang 2.9 (Jeff Walton) 2011-10-12 06:13:37 +00:00
weidai 57de1d522b move memory allocation/deallocation for SecBlock into DLL 2010-07-24 05:33:58 +00:00
weidai 1c8437454e fix compile on C++Builder 2010 2010-07-07 22:20:58 +00:00
weidai d60229a02a fix possible race condition in Singleton::Ref()
tolerate double destruction of Singleton and g_nullNameValuePairs
fix #include of standard headers
2010-06-18 07:06:59 +00:00
weidai 80aaec3131 improve Unicode filename handling 2009-07-11 22:50:18 +00:00
weidai 92718c4754 handle Unicode filenames 2009-07-11 01:48:12 +00:00
weidai 59e1a979cf improve SecureWipeBuffer for GCC 2009-05-01 22:37:47 +00:00
weidai 40c436a7e5 add and use SecureWipeArray() to avoid compiler optimizing away memset() (reported by Paul Pelzl) 2009-05-01 18:49:10 +00:00
weidai 2779fc6050 - add EAX mode, XSalsa20
- speed up GCM key setup
- wipe stack in AES assembly code
- speed up CFB mode
2009-03-12 11:24:12 +00:00
weidai d8a644fc4e changes for 5.6:
- added AuthenticatedSymmetricCipher interface class and Filter wrappers
    - added CCM, GCM (with SSE2 assembly), CMAC, and SEED
    - improved AES speed on x86 and x64
    - removed WORD64_AVAILABLE; compiler 64-bit int support is now required
2009-03-02 02:39:17 +00:00
weidai 3f30574ced fixes for GCC 4.3.2 (reports from Chris Morgan and DiegoT) 2008-11-21 03:05:32 +00:00
weidai 6b4c38b887 add workaround for _interlockedbittestandset64 and _interlockedbittestandreset64 2007-12-05 13:49:12 +00:00
weidai 18366293b2 fix missing CRYPTOPP_API 2007-09-25 07:25:47 +00:00
weidai a6801dbcaf don't use _rotl64 with ICC 2007-09-25 06:22:24 +00:00
weidai 1240b1690b fix compile with ICC 10 2007-09-25 04:08:17 +00:00
weidai d3626970a6 fix compile for QNX 2007-08-15 01:55:01 +00:00
weidai edb7242021 fix linker error when compiling with MSVC 2003 and using DLL form of runtime library 2007-08-02 01:13:52 +00:00
weidai c992330622 fix bug in UnalignedPutWordNonTemplate 2007-05-05 01:00:52 +00:00
weidai 9fe12a94b5 use byteswap.h only on Linux 2007-05-04 19:47:37 +00:00
weidai 859e63275f fix DLL compile 2007-05-04 19:30:10 +00:00
weidai 31e06b9d0b change PutBlock to default to non-aligned access 2007-05-04 15:32:55 +00:00
weidai 3a3fef7436 fix compile on Sun CC 2007-04-16 05:40:37 +00:00
weidai 5cad605559 optimizations 2007-04-16 00:21:07 +00:00
weidai 4afd858ae4 port to Borland C++Builder 2006 2006-12-14 11:41:39 +00:00
weidai 80b7c5fa48 remove GCC warning 2006-12-12 07:12:30 +00:00
weidai 0efd938656 improved method of disable inlining, fix compile on NetBSD 2006-12-11 09:13:12 +00:00
weidai 36dbae5fc1 remove compiler warnings 2006-09-01 10:39:56 +00:00
weidai 1b6b327200 change DLL integrity self-test to allow DLL to be Authenticode signed 2006-07-30 17:15:01 +00:00
weidai 6aacd0a0de merge in changes by denis bider and fix compile on gcc 3.4.4 and MSVC 6 2006-04-06 21:20:25 +00:00
weidai 922fdeb150 fix MSVC 2005 warnings 2006-03-13 13:26:41 +00:00
weidai 893174431d remove warning with MSVC .NET 2005 2005-09-03 15:35:29 +00:00
weidai 1db8ea5084 port to MSVC .NET 2005 beta 2 2005-07-12 04:23:32 +00:00
weidai b3924f2108 changes done for FIPS-140 lab code drop 2005-01-20 04:19:35 +00:00
weidai 393ae4859a fix documentation, fix PanamaMAC, fix algorithm names 2004-07-22 00:51:57 +00:00
weidai f78fccb3cc port to GCC 3.4 2004-06-19 08:28:09 +00:00
weidai 89862d1220 guard against potential integer overflow in allocators 2003-08-04 19:00:41 +00:00
weidai 9c5c4769a9 fix potential threading problem with initialization of static objects 2003-07-29 01:18:33 +00:00
weidai 57109b3120 fix bugs in 64-bit CPU support 2003-07-25 00:15:52 +00:00
weidai 4e67d23468 fix 64-bit CPU issues 2003-07-19 05:16:49 +00:00
weidai ae4d479537 add missing #include 2003-07-19 03:57:53 +00:00
weidai 5307588c57 remove Diamond2, code size reductions 2003-07-19 03:47:20 +00:00
weidai f278895908 create DLL version, fix GetNextIV() bug in CTR and OFB modes 2003-07-04 00:17:37 +00:00
weidai d52b49c51f fix bug in Grouper
add RIPEMD-???, Whirlpool, Shacal2, Camellia, Two-Track MAC (Kevin Springle)
change ChannelSwitch to allow non-blocking input (denis bider)
change Redirector to allow more options (denis bider)
fix MaurerRandomnessTest
optimize MD2 (Kevin Springle)
2003-04-15 00:38:48 +00:00
weidai a3b6ece7ab Initial revision 2002-10-04 17:31:41 +00:00