| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Add support for Intel RdSeed instruction
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Defaults should be fine for everyone but it makes the values more transparent
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| | |
Support for 64 bit ARM
|
| |
| |
| |
| | |
See also -march in https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
| |
deriving it by squaring the previous value.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
Found by JOM on MinGW.
|
|
|
|
| |
Some tweaks for point multiplication using fixed windows.
|
|
|
|
| |
Fixes #241
|
|
|
|
| |
Fixes #250
|
|
|
|
| |
Closes #202
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
/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
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It is added to all OS that use getsid currently, so it must be available
there.
|
|
|
|
| |
Closes #199
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
| |
value set in header template. GH #107
|