Commit Graph

51 Commits

Author SHA1 Message Date
Jeroen van Rijn
6d9f84ba03 [tests] Make test runners exit with errorlevel 1 if a test fails. 2022-03-03 15:16:16 +01:00
zhibog
e7be9493ba Added SipHash + tests and fixed remaining semicolons in vendor/botan 2022-02-22 19:56:07 +01:00
gingerBill
f5697dd7f2 Merge branch 'master' into odin-global-constants-as-enums 2022-02-15 15:47:24 +00:00
NoahR02
accb35506f Ports OpenSimplex2 from https://github.com/KdotJPG/OpenSimplex2 to Odin. Adds tests for the noise procedures. 2022-02-08 06:25:07 -05:00
NoahR02
817bc7434d Ports OpenSimplex2 from https://github.com/KdotJPG/OpenSimplex2 to Odin. Adds tests for the noise procedures. 2022-02-08 06:16:10 -05:00
gingerBill
6223f48c3f Update tests 2022-01-20 20:08:24 +00:00
gingerBill
2a325b3da0 Update ODIN_ENDIAN usage 2022-01-16 12:25:39 +00:00
Jeroen van Rijn
938744b276 [math/big] Rename internal_int_shl_digit to _private_int_shl_leg.
Same for the SHR variant. These are pure implementation details to shift by a leg/word at a time.
Prevent accidental usage.
2021-12-11 15:22:24 +01:00
Jeroen van Rijn
c94098c2ab [math/big] Fix int_set and int_get. 2021-12-09 16:14:04 +01:00
Yawning Angel
6bafa21bee crypto: Add rand_bytes
This adds `rand_bytes(dst: []byte)` which fills the destination buffer
with entropy from the cryptographic random number generator.  This takes
the "simple is best" approach and just directly returns the OS CSPRNG
output instead of doing anything fancy (a la OpenBSD's arc4random).
2021-11-17 14:00:00 +00:00
Yawning Angel
6c4c9aef61 core/crypto: Add chacha20poly1305
This package implements the chacha20poly1305 AEAD construct as specified
in RFC 8439.
2021-11-17 13:59:53 +00:00
Yawning Angel
7bed317636 core/crypto: Add chacha20
This package implements the ChaCha20 stream cipher as specified in
RFC 8439, and the somewhat non-standard XChaCha20 variant that supports
a 192-bit nonce.

While an IETF draft for XChaCha20 standardization exists,
implementations that pre-date the draft use a 64-bit counter, instead of
the IETF-style 32-bit one.  This implementation opts for the latter as
compatibility with libsodium is more important than compatibility with
an expired IETF draft.
2021-11-17 13:59:53 +00:00
Yawning Angel
64db286582 core/crypto: Add poly1305
This package implements the Poly1305 MAC algorithm as specified in RFC
8439, using routines taked from fiat-crypto and poly1305-donna.
2021-11-17 13:59:53 +00:00
Yawning Angel
1a7a6a9116 core/crypto: Add x25519
This package implements the X25519 key agreement scheme as specified in
RFC 7748, using routines taken from fiat-crypto and Monocypher.
2021-11-17 13:59:53 +00:00
zhibog
8aadcacc0b Add tests to Linux and Mac and add vendor tests 2021-11-10 15:22:12 +01:00
zhibog
c24454ae70 Removed context switching system from the crypto library to simplify the code 2021-11-09 16:50:13 +01:00
Daniel Gavin
5b074ceee5 Add json encoding test + fix enum not being set on success. 2021-11-07 14:35:52 +01:00
zhibog
8876328e4d Move botan.dll to correct directory 2021-10-14 23:03:55 +02:00
zhibog
f4ff11a7ff Added botan.dll for tests 2021-10-14 22:58:20 +02:00
zhibog
77be7144c3 Add crypto library. Additional information is included in the README.md 2021-10-14 22:20:55 +02:00
Jeroen van Rijn
c4b4a841d6 png: Move metadata. 2021-10-06 22:43:33 +02:00
Jeroen van Rijn
8fcd1794a6 png: Add sane compile-time maximums for dimensions + chunk sizes. 2021-10-06 21:48:22 +02:00
Jeroen van Rijn
9b5ae95677 png + compress: Rearrange error unions. 2021-10-06 20:45:29 +02:00
Jeroen van Rijn
21c6d691d8 Add additional error checking to helpers. 2021-10-06 20:10:37 +02:00
gingerBill
1e7c60e171 Minor style change 2021-10-02 14:05:26 +01:00
Jeroen van Rijn
6e22a6dfa5 hash: Smaller CRC-64 ISO 3306 table. 2021-09-21 16:28:35 +02:00
Jeroen van Rijn
181eabcffc hash: Add CRC-64 (ISO 3306) and inverse. 2021-09-21 16:17:01 +02:00
Jeroen van Rijn
b600ffba3b Correct CRC-64 (ECMA 182) & add CRC-64 (XZ) and tests. 2021-09-21 15:17:23 +02:00
Daniel Gavin
46d99395ce typo in filename 2021-09-20 20:53:39 +02:00
Daniel Gavin
50ee65ea9e Make default_parser use the optional_semicolons and add odin parser test. 2021-09-20 20:50:01 +02:00
Jeroen van Rijn
b6d0a8fe0c xxhash: Add tests for streaming input. 2021-09-15 23:32:48 +02:00
Jeroen van Rijn
a641ef95c0 Add XXH3-64 + tests. 2021-09-13 20:58:26 +02:00
Jeroen van Rijn
ada3be05fb xxhash: typo. 2021-09-12 12:14:49 +02:00
Jeroen van Rijn
36a2cf0369 xxhash: Add custom secret tests. 2021-09-12 12:11:39 +02:00
Jeroen van Rijn
00c1d34108 xxhash: Extra (generated) tests. 2021-09-11 23:45:08 +02:00
Jeroen van Rijn
f978e74773 LLVM 12 big math test workaround. 2021-09-11 20:36:09 +02:00
Jeroen van Rijn
5f920414d7 xxhash: Disable prefetch on Linux. 2021-09-11 15:45:17 +02:00
Jeroen van Rijn
72782d9035 xxhash: Fix test on Linux. 2021-09-11 15:39:11 +02:00
Jeroen van Rijn
eaefbc43cb xxhash: Add XXH3_128 + test vectors. 2021-09-11 15:28:49 +02:00
Jeroen van Rijn
e5652da6da Fix typo. 2021-09-09 16:57:58 +02:00
Jeroen van Rijn
637685316d Add xxhash tests to CI. 2021-09-09 16:01:44 +02:00
Jeroen van Rijn
66ead6cf09 Also use custom test runner on Linux. 2021-09-08 21:21:36 +02:00
Jeroen van Rijn
e6905f8657 Custom test runner. 2021-09-08 21:17:16 +02:00
Jeroen van Rijn
e831e919a6 Try to address test timeouts. 2021-09-08 14:30:11 +02:00
Jeroen van Rijn
ce2f926ff7 Separate math/big test. 2021-09-07 20:24:02 +02:00
Jeroen van Rijn
fcb23abce4 Tests: Integrate strings into CI. 2021-09-07 19:57:08 +02:00
Jeroen van Rijn
f7601a759b Move math/big tests under tests/. 2021-09-07 19:51:56 +02:00
Ricardo Silva
f6d496c81d Fix strings.index_any on small strings 2021-09-07 18:38:10 +01:00
Jeroen van Rijn
78e923b6b0 Add Makefile for tests. 2021-09-07 19:11:06 +02:00
Jeroen van Rijn
1ab6a765da Set relative path for Odin. 2021-09-07 18:30:54 +02:00