| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Refactor areas where data was being shared
|
|
|
|
| |
This is sometimes useful when debugging
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid throwing base Botan::Exception type, as it is difficult to
determine what the error is in that case.
Add Exception::error_code and Exception::error_type which allows
(for error code) more information about the error and (for error type)
allows knowing the error type without requiring a sequence of catches.
See GH #1742
|
|
|
|
|
|
| |
The code was using the 1.0 API incorrectly and causing a leak.
https://github.com/riboseinc/rnp/issues/757
|
|
|
|
| |
It used to do something, then I broke it.
|
|
|
|
|
|
|
|
| |
- Adds macros to check if botan was compiled with a certain sanitizers.
- Automatically excludes the tests that are intended to provoke undefined
behaviour from the test bench, when botan is compiled with UBSAN.
- Changes option `--avoid-undefined` to `--no-avoid-undefined` so the
failing tests can be explicitly activated when needed.
|
| |
|
|
|
|
| |
GH #1518
|
|
|
|
|
| |
Calls std::abort the first time a test fails. Not for general
consumption but sometimes very useful when tracking down a tricky bug.
|
|
|
|
| |
[ci skip]
|
|
|
|
| |
Allows cleaning up header includes, also somewhat smaller binaries.
|
| |
|
|
|
|
| |
It makes static analyzers mad
|
| |
|
|
|
|
| |
[ci skip]
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This allows all tests to run even if no RNG type enabled in the build
|
| |
|
|
|
|
|
|
| |
Call ERR_load_crypto_strings() during test initialization if the
openssl provider is also tested. This gives human readable error
messages.
|
|
|
|
|
|
|
|
| |
Currently botan runs the tests for all crypto providers it can find.
Add a --provider option for botan-test to specify exactly one
provider. This allows to see which parts of a specific implementation
have been tested. Pass down the given provider to a specific test
class.
|
|\ |
|
| |
| |
| |
| |
| | |
If botan-test is invoked with an invalid test name, fail with a
usage error. This is more obvious than not running the test.
|
|/
|
|
|
|
| |
To make it easy to repeat classes of tests, print the name of the
test suite before starting it. This name can be used on the
botan-test command line. If a test hangs, it is also obvious which.
|
|
|
|
| |
Just runs the specified test several times, or until first failure.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Based on build output sent by @noloader.
If RLIMIT_MEMLOCK is not defined, assume regular user is not able to
call mlock. This probably also affected Clang/GCC on Solaris.
Work around resolution issue in SIMD_4x32 where it finds ambiguity
between arg taking uint32_t and __m128i. This is probably some
artifact of how SunCC represents vector types, and seems highly bogus
in general but is easy to work around here. Change constructor taking
a single value to instead be `SIMD_4x32::splat` function. The SIMD
class is internal, so no API implications.
Fix various warnings about lambda functions that were missing return
types and which were not a single return statement. AIUI C++11 doesn't
guarantee that lambda return type will be deduced in that situation,
though in practice every compiler including SunCC seems to handle it.
Disable AVX2 usage, since SunCC's intrinsics seem to be broken - its
_mm_loadu_si256 takes non-const pointer.
Rename a few variables in the tests to avoid shadowed var warnings.
|
|
|
|
| |
Instead just let the individual tests that need the RNG fail.
|
|
|
|
|
|
| |
Previously longer tests were hidden behind higher 'soak levels'
but these arbitrary cutoffs are confusing compared to a simple
short tests/long tests split.
|
|
|
|
| |
Tests touching network are gated by --run-online-tests flag.
|
|
|
|
|
|
|
| |
SoftHSMv1 included in 14.04 is too old and many tests fail,
so grabs prebuilt SoftHSMv2 binaries from www.randombit.net.
This can change to use the packaged SoftHSM in 16.04, whenever
Travis makes that available.
|
|
|
|
| |
Document that create_*_op is public but not for public consumption.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change reseed interval logic to count calls to `randomize` rather than
bytes, to match SP 800-90A
Changes RNG reseeding API: there is no implicit reference to the
global entropy sources within the RNGs anymore. The entropy sources
must be supplied with the API call. Adds support for reseding directly
from another RNG (such as a system or hardware RNG).
Stateful_RNG keeps optional references to both an RNG and a set of
entropy sources. During a reseed, both sources are used if set.
These can be provided to HMAC_DRBG constructor.
For HMAC_DRBG, SP800-90A requires we output no more than 2**16 bytes
per DRBG request. We treat requests longer than that as if the caller
had instead made several sequential maximum-length requests. This
means it is possible for one or more reseeds to trigger even in the
course of generating a single (long) output (generate a 256-bit key
and use ChaCha or HKDF if this is a problem).
Adds RNG::randomize_with_ts_input which takes timestamps and uses them
as the additional_data DRBG field. Stateful_RNG overrides this to also
include the process ID and the reseed counter. AutoSeeded_RNG's
`randomize` uses this.
Officially deprecates RNG::make_rng and the Serialized_RNG construtor
which creates an AutoSeeded_RNG. With these removed, it would be
possible to perform a build with no AutoSeeded_RNG/HMAC_DRBG at all
(eg, for applications which only use the system RNG).
Tests courtesy @cordney in GH PRs #598 and #600
|
|
|
|
|
|
|
|
| |
Add support and tests for additional_data param to HMAC_DRBG
Add Stateful_RNG class which has fork detection and periodic reseeding.
AutoSeeded_RNG passes the current pid and time as additional_data
|
| |
|
|
|
|
| |
Avoids various static init and destruction hassles.
|
| |
|
|
|
|
|
|
| |
Improve diagnostics when an exception escapes a test
GH #369
|
|
|
|
|
|
|
| |
Understand using '-' on the command line to mean stdin
Fix last few unit tests that wanted to write to the filesystem; removes
outdata directory.
|
|
|
|
|
|
| |
Also fix KDF tests which failed on missing algo
GH #367
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
As the alternatives are unfortunate for applications trying to catch
all library errors, and it seems deriving from std::runtime_error
causes problems with MSVC DLLs (GH #340)
Effectively reverts 2837e915d82e43
|