16 Commits

Author SHA1 Message Date
Mark Spanbroek
4104602f85 update constantine to version 0.1.0 2024-07-15 12:29:09 +02: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
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
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
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
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
Mark Spanbroek
43c2aab913 move unmarshal into its own module called 'io'
Includes separate tests for unmarshalling that
were previously tested as part of the merkleRoot
calculation.

Includes tests for unmarshalling little endian
and big endian byte arrays.
2023-11-02 09:31:10 +01:00