| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Prefer using wrappers in mem_utils for this.
Current exception is where memcpy is being used to convert between
two different types, since copy_mem requires input and output
pointers have the same type. There should be a new function to
handle conversion-via-memcpy operation.
|
| |
|
| |
|
|
|
|
| |
Typically not a bottleneck but this shows up in XMSS profiling
|
|
|
|
|
| |
Currently just a copy of the baseline compression function, but
compiled with BMI2 flags. On Skylake improves performance by about 40%.
|
| |
|
|
|
|
| |
GH #1477
|
|
|
|
| |
Noticable speedup for SHAKE esp with longer output lengths
|
| |
|
| |
|
|
|
|
| |
Put all the statics at beginning followed by member functions.
|
|
|
|
| |
Inspired by #1433
|
| |
|
| |
|
|
|
|
| |
Lack of these broke single file amalgamation (GH #1386)
|
|
|
|
|
| |
Was fixed in 2017 SP1. Same bug hit Crypto++ -
https://gihub.com/weidai11/cryptopp/issues/527
|
|
|
|
|
|
| |
This breaks how we determine the ISA flags for amalgamation files.
The code for doing that is kind of a hack but I don't want to mess
with it right now, easier to just rename the ISA internally.
|
|
|
|
| |
Simplifies macro generation
|
|
|
|
| |
These conflict with name of temp variables and MSVC gets noisy.
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Algorithm uses 4 tables of precalculated CRC24 values, thanks to which
it can process in parallel 32 bits of data. This tric doubles performance
Further improvements are possible.
Results - (tested with RNP) processing 1GB armor data
```
OLD: rnp --enarmor=msg /tmp/1gb.rnd --output 4.48s user 0.89s system 98% cpu 5.429 total
NEW: rnp --enarmor=msg /tmp/1gb.rnd --output 2.38s user 0.86s system 79% cpu 4.089 total
OLD: rnp --dearmor out.xxx --output out.d 5.58s user 0.65s system 98% cpu 6.338 total
NEW: rnp --dearmor out.xxx --output out.d 3.28s user 0.84s system 96% cpu 4.275 total
```
|
|/
|
|
| |
Needed for the create calls
|
| |
|
| |
|
|
|
|
|
| |
Nothing major but does improve perf for large buffers from
910 MB/s to 970 MB/s on Skylake.
|
| |
|
|
|
|
| |
Reduces stack usage and a bit faster
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\ |
|
| | |
|
|/
|
|
|
| |
The class itself can't be final but we can final the overrides
from HashFunction, which helps the compiler devirtualize.
|
|
|
|
| |
Sonar
|
|
|
|
|
|
|
| |
Generally speaking reinterpret_cast is sketchy stuff. But the
special case of char*/uint8_t* is both common and safe. By
isolating those, the remaining (likely sketchy) cases are easier
to grep for.
|
|
|
|
|
|
| |
Mostly residue from the old system of splitting impls among subclasses
Found with Sonar
|
| |
|
| |
|
|
|
|
|
| |
Done by a perl script which converted all classes to final, followed
by selective reversion where it caused compilation failures.
|
| |
|
|
|
|
| |
Some help from include-what-you-use
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Improves CBC and OCB performance with AES-NI quite noticably
|
|
|
|
| |
[ci skip]
|
| |
|
|
|
|
| |
Based on VC2017 output
|
|
|
|
| |
Sonar find
|