| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The problem with asm rol/ror is the compiler can't schedule effectively.
But we only need asm in the case when the rotation is variable, so distinguish
the two cases. If a compile time constant, then static_assert that the rotation
is in the correct range and do the straightforward expression knowing the compiler
will probably do the right thing. Otherwise do a tricky expression that both
GCC and Clang happen to have recognize. Avoid the reduction case; instead
require that the rotation be in range (this reverts 2b37c13dcf).
Remove the asm rotations (making this branch illnamed), because now both Clang
and GCC will create a roll without any extra help.
Remove the reduction/mask by the word size for the variable case. The compiler
can't optimize that it out well, but it's easy to ensure it is valid in the callers,
especially now that the variable input cases are easy to grep for.
|
|
|
|
|
|
| |
ISO C++ reserves names with double underscores in them
Closes #512
|
|
|
|
|
| |
Defined in build.h, all equal to BOTAN_DLL so ties into existing
system for exporting symbols.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While using marketing names like 2013, 2015 etc. is more convenient at
first sight, it requires keeping a table about all supported compiler
versions, as there is no formular to calculate between the
representations.
Keeping a list of compilers leads to the following issue: if one version
of Botan is released in 2017, requiring MSVS 2015 for one module, this
source can be compiled using MSVS 2015 and 2017 but not a future version
like 2019.
Also preview/development versions of MSVC that may use an intermediate
version number cannot be handled with the marketing name table because
they may be unknown to the general public.
|
| |
|
|
|
|
|
|
|
| |
function declaration is already hidden, fix some param names in doxygen
comments, fixes #1067
This work was sponsored by Ribose Inc (@riboseinc).
|
|\ |
|
| |
| |
| |
| | |
See GH #1037
|
| |
| |
| |
| |
| |
| |
| | |
Works everywhere but Apple Clang. Could handle this with a hack
to configure but running ARMv8 in 32-bit mode is rare and suboptimal,
and it would be better to deal with this using compile-time feature
detection.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Fix for new define syntax, remove old style casts.
Add some randomly generated longer SHA-256 vectors, previously had
precisely zero multiblock tests.
|
|/
|
|
|
|
| |
Based on patch from Jeffrey Walton in GH #840
Only tested in qemu so far.
|
| |
|
|
|
|
| |
Based on GH #807 and #808
|
| |
|
|
|
|
|
|
| |
Renames a couple of functions for somewhat better name consistency,
eg make_u32bit becomes make_uint32. The old typedefs remain for now
since probably lots of application code uses them.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
Various algorithms had an optimized implementation (for SSE2, AVX2, etc)
which was offered alongside the 'base' implementation. This is
admittedly very useful for testing, but it breaks user expectations in
bad ways. See GH #477 for background.
Now encrypting with `AES_128` (say) just runs whatever implementation
is best on the current processor/build.
|
|
|
|
| |
explicit.
|
| |
|
|
|
|
| |
Only user-visible change is the removal of get_byte.h
|
|
|
|
|
|
|
|
|
|
|
| |
The support problems from having static libraries not work in the
obvious way will be endless trouble. Instead have each set of
registrations tag along in a source file for the basic type, at the
cost of some extra ifdefs. On shared libs this is harmless -
everything is going into the shared object anyway. With static libs,
this means pulling in a single block cipher pulls in the text of all
the them. But that's still strictly better than the amalgamation
(which is really pulling in everything), and it works (unlike status quo).
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Update license header line to specify the terms and refer to the file,
neither of which it included before.
|
|
|
|
|
| |
Define some new functions for copying out arrays of words and use them
across hashes.
|
|
|