aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/utils/bit_ops.h
Commit message (Collapse)AuthorAgeFilesLines
* Make a few simple functions constexprJack Lloyd2018-10-011-1/+1
| | | | This is primarily just to verify that C++11 constexpr works.
* Use GCC builtins for clz operationJack Lloyd2018-04-151-1/+26
|
* Skip ARM32 specific byteswap code, enable MSVC byteswap intrinsicsJack Lloyd2017-10-241-1/+1
| | | | | | | | | | While older versions of GCC did very badly with __builtin_bswap on ARM, I checked GCC 4.8 and it behaves correctly, emitting either rev or else the same optimal sequence as was used in the inline asm (depending on if ARMv7 is enabled or not.) Enable MSVC byteswap intrinsics, which (hopefully) work on all platforms. Drop the x86-32 specific asm for byteswap.
* OCB optimizationsJack Lloyd2017-10-121-0/+11
| | | | From ~5 cbp to ~2.5 cbp on Skylake
* Change header guard format to BOTAN_FOO_H_Jack Lloyd2017-09-201-2/+2
| | | | | | ISO C++ reserves names with double underscores in them Closes #512
* Convert to using standard uintN_t integer typesJack Lloyd2016-12-181-1/+1
| | | | | | 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.
* Ensure all files have copyright and license info.lloyd2015-01-101-1/+1
| | | | | Update license header line to specify the terms and refer to the file, neither of which it included before.
* Add an implementation of McEliece encryption based on HyMESfstrenzke2014-11-261-0/+22
| | | | | | | (https://www.rocq.inria.fr/secret/CBCrypto/index.php?pg=hymes). The original version is LGPL but cryptsource GmbH has secured permission to release it under a BSD license. Also includes the Overbeck CCA2 message encoding scheme.
* Move lib into srclloyd2014-01-101-0/+103