aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils
Commit message (Collapse)AuthorAgeFilesLines
* Fix BER integer overflow (CVE-2016-9132)Jack Lloyd2016-11-282-0/+40
|
* Fixes for CVE-2015-7827 and CVE-2016-2849Jack Lloyd2016-04-232-0/+138
|
* Avoid undefined operation in bit rotation operations for zero rotate.lloyd2013-07-311-0/+4
| | | | | | | Otherwise we expand to (X << 0) | (X >> 32), and (X >> 32) is an undefined expression, thus allowing the compiler to do some arbitrarily nasty thing to us. Caught by Clang's sanitizer and reported by Jeffery Walton.
* Make the result of version_string a compile time constant string, solloyd2012-09-171-15/+17
| | | | we can find the complete value by running strings on a binary file.
* We were checking the wrong bit for rdrand support. Found using SDE'slloyd2012-05-101-1/+1
| | | | | | | | -ivb_rdrnd_cpuid option to toggle the bit off and on. Fortunately on Intel processors the bit we were actually checking is also enabled by Ivy Bridge. However it is also used on AMD Bulldozer processors to signal half-precision floating point support so we could false positive there.
* Avoid a few maintainer mode flag warnings. Remove -Weffc++ from thelloyd2012-04-201-0/+3
| | | | | list of maintainer mode flags. It produces some very useful warnings, but also a lot of noisy junk that I really don't care about.
* Use LoadLibraryA instead of bare LoadLibrary so things work if used inlloyd2011-12-131-1/+1
| | | | an amalgamation and the app is compiled in Unicode mode.
* GCC doesn't like casting a function pointer to void* without anlloyd2011-12-021-1/+2
| | | | explicit cast.
* Add AltiVec detection on OpenBSD, contributed by Brad Smith in PR 162lloyd2011-11-281-1/+15
|
* Call cpuid via inline asm on x86-64, so we can use it with Clang (nolloyd2011-11-181-2/+16
| | | | cpuid intrinsic) and older GCC (no cpuid.h before 4.3)
* Add AltiVec detection for POWER7 processorslloyd2011-11-021-0/+2
|
* Tick to 1.10.1 unreleased.lloyd2011-06-301-0/+1
| | | | | Try to detect the mtn revision (by shelling out to mtn automate), and including it in build.h as BOTAN_VERSION_VC_REVISION.
* Fix -Wshadow warninglloyd2011-06-221-2/+2
|
* Detect (though not using) the CPUID bit for the RDRAND instructionlloyd2011-06-161-1/+8
|
* Split the SIMD implementations into their own modules and choose onelloyd2011-05-245-649/+0
| | | | at config time.
* Fix the problem that prevented the SSE2 IDEA implementation fromlloyd2011-05-121-1/+0
| | | | | | | | | | working correctly under Clang - the technique for emulating unsigned compare relied on signed overflow. The new method does not, and works under GCC, ICC, and Clang. Even better, the compare takes only 2 instructions instead of 4. Prevent using any of the asm implementations under Clang on x86-32. All of them crash under Clang 2.9, unclear why.
* Rename all references of ia32 to x86-32 and amd64 to x86-64.lloyd2011-04-226-13/+13
| | | | | | Back the reported version from 1.10.0 to 1.9.17 for the time being. Still on the fence if this will be 1.10.0 or another release candidate instead.
* Maintainer mode warning cleanups, mostly for C style casts which Illoyd2011-04-183-6/+6
| | | | added to the flags here.
* My workaround for gcc pr 44174 caused cpuid support to be silentlylloyd2011-04-181-2/+8
| | | | | | | disabled under gcc. Hide asm labels in the x86-32 code; some did not begin with a .L so they were being exported.
* Fix location of online docs in readmelloyd2011-04-151-18/+0
| | | | | | | | | | Some fixes for the Windows installer config Remove the SIMD rotate overloads; VC 2010 does not like passing a __m128i by value, which is required to match the template overload for the regular rotates. Could change it to a const reference, but I would worry this would inhibit compiler optimizations. Only used in one place (Noekeon), so just use the long expressions there.
* One minor fix for QNX 6.4.1 (Python identifies CPU as 'x86pc'), andlloyd2011-04-151-2/+3
| | | | | add support for features that it has that apparently the last version I tested did not, including dynamic loading.
* Call GCC's __get_cpuid macro from a function marked noinline to worklloyd2011-04-061-2/+9
| | | | | around a bug in GCC 4.[456] that prevents compilation when using optimization and PIC on 32-bit x86.
* Prefer GCC builtin except on ARM, add comment as to whylloyd2011-03-141-6/+11
|
* Assume ARMs are little-endian by default; big-endian ARM seems to be a rarity.lloyd2011-03-141-20/+32
| | | | | | GCC 4.3 on ARM converts __builtin_bswap32 into a jump into libgcc rather than 4 simple instructions, so write it out using inline asm instead.
* Remove inclusions of unused headers.lloyd2011-02-101-1/+0
| | | | Avoid using auto_ptr in the CVC headers.
* Another castlloyd2011-02-091-1/+1
|
* Some casts to avoid VC warningslloyd2011-02-091-3/+3
|
* Add a new configure.py option --distribution-info which sets a macrolloyd2011-02-072-10/+25
| | | | | | | | | | | | | | | | | | | | | | | in build.h named BOTAN_DISTRIBUTION_INFO. The default value is 'unspecified'. People packaging botan could set this to another value, for instance 'Gentoo 1.9.13-r3' or 'Debian 1.9.13-1', or 'pristine' to indicate a completely unmodified/stock version. This was suggested by Zooko for Crypto++ in http://sourceforge.net/apps/trac/cryptopp/ticket/11 and seemed like an idea worth stealing. Don't default the version datestmap to the current day if unset, instead set to zero. This allows applications to detect unreleased versions. Document that version_datestamp will return zero for unreleased versions. Change the version_string function to return more information about the current version, including the release date and distribution information. It will now return strings like: Botan 1.9.13 (released 20110207, distribution Gentoo 1.9.13-r3) or for an unreleased version: Botan 1.9.13 (unreleased version, distribution unspecified)
* According to PR 137, cpuid.h doesn't exist with Clang on OS X orlloyd2011-01-211-1/+1
| | | | | | | | FreeBSD. It is not being installed by Clang, so it appears on my machine Clang is actually pulling the header in from GCC's private include directory. Closes PR 137
* Use size_t for shift and rotate values. Also define rotate_left andlloyd2010-12-284-18/+21
| | | | | rotate_right for SIMD types as a template specialization to avoid problems in the amalgamation.
* If the user defines BOTAN_NO_SSE_INTRINSICS, avoid includinglloyd2010-12-222-3/+3
| | | | | | intrinsics headers in header files. This is particularly useful for allowing code that will be compiled by nvcc to include loadstor.h, but might be useful in other situations as well.
* Clang 2.8 also has cpuid.hlloyd2010-11-291-1/+1
|
* Add assert equallloyd2010-11-291-8/+18
|
* Doxygen updates.lloyd2010-11-021-12/+10
| | | | | Remove version of search_map that returns two distinguishing results; only used in one place, and that can be replaced by a call to count()
* Doxygenlloyd2010-11-022-3/+15
|
* Add new top-level algorithm which provides basic functionality: namelloyd2010-11-012-154/+0
| | | | | | | | query, clearing, and cloning. Applies to ciphers, hashes, MACs, and PBKDFs. May extend to KDFs later as well. A single combined hierarchy in particular will make the algo_factory much simpler.
* Remove BufferedComputation::OUTPUT_LENGTHlloyd2010-10-291-13/+2
|
* Prefix vs postfixlloyd2010-10-152-4/+4
|
* More size_tlloyd2010-10-151-24/+24
|
* More size_tlloyd2010-10-132-7/+7
|
* Remove the upto argument to update_belloyd2010-10-131-5/+8
|
* Use output_length() instead of OUTPUT_LENGTH pseudo-propertylloyd2010-10-131-4/+4
|
* Add accessors for block size and output lengthlloyd2010-10-131-0/+5
|
* s/u32bit/size_t/ in utilslloyd2010-10-1311-55/+55
|
* Use size_t for BufferedComputation::add_datalloyd2010-10-122-11/+12
|
* Use size_t in filterslloyd2010-10-121-1/+1
| | | | | This breaks API for anyone creating their own Filter types, but it had to happen eventually.
* Add a simple update_be to BufferedComputation that takes an integerlloyd2010-10-121-0/+10
| | | | | and writes the bytes to the stream in big-endian order. Use it in KDF2, MGF1, and FPE.
* Use size_t in all of math, remove to_u32bitlloyd2010-10-121-0/+1
|
* Drop debug.h, it didn't turn out to be that useful for most things,lloyd2010-10-072-38/+0
| | | | especially now that the standalone hex encoder is around
* Doxygenlloyd2010-10-011-14/+61
|