Mamy André-Ratsimbazafy
ef5dd8345b
Allow compile-time bigint serialization + terminology: serialize -> export
2020-02-18 12:36:42 +01:00
Mamy André-Ratsimbazafy
9395febada
add octet string encode/decode (bigEndian raw int)
2020-02-18 11:54:36 +01:00
Mamy André-Ratsimbazafy
d7d20c50b6
Add primitive for window-based modular exponentiation
2020-02-17 00:13:42 +01:00
Mamy André-Ratsimbazafy
6694023f16
Revert "Use cmov name instead of mux to be in line with IETF spec on Hash to curve and Verifiable Random Functions"
...
This reverts commit 56177c0cfe
.
cmov will be the high-level name (similar to Milagro and Hash_to_curve draft) and mux will be the low-level one
2020-02-16 22:13:54 +01:00
Mamy André-Ratsimbazafy
56177c0cfe
Use cmov name instead of mux to be in line with IETF spec on Hash to curve and Verifiable Random Functions
2020-02-16 21:34:21 +01:00
Mamy André-Ratsimbazafy
a1801e26a0
Now passing finite field test vs GMP
2020-02-16 19:08:19 +01:00
Mamy André-Ratsimbazafy
c3d458e31b
Fix bug in redc: use montgomery mul for now. Add NIST P256 curve
2020-02-16 18:59:10 +01:00
Mamy André-Ratsimbazafy
5620bbfaee
rename io tests ti io bigints
2020-02-16 11:29:27 +01:00
Mamy André-Ratsimbazafy
23ecb9a221
Add a (failing) test vs GMP for modular multiplication on BN254 curve Field
2020-02-16 02:20:08 +01:00
Mamy André-Ratsimbazafy
eb94c3d1bc
Add Montgomery Modular Multiplication
2020-02-15 02:59:08 +01:00
Mamy André-Ratsimbazafy
301cf20195
Use Montgomery representation by default for Finite Field
...
- Fix montyMagic, modular inversion mode 2^2k was missing an iteration
- Fix test for buffer size in BigInt serialization
- Add UINT/Hex serialization for finite fields
- Montgomery conversion and redc
2020-02-15 00:26:40 +01:00
Mamy André-Ratsimbazafy
f418e08746
For finite fields, we will use the Montgomery n-residue form by default
2020-02-14 13:36:34 +01:00
Mamy André-Ratsimbazafy
f6b229b19c
Modular addition and substraction tests
2020-02-13 00:11:45 +01:00
Mamy André-Ratsimbazafy
3eb22f8fc7
Fix curve parser, implement smoke test for finite field
2020-02-12 23:57:51 +01:00
Mamy André-Ratsimbazafy
6226d86726
Update IO: dumpHex -> toHex dumpRawUint -> serializeRawUint
2020-02-12 21:57:39 +01:00
Mamy André-Ratsimbazafy
89fce3b1c4
Wrap tests in main. Fixes C codegen bug due to templates invocation on global variable in test_primitives
2020-02-12 00:25:48 +01:00
Mamy André-Ratsimbazafy
fe59efb8d8
reorganize the repo
2020-02-12 00:20:31 +01:00
Mamy André-Ratsimbazafy
24b0477ad7
Typo when testing for "negative" bigint, now passing testing vs GMP
2020-02-10 23:56:57 +01:00
Mamy André-Ratsimbazafy
b53f203e30
Fix raw uint serialization and start testing against GMP for 2000+bits bigints
2020-02-10 23:09:32 +01:00
Mamy André-Ratsimbazafy
8d160189d1
Fix extended prec multiplication carry. Passing modulo tests against medium BigInt (192~256 bits)
2020-02-10 22:19:47 +01:00
Mamy André-Ratsimbazafy
73b71a184c
Fix off-by-one copy, pass small bigints modulo tests
2020-02-10 19:57:35 +01:00
Mamy André-Ratsimbazafy
b689223cf5
Refactoring, optimize code-size: use type-erased views to avoid monomorphization of compute kernels
2020-02-10 18:16:34 +01:00
Mamy André-Ratsimbazafy
ade919b003
Fix carry and modulus offset in bigint
2020-02-10 02:58:37 +01:00
Mamy André-Ratsimbazafy
30f8756dfc
Temp switch to uint32 words for testing modulo. Remove tests that depend on word size
2020-02-10 00:16:46 +01:00
Mamy André-Ratsimbazafy
166a1075b1
add bigint display in GMP test
2020-02-09 23:26:39 +01:00
Mamy André-Ratsimbazafy
216ed9bdc1
Property-based testing framework vs GMP
2020-02-09 22:01:01 +01:00
Mamy André-Ratsimbazafy
f2c79ece26
Remove the limitation that the number of bits in constructed has to be greater than the source integer bitsize
2020-02-09 21:35:23 +01:00
Mamy André-Ratsimbazafy
66c0b5805e
Add modular reduce / bigint mod from 2 arbitrarily size bigint
2020-02-09 18:17:32 +01:00
Mamy André-Ratsimbazafy
153e898263
word_types -> primitives + delete the "config" file / debug template
2020-02-09 16:22:55 +01:00
Mamy André-Ratsimbazafy
b9a37825a3
COnsistent IO API between fromRawUint and fromHex and add fromUint
2020-02-09 15:38:30 +01:00
Mamy André-Ratsimbazafy
1d92ab1f48
Remove the limb accessor templates, introduce config file for debug template
2020-02-09 13:02:09 +01:00
Mamy André-Ratsimbazafy
9db77ad0eb
Prepare for testing finite fields, comment cleanups
2020-02-09 00:52:24 +01:00
Mamy André-Ratsimbazafy
edd728610c
Add addition limbs carry test
2020-02-08 19:09:20 +01:00
Mamy André-Ratsimbazafy
2c750cbc5b
Add bigint isZero, and equality and initial tests
2020-02-08 18:50:01 +01:00
Mamy André-Ratsimbazafy
8da9e20ebb
Cosmetic changes: dumpHex with 0x prefix, montgomery magic part of curve param
2020-02-08 17:03:30 +01:00
Mamy André-Ratsimbazafy
f18a958d5e
Support 1.0+ int128 (can't use magic for bitnot)
2020-02-08 13:28:43 +01:00
Mamy André-Ratsimbazafy
5dc97927c5
Switch to personal project -> update copyright
2020-02-08 11:42:35 +01:00
Mamy André-Ratsimbazafy
cadd81b978
Add hex conversion
2019-04-28 17:42:30 +02:00
mratsim
059439b2c3
fix little-endian parsing
2018-12-03 21:01:29 +01:00
mratsim
2856378427
[IO] dumping 2^63 works
2018-12-03 19:56:14 +01:00
mratsim
43ac4972a0
Add constant-time raw bytes/integers parsing
2018-12-02 20:57:32 +01:00
mratsim
eb15fb33b5
Rebrand to Constantine. Bigints representation should stay opaque. Exporting just the word_types would make a super small library.
2018-12-01 20:12:05 +01:00
mratsim
cae9f743d3
Add more tests for multiplexer
2018-12-01 18:03:52 +01:00
mratsim
d545147b0b
Use distinct range for Hardened booleans + first select test
2018-12-01 18:01:41 +01:00
mratsim
8d6e328397
Add boolean not and comparison tests
2018-12-01 17:32:08 +01:00
mratsim
acd06e1174
Add unary minus test
2018-12-01 17:04:55 +01:00
mratsim
9815047234
Add shifts and operators test
2018-12-01 16:49:45 +01:00
mratsim
b43e289780
Initial tests for bitwise operator
2018-12-01 16:32:21 +01:00
Jacek Sieka
97ec36f447
ci: update
...
readme: fix badges, license
tests: fix
nimble: add description
2018-09-04 22:38:34 -06:00
mratsim
34e72296d3
initial commit
2018-07-24 16:52:18 +02:00