| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Kind of a vestigial thing from an earlier iteration of the module
design, and never useful to specify anymore since taking all the cpp
files is what you want exactly 100% of the time.
|
|
|
|
|
|
| |
Free, and sometimes useful for debugging from build logs
[ci skip]
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Add configure.py option --with-coverage-info which enables coverage but
does not disable optimizations. Changes the scripts to use
--with-coverage-info --no-optimization which is the same behavior as
--with-coverage except explicit about what is happening.
[ci skip]
|
|
|
|
|
|
| |
Previously ran inside of BuildConfigurationInformation's constructor
[ci skip]
|
|
|
|
| |
somehow missed this in PR #360
|
|\ |
|
| |
| |
| |
| |
| |
| | |
One additional, application-specific curve can be added
at compile time, using the new
configure.py --house-curve=curve.pem,funky311,1.2.3.4,FEFF.
|
|/
|
|
|
| |
Otherwise user is given a compression.h header that seems functional
but does nothing at all because make_compressor never returns anything.
|
|
|
|
|
|
|
|
|
|
|
| |
Uses -Os for GCC/Clang/ICC, /O1 for MSVC.
Might be used in the future to control compile time features also
(eg using a large precomputed table, vs not). Does not have any
influence on module selection, just informs the build that a smaller
binary is preferable.
[ci skip]
|
|
|
|
|
|
|
|
| |
Previously it made sense for them to be in distinct dirs because
they were standalone. However with #580 that is no longer the case,
so move them to subdirs. Configure knows that anything underneath
a directory has a dependency on the parent dir, so update info.txt
files accordingly to remove explicit dependencies where set.
|
|
|
|
| |
Bakefile is a tool which can be used to create Visual Studio or Xcode project files
|
|
|
|
|
| |
These files are important so make them easy to find for someone
unpacking the tarball for the first time.
|
| |
|
|
|
|
|
| |
When configuring from fuzzer dir, object files would get names
starting with '..'
|
|
|
|
|
|
|
|
|
|
|
| |
Originally from https://github.com/randombit/botan-fuzzers but
merging to the main tree (without the corpus files, since I suspect
the corpus files in that repo are not useful anymore)
Adds --unsafe-fuzzer-mode which can be used to selectively disable
cryptographic checks which get in the way of fuzzer testing. This
setting is reflected in build.h and in the version string. Right
now it doesn't actually disable anything.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Also emit `#pragma GCC target` in the ISA specific amalgamation files.
This allows compiling without any special compiler flags, at least
with GCC 6.2 and Clang 3.8. The ISA annotations are ignored in MSVC,
which just emits whatever instruction the intrinsic requires.
|
| | |
|
| | |
|
|/ |
|
| |
|
|
|
|
|
|
| |
Fix policy files.
GH #614
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Convert Travis build configuration to a single var instead of 4 tuple.
Makes it much easier to review the builds in the Travis web UI.
Adds sanitizer builds for Clang on both Linux and OS X. Clang is a different
compiler from GCC and its sanitizers may catch things GCC does not.
I have no idea if Apple's Clang has some magic sanitizer sauce stock
LLVM does not, so maybe sanitizer build on OS X can be skipped.
Adds Linux cross compile targets for ARM32, ARM64, PPC64, and MinGW x86
using the cross compiler available in Trusty. All of them build and are
set up to run through qemu/wine. All of the tests currently fail and
so are marked as expected fail in the Travis matrix.
The ARM test runs seem to have thread problems; ARM32 thread creation just fails
with an exception, as if pthreads was disabled. All other tests pass ok for ARM32.
On Aarch64, it looks like there is a hard crash the first time the library tries
creating a thread. Both of these might be due to statically linking the binary?
I have been unable to convince Ubuntu's qemu-ppc64 to execute binaries compiled by
Ubuntu's ppc64 cross compiler. I'm downloading an Ubuntu ISO to try this in a VM.
Running under Wine exposes several issues, both in Wine and Botan. Many functions are
stubs and it appears that entropy collection fails as a result. This triggers a bug
in the FFI tests which causes a crash there.
A pox on time zones; _mkgmtime is a MSVC extension and is not available on MinGW GCC.
Add a last resort call that just uses the localzone variant instead.
Adds valgrind target, remove a bogus poison in pubkey.cpp (it was effectively
asserting that all of RSA was const time which is sadly not true at all).
Moves -Wshadow to maintainer mode for GCC - GCC 4.8 has a noisy variant of -Wshadow
which warns if a parameter masks a function name, but this comes up all the time
in constructors. Later GCCs no longer warn about this (even with -Wshadow), so the
warnings are never fixed, but they cause noise in CI output and hide interesting
warnings like
warning: vec_lvsl is deprecated for little endian; use assignment for unaligned loads and stores [-Wdeprecated]
__vector unsigned char perm = vec_lvsl(0, static_cast<u32bit*>(nullptr));
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Fixes GH #432 : Previously the Botan CLI PDB file has overwritten the Botan lib PDB file.
Furthermore the output filename of the lib is changed to botand in debug mode.
|
|/ |
|
|
|
|
| |
Make an invalid config (conflicting header types) a hard error, and stop the build.
|
|
|
|
|
|
|
| |
These headers are copied/linked into build_dir/include/external
This has the advantage that external includes can be taken as they are, they haven't to be modified.
Fixes amalgamation build with enabled pkcs#11 module
|
| |
|
|
|
|
|
|
|
| |
Avoids some cut and paste, also removes the need for special logic in
configure.py for handling mp module specially.
Merge SIMD classes into a single type SIMD_4x32
|
| |
|
|\ |
|
| | |
|
|\ \ |
|
| | |
| | |
| | |
| | | |
The assembler shipping with current OpenBSD (5.9) does not support avx2
|
| | |
| | |
| | |
| | | |
The binary name for a sufficiently new GCC is 'eg++' on OpenBSD
|
|\ \ \
| | |/
| |/| |
|
| | | |
|
| |/
|/|
| |
| | |
FreeBSD 10 comes with clang installed by default, and no gcc
|
|/
|
|
|
|
| |
command. This broke Sun Studio among others. Reported by Jeffrey Walton.
[ci skip]
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
|
| |
--with-debug-info and --no-optimizations remain to toggle each independently.
Closes GH #433
|