Commit graph

89 commits

Author SHA1 Message Date
Miguel Oliveira 91e6f32894 Fix "cryptolib" typo 2023-07-18 21:12:20 -03:00
Miguel Oliveira 0604359dbb Loosen integral limits on packing.lua 2023-07-18 21:12:00 -03:00
Miguel Oliveira 3da91cf3a2 Fix random.random
Whoops.
2023-06-11 12:01:05 -03:00
Miguel Oliveira 8d77e6597c Check argument types in random.mix 2023-06-09 21:23:02 -03:00
Miguel Oliveira 5c615a14d3 Fix random.random erroring with a negative length
Calling random.random(-1) will return an empty string and set the state
to a 31-byte string. This makes any further call in the module error.
2023-06-09 21:22:25 -03:00
Miguel Oliveira 0a23090e99 Add a progress callback to PBKDF2 2023-06-09 18:30:23 -03:00
Miguel Oliveira 8b5b86e13c Fix PBKDF2 password padding 2023-06-09 15:28:42 -03:00
Miguel Oliveira a3decc5c70 Add initialization instructions to README 2023-06-09 14:32:04 -03:00
Miguel Oliveira d266ab392b Add string utilities 2023-06-09 14:31:42 -03:00
Miguel Oliveira 45a1238a2e Add a profiling program 2023-06-09 13:28:10 -03:00
Miguel Oliveira 4106df6da2 Change some comments 2023-06-09 12:24:49 -03:00
Miguel Oliveira 66120fc624
Create README.md 2023-06-08 01:27:31 -03:00
Miguel Oliveira 71cb9b5a47
Create LICENSE 2023-06-08 01:26:25 -03:00
Miguel Oliveira 2402f55f58 Tag experimental function exports as experimental 2023-06-08 01:25:07 -03:00
Miguel Oliveira bfd15c242b Move away from illuaminate 2023-06-08 01:24:22 -03:00
Miguel Oliveira a42fe34ba1 Change module exports syntax 2023-06-08 01:19:44 -03:00
Miguel Oliveira cb620cfb0a Rework comments to new annotation style 2023-06-08 01:15:16 -03:00
Miguel Oliveira 6fbbab378a Simplify random initialization
The entropy is now provided by the user. They are tasked with finding a
high-quality source of entropy to initialize the generator with.
2023-04-11 16:46:13 -03:00
Miguel Oliveira 32ba9d8252 Add large test vectors 2023-04-11 14:38:19 -03:00
Miguel Oliveira c85969605e Remove BLAKE3 state
I feel like a broken record already. This is simpler and can be changed
later.
2023-04-11 14:28:39 -03:00
Miguel Oliveira 77dfbae843 Switch argument validation back to assertions 2023-01-02 20:56:35 -03:00
Miguel Oliveira cc71819572 Change masked exchange interface 2023-01-02 20:33:57 -03:00
Miguel Oliveira dcd7f93a3c Fix exchange validation
Now that it accepts any (projective) base as input, we need to check the
projective equation, rather than the affine one, which assumes Z = 1.
2023-01-02 16:36:53 -03:00
Miguel Oliveira 73e0df0b5e Add masked signing 2023-01-02 16:02:03 -03:00
Miguel Oliveira 77892f3a76 Add Ed25519 tests and secret key conversion 2023-01-02 04:45:53 -03:00
Miguel Oliveira 374ba5ee4a Add birational decoding of Edwards25519 points
I really dislike this interface, I'll probably need to think of
something else.
2023-01-02 02:51:19 -03:00
Miguel Oliveira a7d98da04c Add tests and check the twist on x25519c.lua 2023-01-02 01:50:01 -03:00
Miguel Oliveira 88a584b393 Split AEAD key derivation and decryption
This makes decryption failures happen earlier, at the cost of leaking
more information through timing.
2022-12-31 18:00:08 -03:00
Miguel Oliveira 8a28d6f7ea Add ecc unit tests and fix Ed25519 2022-12-14 20:27:47 -03:00
Miguel Oliveira 9d060fa581 Move directory and add unit tests 2022-12-14 00:00:27 -03:00
Miguel Oliveira 5438c20bc9 Change documentation styles 2022-12-13 18:53:53 -03:00
Miguel Oliveira c2991a6768 Remove Curve25519 fieldMul 2022-12-13 18:52:24 -03:00
Miguel Oliveira 0af58b5e2d Improve random byte generator 2022-12-13 18:51:38 -03:00
Miguel Oliveira 7d45646aa0 Fix typo 2022-12-13 18:42:31 -03:00
Miguel Oliveira 08016b8a61 Document PRAC rule conditions 2022-12-13 18:40:52 -03:00
Miguel Oliveira d4c173c713 Remove dependency on string.pack 2022-10-16 19:28:56 -03:00
Miguel Oliveira 0cd726952a
Fix BLAKE3 output expansion 2022-04-10 17:42:39 -03:00
Miguel Oliveira c9829f9759
Move BLAKE3 expand function 2022-04-10 17:39:30 -03:00
Miguel Oliveira b9457e9dd5
Make BLAKE3 stateful 2022-04-10 17:38:16 -03:00
Miguel Oliveira db4c272aea
Add PRAC-based twofold multiplication 2022-04-08 11:56:03 -03:00
Miguel Oliveira a57c5e1ded
Unroll mp.lua operations and add others for PRAC 2022-04-06 13:59:55 -03:00
Miguel Oliveira 5290be7c75
Put Fq arithmetic internals in a separate module 2022-04-05 17:28:50 -03:00
Miguel Oliveira f53bb2ec6a
Bring back Fp negation 2022-04-05 16:32:09 -03:00
Miguel Oliveira 0a6c3021d0
Fix Poly1305 canonicalization 2022-04-04 23:36:25 -03:00
Miguel Oliveira 4cf7c2e989
Replace ✕ with × 2022-04-04 23:33:54 -03:00
Miguel Oliveira 2fe2a37ca3
Pack Curve25519 points into tables 2022-03-31 00:54:44 -03:00
Miguel Oliveira bd832f1a23
Document Curve25519 2022-03-30 21:52:52 -03:00
Miguel Oliveira d983042092
Document Edwards25519 2022-03-30 21:40:40 -03:00
Miguel Oliveira 9a5f8b37ea
Move curve point arithmetic into their own modules 2022-03-30 21:17:33 -03:00
Miguel Oliveira 4491ac4029
Save a multiplication on X25519 ladder step over G 2022-03-24 18:17:07 -03:00