Commit Graph

94 Commits

Author SHA1 Message Date
f6056153e3 rename root namespace from util to cruft
This places, at long last, the core library code into the same namespace
as the extended library code.
2018-08-05 14:42:02 +10:00
803acc9a87 relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
82b1c9fa40 hash/siphash: set default compression/finalisation params 2018-06-01 13:25:21 +10:00
497d3ca970 build: update for gcc-8.1 warnings 2018-05-03 18:32:08 +10:00
1c150296f9 hash/siphash: qualify local helper functions as static 2018-05-03 17:32:45 +10:00
6f51b82f65 siphash: add initial implementation 2018-01-23 18:57:04 +11:00
dd9a4a4646 xxhash: update copyright date 2018-01-23 18:57:04 +11:00
bc4a0c3179 xxhash: rewrite for safety and accurate tests
there were a few potential buffer overflows, inaccurate test data, and
the 64 bit path wasn't correct.

fixes buffer overflow from clang-analyze
2018-01-23 18:57:04 +11:00
09aa86f55f crypto: remove cryptography primitives
This code can now be found in libcruft-crypto. It was removed to prevent
people relying on it, and to improve test iteration times in unoptimised
builds.
2018-01-14 17:13:21 +11:00
681768093e hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +11:00
9bb2bdbaba Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
2713da45f4 format: rework parser for currying support 2018-01-09 16:28:46 +11:00
d3f434b523 coord: make template parameters more flexible
The coordinate system was unable to support types that prohibited
redim or retype operations. Additionally, the `tags' type used for
providing named data parameters was unwiedly.

We remove much of the dependance on template template parameters in the
defined operations and instead define these in terms of a template
specialisation of is_coord.

The tag types were replaced with direct specialisation of the `store'
struct by the primary type, and passing this type through use of the
CRTP.
2017-11-22 17:03:00 +11:00
34788756d2 build: don't use './' as an include prefix
GCC produces ODR error when including paths of the form './foo' and
'foo' in the same binary. Rather than managing duplication we just
universally pick the absolute form over the relative form.
2017-11-22 16:49:37 +11:00
6d6c5c0cfc hash/crc: use relative include paths
We can't use system include paths for our headers because we are
probably not installed just yet..
2017-05-12 15:56:41 +10:00
f4093cb3d5 hash/crc: document template parameters 2017-02-20 18:01:40 +11:00
bec24535fc hash/crc: parameterise crc for reflection, and 64 bits 2017-02-14 19:47:12 +11:00
b39f80e606 hash/crc: parameterise on type and polynomial generator 2017-02-13 17:13:46 +11:00
154f43d188 sha2: style 2017-01-27 15:00:20 +11:00
4a73c1761b sha2: use constexpr for static numeric arrays 2017-01-27 14:59:59 +11:00
29c3fc9309 hash/crc: add trivial desciption comment to class 2017-01-25 16:14:49 +11:00
5a25f07f8e hash/crc: adapt implementation from png appendix 2017-01-25 16:12:12 +11:00
98dc992473 build: avoid integer length warnings 2017-01-05 19:50:28 +11:00
353cf839d4 use nested namespace declarations 2017-01-05 15:06:49 +11:00
f3fb385686 hash/xxhash: remove unnecessary foundation code 2016-12-21 21:08:26 +11:00
9711272989 xxhash: fix some integer conversion warnings 2016-12-12 15:45:21 +11:00
d1ec872bd4 xxhash: add forgotten C implementation 2016-11-18 13:24:34 +11:00
cb32823248 hash: add xxhash implementation 2016-11-17 18:38:09 +11:00
5b44b8f3e0 hash/simple: forward arguments to hash function 2016-11-17 18:38:09 +11:00
a93dd90da9 types: remove elems function, prefer std::size
Now that std::size is part of our supported compilers we can remove the
old elems function.
2016-11-17 18:06:39 +11:00
9a798446b5 build: remove unnecessary includes
discovered with include-what-you-use
2016-10-12 15:08:22 +11:00
2015e71f64 build: workaround enum-to-int cast warnings in LOG calls 2016-10-11 21:44:04 +11:00
0b85632c97 ripemd: panic rather than throw in constexpr
calculating the hash should never need to throw; all error cases should
be detectable at construction time. we should panic if we detect such an
error.

this fixes a compilation warning
2016-08-01 17:23:30 +10:00
c4daffc001 build: add forgotten includes 2016-07-28 13:39:27 +10:00
e1c115c71a murmur2: make mixing constexpr and inline 2016-07-01 17:01:21 +10:00
6e533e47b7 hash/keccak: remove unused function 2016-06-29 17:55:30 +10:00
08536765b6 Merge branch 'crypto' 2016-06-20 18:08:46 +10:00
8d191fb2e1 hash/keccak: add initial sha3 base 2016-06-20 18:05:30 +10:00
bcda332900 hash/fwd: add forward declerations 2016-06-20 16:53:56 +10:00
f96c34d581 hash/simple: add simple oneshot hash calculator 2016-06-20 16:53:56 +10:00
33ade82ebf hash/md5: make header guards consistent with path 2016-06-20 16:53:56 +10:00
8824331c4b hash/crc: convert to object style accumulator 2016-06-20 16:53:56 +10:00
6338a85992 hash/bsdum: convert to object style accumulator 2016-06-20 16:38:57 +10:00
51e7995c63 hash/adler: convert to object style accumulator 2016-06-20 16:37:43 +10:00
73579f57aa hash: remove uint8/size_t update functions 2016-06-17 16:27:16 +10:00
ce26ce1238 hash: style 2016-06-17 16:20:09 +10:00
5e6155a51a hash: make use of restrict and noexcept consistent 2016-06-17 16:06:46 +10:00
ef17f9c7d1 hash: class decleration style 2016-06-17 15:57:09 +10:00
51487cd34e hash: put checksum functions into util:#️⃣: 2016-06-17 15:56:14 +10:00
aeba9033e0 hash: prefer iterator style over base/length 2016-06-17 15:46:11 +10:00