Balazs Komuves
7749c368a9
Merge pull request #21 from codex-storage/bump-constantine-gcc14
...
bumps constantine, updates curves
2025-01-21 17:18:31 +01:00
Arnaud
4e2c6e619b
Add 2.0.14 to testing matrix
2025-01-07 10:27:25 +01:00
Arnaud
f5a3511349
Update constantine to the last commit hash
...
Signed-off-by: Arnaud <arnaud@status.im>
2024-12-04 13:02:20 +01:00
benbierens
e173dd817b
bumps constantine, updates curves
2024-08-08 14:45:13 +02:00
Balazs Komuves
8a54c69032
pin the constantine dependency (there was a breaking refactoring recently)
2024-07-12 12:06:22 +02:00
Ben Bierens
ad26df8846
Merge pull request #19 from codex-storage/export-fromBytes
...
exports fromBytes from the library
2024-01-18 09:09:24 +01:00
Ben Bierens
74dbf15788
Merge pull request #18 from codex-storage/convert-from-32-bytes
...
Convert from 32 bytes
2024-01-18 09:09:18 +01:00
Eric
0346982f2c
exports fromBytes from the library
2024-01-09 12:29:02 +11:00
benbierens
eef2603c11
Adds equality compare for field elements
2024-01-08 11:29:30 +01:00
Dmitriy Ryajov
3b403b0752
fix style check
2023-12-22 12:51:53 -06:00
benbierens
ff6e7589ac
Adds test for preserving field element after conversion
2023-12-22 12:49:08 -06:00
benbierens
1d12c38584
Adds check to ensure value fits in prime field.
2023-12-22 12:49:08 -06:00
benbierens
fbf95e21b8
Adds method for converting 32 bytes to field element
2023-12-22 12:49:07 -06:00
Dmitriy Ryajov
aceccb2367
style check complains about style in codex
2023-12-22 12:49:07 -06:00
Ben Bierens
9be7b0c134
Merge pull request #16 from codex-storage/fix-undeclared-curve
...
Fix: workaround for "undeclared identifier: 'getCurveOrder'"
2023-11-27 12:35:15 +01:00
Mark Spanbroek
77f0aafacc
Fix: workaround for "undeclared identifier: 'getCurveOrder'"
2023-11-27 12:27:26 +01:00
Mark Spanbroek
c4569bcba0
Add sponge-merkle digest
2023-11-27 12:22:06 +01:00
Ben Bierens
cfb4f97023
Merge pull request #15 from codex-storage/integers-to-field
...
integers to field elements
2023-11-24 12:39:03 +01:00
Mark Spanbroek
ddff11d4f0
Convert all types of integers to field element
2023-11-23 17:07:17 +01:00
Mark Spanbroek
f76d8dd654
Move int.toF() function into io module
2023-11-23 16:37:41 +01:00
Mark Spanbroek
b953cde5f8
Check streaming algorithm against reference implementation
2023-11-23 14:29:28 +01:00
Mark Spanbroek
fe3e3230f4
Streaming API for merkle root calculation
2023-11-23 14:29:28 +01:00
Mark Spanbroek
16e20ee8f7
Add test vectors
...
Co-Authored-By: Balazs Komuves <bkomuves@gmail.com>
2023-11-20 11:40:56 +01:00
Mark Spanbroek
c4b4936e26
Handle merkleRoot of empty sequence
...
Co-Authored-By: Balazs Komuves <bkomuves@gmail.com>
2023-11-20 11:40:56 +01:00
Mark Spanbroek
cce9c13a04
Remove if statement at compile time
2023-11-20 11:40:56 +01:00
Mark Spanbroek
a311828b9e
Do not expose isBottomLayer parameter on API
2023-11-20 11:40:56 +01:00
Mark Spanbroek
4bd56bb839
Ensure that merkle root of single element is compressed
2023-11-20 11:40:56 +01:00
Mark Spanbroek
9c7690ff0c
Use different compress functions for bottom layer and odd nodes
2023-11-20 11:40:56 +01:00
Mark Spanbroek
94f9d1fdd3
Move merkleRoot() into its own module
2023-11-20 11:40:56 +01:00
Mark Spanbroek
af67374929
Fix: add missing import
...
Fixes "attempting to call undeclared routine: 'elements'"
when calling Sponge.digest from a project using the
nimble package
2023-11-16 10:23:04 +01:00
Mark Spanbroek
8b7a4a3151
Allow for keyed compression
2023-11-13 14:24:06 +01:00
Mark Spanbroek
6fddd3e39e
Move compress() into its own module
2023-11-13 14:24:06 +01:00
Mark Spanbroek
457b8623be
Add usage example to Readme
...
- unit test that example code works
- fixes for said unit test
2023-11-13 11:46:45 +01:00
Mark Spanbroek
70c03b834f
Add Sponge.digest() call that takes bytes
2023-11-13 11:46:45 +01:00
Mark Spanbroek
d8a176930d
Pad byte sequences with 0x1
...
To ensure unique field elements for sequences that
end with 0x0.
2023-11-13 11:46:45 +01:00
Mark Spanbroek
ce1d79a59b
Streaming API for converting bytes to field elements
2023-11-13 11:46:45 +01:00
Mark Spanbroek
fd260207b2
Remove unused import
2023-11-13 11:46:45 +01:00
Mark Spanbroek
4825c0a88c
Add streaming API for sponge
2023-11-13 11:46:45 +01:00
Mark Spanbroek
3cbd9a3a4c
Fix merkle root of odd number of elements
2023-11-13 11:40:35 +01:00
Mark Spanbroek
9c1d18e1a2
Address review comments
...
Co-Authored-By: Dmitriy Ryajov <dryajov@gmail.com>
2023-11-13 11:40:01 +01:00
Balazs Komuves
f5835d5fdc
add domain separation for the sponge construction
2023-11-13 11:40:01 +01:00
Balazs Komuves
01aa256970
minor improvements
2023-11-13 11:40:01 +01:00
Balazs Komuves
929793b9ad
add sponge construction
2023-11-13 11:40:01 +01:00
Mark Spanbroek
573a77f14f
Export conversion of field elements to bytes on main API
2023-11-08 11:13:45 +01:00
Mark Spanbroek
dbe3d8a692
Rename marshal -> toBytes, unmarshal -> fromBytes
...
For two reasons:
- to distinguish them from the marshalling functions
from constantine
- they do not follow the convention that something
that is marshalled can be unmarshalled, because
they take in 31 bytes but produce 32 bytes
2023-11-08 11:13:45 +01:00
Mark Spanbroek
1c7c5d4ec4
Conversion of field elements into bytes
2023-11-08 11:13:45 +01:00
Mark Spanbroek
5e980dd816
Document conversion of bytes into field elements
2023-11-02 09:31:10 +01:00
Mark Spanbroek
03ed357ca4
Only support unmarshalling of little-endian bytes
...
Big-endian bytes had weird padding; 0's to the right,
then a single 0 to the left.
2023-11-02 09:31:10 +01:00
Mark Spanbroek
10b4a3659a
Pad big endian bytes with 0's to the right
2023-11-02 09:31:10 +01:00
Mark Spanbroek
996a1c8a7a
Ensure that we don't have any side-effects
...
Required for integration into libp2p, and a
good idea in general :)
2023-11-02 09:31:10 +01:00