aboutsummaryrefslogtreecommitdiffstats
path: root/src/build-data
Commit message (Collapse)AuthorAgeFilesLines
* Turn MSVC warnings to /W4 and enable C4267Jack Lloyd2016-05-062-7/+1
| | | | | | Move disabling C4250 and C4251 to cmd line instead of header pragma. This means these warnings will show up in application code. But disabling warnings inside a library header is probably not good form.
* Add ECGDSARené Korthaus2016-04-191-0/+1
|
* Fixed shared library behaviour on Darwin/OS X.Alastair Houghton2016-04-073-2/+8
|
* Add proc_walk, egd, Darwin entropy sources to policy.Jack Lloyd2016-03-062-9/+11
| | | | Prohibit unix_procs in BSI policy. See discussion in GH #446
* Allow EMSA1 in BSI policyJack Lloyd2016-03-061-1/+1
|
* Merge GH #446 add --module-policy optionJack Lloyd2016-03-062-0/+276
|\
| * Add option --module-policyJack Lloyd2016-03-062-0/+276
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A module policy is a file specifying three types of modules: ones which are required, ones which are prohibited, and ones which should be used if otherwise available (this is mostly for platform specific modules). Finally there are whatever modules which exist in the library of which the policy makes no mention. These will be included if an explicit dependency of some other module pulls them in (so there is no reason to mention base, utils, ... in the file) but skipped otherwise. For example policy 'sane' does not mention 'utils' or 'twofish' either way. Since utils is a dependency of other modules which are included, but Twofish does not. However unlike an explicitly prohibited module, not mentioned can still be requested as part of the build (here with --enable-module=twofish) Also fixes some test bugs noticed by compiling in different build configs. DLIES test didn't check that the KDF and MAC existed. Adds a typedef for MessageAuthenticationCode because typing it twice in a single line in the DLIES test made me think it's way too long. :) Also fix some fuzzer build problems. Due to a copy and paste bug the PKCS certificate (it was not). Inspired by GH #439
* | Merge GH #373 RDRAND/RDSEED logic changesJack Lloyd2016-03-061-0/+16
|\ \ | |/ |/| | | The Intel RNG may fail if heavily contended, so retry as needed.
| * review changesDaniel Neus2015-12-211-0/+3
| | | | | | | | | | | | | | | | * no spaces around if(), for() etc * snake_case for plain functions * anonymous namespace function instead private and static * don't propagate failed poll to the calling application * RdRand retires configurable in build.h
| * RdRand and RdSeed logic changesDaniel Neus2015-12-201-0/+13
| | | | | | | | | | * Make it configurable how often RdRand and RdSeed is polled * Make it configurable how many RdSeed retries are executed
* | Merge GH #427 Fix remaining Wshadow warningsJack Lloyd2016-02-202-2/+2
|\ \
| * | Fix remaining Wshadow warnings and enable on gcc and clangRené Korthaus2016-02-182-2/+2
| | |
* | | enable noexcept on VS 2015Daniel Neus2016-02-191-1/+1
|/ /
* | Add --with-valgrindJack Lloyd2016-02-131-6/+0
| |
* | Add missing overrides and fix -Wpedantic 'extra ;' warningsJack Lloyd2016-01-171-1/+1
| | | | | | | | | | | | | | | | | | | | Remove -Wsuggest-attribute=noreturn from maintainer mode flags as it seems like outside of the assertion failure macro any other suggestion would always be a false positive (an unimplemented function or the like). Or at least, if such a function needing noreturn to assist with static analysis is added in the future it will be obvious, by virtue of the static analyzer warnings which occur due to the missing noreturn preventing the analyzer from understanding code flow.
* | Enable -Wpedantic on gcc and clangRené Korthaus2016-01-132-2/+2
| |
* | Get rid of "extra ';'" warnings and force semicolon after macrosSimon Warta2016-01-111-0/+4
| |
* | Merge remote-tracking branch 'remotes/github/master' into noreturnDaniel Neus2016-01-091-2/+2
|\ \ | | | | | | | | | | | | # Conflicts: # src/build-data/cc/gcc.txt
| * | move -Wsuggest-override to maintainer_warning_flagsDaniel Neus2016-01-081-2/+2
| | | | | | | | | | | | to not break compatibility with older gcc versions (available in gcc 5.1)
| * | add missing overridesDaniel Neus2016-01-081-1/+1
| | | | | | | | | | | | found by gcc with -Wsuggest-override
* | | fix BOTAN_NORETURN macroDaniel Neus2016-01-081-1/+1
| | |
* | | add BOTAN_NORETURN macro and mark those functions that do not return with itDaniel Neus2016-01-082-1/+17
|/ /
* | Valgrind is not supposed to be enabled in the default buildJack Lloyd2016-01-031-1/+1
| |
* | Use valgrind's memcheck API for checking const time annotationsJack Lloyd2016-01-031-3/+3
| | | | | | | | | | | | | | Has the same effect as using ctgrind, but without requiring a custom-compiled valgrind binary. Add ct checking annotations to the SSSE3 AES code.
* | Use memcpy instead of misaligned pointer casts for reading words.Jack Lloyd2015-12-311-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It works on x86, but C says it is undefined and it makes UBSan unhappy. Happily, this memcpy approach probably also works fine under processors which previously used the byte-at-a-time approach such as ARM. But for right now using memcpy here is still gated under the processor alignment flags. In my tests recent GCC and Clang seemed to produce basically identical code for either approach when using -O3; I imagine most compilers these days are very good at analyzing/inlining/unrolling memcpys. Also remove the manually unrolled versions of xor_buf, which caused problems with GCC and -O3 due to it vectorizing the loads into (aligned) SSE2 loads, which would fail when a misaligned pointer was passed. Which always seemed kind of bogus to me, but I guess that's what undefined behavior is for. Enable -O3 for GCC. With this change the test suite is clean under GCC ASan+UBSan and Clang ASan+UBSan, with the exception of one failure due to a bug in libstdc++ (GCC bug 60734) when compiled by Clang.
* | Add -Wnon-virtual-dtor to GCC buildJack Lloyd2015-12-261-1/+1
| | | | | | | | GH #382
* | Merge pull request #378 from neusdan/warning_fixesJack Lloyd2015-12-261-1/+1
|\ \ | | | | | | Some trivial compiler and PVS-Studio warning fixes
| * | some trivial compiler/PVS-Studio warning fixesDaniel Neus2015-12-221-1/+1
| |/
* / Fix a few clang warnings. Set clang sanitizer flagsJack Lloyd2015-12-241-0/+1
|/
* Move estimate of RDRAND/RDSEED entropy to build.hJack Lloyd2015-12-191-0/+13
| | | | GH #370 for background
* Merge pull request #370 from neusdan/rdseedJack Lloyd2015-12-196-1/+6
|\ | | | | Add support for Intel RdSeed instruction
| * add support for Intel RdSeedDaniel Neus2015-12-186-1/+6
| |
* | CLI rewriteJack Lloyd2015-12-195-0/+5
|/ | | | | | | | | | | | | | | | | | The command line tools' origin as a collection of examples and test programs glued together led to some unfortunate problems; lots of hardcoded values, missing parameters, and obsolete crypto. Adds a small library for writing command line programs of the sort needed here (cli.h), which cuts the length of many of the commands in half and makes commands more pleasant to write and extend. Generalizes a lot of the commands also, eg previously only signing/verification with DSA/SHA-1 was included! Removes the fuzzer entry point since that's fairly useless outside of an instrumented build. Removes the in-library API for benchmarking.
* Rename cmd/app -> cliSimon Warta2015-12-093-25/+25
|
* Add OS utility headerJack Lloyd2015-12-051-0/+6
| | | | | | | | Provide abstractions for the locking allocator (allocate and free locked pages) to decouple it from the platform dependent code. Should make it easy to write a Windows version using VirtualAlloc+VirtualLock. Exposes max mlock limit as a build.h toggle
* Avoid ever returning 0 from CPUID::cache_line_sizeJack Lloyd2015-12-021-0/+11
| | | | | | | | Take the value from build.h if we have no way of getting it dynamically. Fixes an infinite loop in AES on non-x86 introduced in ebf2164a, as otherwise it does for(size_t i = 0; i != ...; i += 0) {} while iterating over the TE tables.
* Push the hardcoded entropy estimates up to build.hJack Lloyd2015-11-281-0/+23
| | | | Defaults should be fine for everyone but it makes the values more transparent
* New reseed_with_sources call on RNGsJack Lloyd2015-11-2412-13/+35
| | | | | | | | | | | | | Provides an easier way for an application to configure a list of entropy sources they'd like to use, or add a custom entropy source to their seeding. Exposes some toggles for the global/default entropy sources to build.h Adds basic entropy tests which runs the polls and does sanity checking on the results, including compression tests if available. These are less useful for the CSPRNG outputs but a good check for the ones producing plain ASCII like the /proc reader.
* Remove --build-mode and add individual toggles for optimization, debug,Jack Lloyd2015-10-262-2/+2
| | | | | | sanitizers and coverage as all 4 are usefully set independently. Use GCC 4.9 on CircleCI as it seems to be supported. Add ASan + UBSan test.
* Remove the strange conjoining of debug and optimization flags.Jack Lloyd2015-10-2611-50/+44
| | | | | | | | | | | | | | | | | | | Previously a build had optimizations disabled completely when debug info was emitted. But there are many reasons to use optimized builds with debug symbols (running under valgrind, against afl, with Asan/Ubsan, in prod, etc). And personally I find even debugging at -O2 or -O3 is fine most of the time and worth it for the speed. Use the (now documented!) --no-optimizations flag if no optimization is desired while debugging. This also removes the distinction between library and application compile flags; there is a single optimization level that is probably good enough for everything. On Win32 it removes definding _CONSOLE for the application. This seems to be some mythical value that may have been required at some point, but is not documented anywhere I can find. Who knows what VC thinks, hoping I don't have to add this back. It also drops defining `EBUG` which is what happens when you tell cl.exe to '/DEBUG'. LOL.
* Make PKCS #1 and OAEP decoding constant time to avoid oracle attacksJack Lloyd2015-10-161-0/+6
| | | | | | | | via timing channels. Add annotations for checking constant-time code using ctgrind to PKCS #1 and OAEP, as well as IDEA and Curve25519 which were already written as constant time code.
* Merge pull request #298 from tiwoc/arm64Simon Warta2015-10-163-2/+15
|\ | | | | Support for 64 bit ARM
| * Adjust gcc.txt to arm32 and arm64 archsDaniel Seither2015-10-151-1/+2
| | | | | | | | See also -march in https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
| * Initial support for 64 bit ARMDaniel Seither2015-10-132-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for 64 bit ARM cores as used in many high-end phones such as all iPhones beginning with the 5s. While these newer phones still run 32 bit ARM code, Apple doesn't allow apps to be submitted to the app store if they don't provide a 64 bit build. This commit adds a new arm64 arch and renames arm to arm32 to stay consistent with the other architectures. The name arm can still be used for configuring because it has been added as an alias for arm32. Additionally, the one piece of ARM inline assembly that can be found in Botan doesn't work on 64 bit ARM, so I use the solution that has been proposed in #180: Use __builtin_bswap32 instead of inline assembly.
* | Periodically reinitialize the blinding sequence instead of alwaysJack Lloyd2015-10-151-2/+13
|/ | | | deriving it by squaring the previous value.
* build system: Add framework support for OS X and iOSDaniel Seither2015-09-251-0/+1
| | | | | | | On Darwin platforms, there are frameworks that can bundle libraries and header files in a standardized directory structure. We need to support linking to them because most of the OS X or iOS-specific APIs are provided as frameworks.
* Prevent users from building static non-amalgamations on MinGW and CygwinSimon Warta2015-09-092-6/+2
| | | | | | | | * Rename variable to avoid confusion of build_shared and options.build_shared_lib * Don't automatically change shared -> static. Force user to do that Fixes #211
* .PHONY must be a rule, not a variableSimon Warta2015-09-091-1/+1
| | | | Found by JOM on MinGW.
* Move GF(p) side channel countermeasure toggles to build.hJack Lloyd2015-08-281-0/+16
| | | | Some tweaks for point multiplication using fixed windows.
* Add soname_patternSimon Warta2015-08-2414-26/+38
| | | | Fixes #241