Commit Graph

49 Commits

Author SHA1 Message Date
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 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
Jeroen van Rijn c213274607 [vendor:glfw] Add test. 2021-11-10 19:15:10 +01:00
zhibog 8aadcacc0b Add tests to Linux and Mac and add vendor tests 2021-11-10 15:22:12 +01:00
zhibog cef9632607 Add Botan crypto lib as a vendor library 2021-11-09 23:49:17 +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
Jeroen van Rijn 6954076f15 CI tests for PNG, GZIP + ZLIB. 2021-09-07 18:25:49 +02:00