aboutsummaryrefslogtreecommitdiffstats
path: root/src/build-data
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Add so_link_command for clang debug on darwin and defaultSimon Warta2015-08-141-3/+5
| | | | Fixes #250
* Add mktime fallback for non-POSIX timegm()Simon Warta2015-07-278-0/+8
| | | | Closes #202
* Rename so_link_flags to so_link_commandsSimon Warta2015-07-219-24/+24
|
* Add binary_link_command; Use compiler configs to set RPATH on LinuxSimon Warta2015-07-213-0/+19
|
* Update Windows linkingSimon Warta2015-07-211-6/+13
|
* Add debug linker for GCCSimon Warta2015-07-211-1/+2
|
* Merge compile_option into CXX_FLAGSSimon Warta2015-07-219-24/+18
|
* msvc fixesSimon Warta2015-07-211-5/+13
|
* Have a $(LINKER) variableSimon Warta2015-07-212-1/+4
|
* Rename template variable cc -> cxxSimon Warta2015-07-212-3/+2
|
* Use -O0 (no optimization) in GCC debug compile flagsSimon Warta2015-07-211-2/+2
|
* Adjust MSVC compile flagsSimon Warta2015-07-211-2/+2
| | | | | | | | | | /FS is needed for parallel builds /bigobj is needed for amalgamation build. Remove explicit setting from appveyor /DEBUG is a parameter, not a precompiler constant Conflicts: src/build-data/cc/msvc.txt
* Make release/debug versions for: compile_flags, lib_opt_flags and app_opt_flagsSimon Warta2015-07-219-32/+44
| | | | | | This commit aims to preserve all settings. In some cases it will drop optimization flags and fall back to compiler's defaults in the new debug mode.
* Add Android OSDaniel Seither2015-07-171-0/+10
| | | | | | The android.txt is a copy of linux.txt minus the getsid feature (Android's libc, Bionic, doesn't support it) and the alias linux-gnu. It is supported anywhere where linux is supported.
* Add OS feature getsidDaniel Seither2015-07-1711-0/+11
| | | | | It is added to all OS that use getsid currently, so it must be available there.
* Add MSVC stl filesystem implementationSimon Warta2015-07-161-0/+1
| | | | Closes #199
* Remove dead code (Boost.Python makefile, unused configure.py functions)Jack Lloyd2015-07-111-26/+0
|
* GCC 4.8 doesn't have UbSan, remove for TravisJack Lloyd2015-07-051-1/+2
|
* Make sanitizer a build mode for easy use by developers.Jack Lloyd2015-07-051-0/+1
|
* Tweak formatting of readmeJack Lloyd2015-07-031-1/+1
|
* Simplify the website and documentation layout.Jack Lloyd2015-07-032-21/+4
| | | | | | | | | | | | | | Merge the website index, download page, algo page into the readme file so all the important information is in one place. The readme.rst is now also used as the website landing page. Remove the website target on the makefile, replaced by website.sh, since I'm the only one who ever needs to run this. Fix various ReST formatting bugs in news.rst and the manual Remove the old build_log which hasn't been touched in years and refers entirely to compilers which we don't support anymore.
* Combine all release notes into a single file, just easier to read.Jack Lloyd2015-07-021-1/+0
| | | | | | | | | Which when you think about it is the main criteria on which to judge release notes, right? No text changes beyond removing Sphinx interdoc links and the :pr: extlinks to Bugzilla. Remove combine_relnotes.py as this was its last run. The setup for the website is very broken as a result of this change, that comes next.
* Remove compiler settings from compilers that don't support C++11Simon Warta2015-06-282-52/+0
|
* Use install_name_tool to change location of botan lib on OSXSimon Warta2015-06-223-0/+7
|
* Set RPATH to $ORIGIN for ./botan and ./botan-testSimon Warta2015-06-223-5/+7
| | | | | | | | This makes setting LD_LIBRARY_PATH obsolete when Botan lib and botan /botan-test binary are in the same directory. This behavior is default on Windows. LD_LIBRARY_PATH can still be used to override the RPATH.
* Fix coverage make targetSimon Warta2015-06-212-5/+9
|
* Prefix gmake includesSimon Warta2015-06-204-4/+3
|
* Update build system:simon2015-06-184-34/+37
| | | | | | | | | | | | | - Remove unused make variables VERSION, BRANCH - Move first make all target below all variable definitions - Move "Executable targets" as well as "LIBNAME" from header.in into gmake.in and nmake.in. Those variables differ more than they share and are getting too abstract. - Use new variable names: LIB_BASENAME, LIB_FILENAME. Drop LIBNAME and BOTAN_LIB - Write libs to out_dir now, which enables out-of-tree builds GH #110, replaces #70 #106 #107 fixes #85
* Revert LIBNAME change. GH #107lloyd2015-06-161-0/+2
|
* Remove LIBNAME setting from nmake template, should be using versionedgit2015-06-111-2/+0
| | | | value set in header template. GH #107