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