Gregory Maxwell
d9543c904f
Switch scalar code to C89.
2015-01-25 05:09:57 +00:00
Pieter Wuille
0768bd55a1
Get rid of variable-length hex string conversions
2015-01-24 21:52:48 -04:00
Gregory Maxwell
25b35c7ecb
Convert field code to strict C89 (+ long long, +__int128)
...
This makes the software more portable to embedded systems
and static analysis tools.
Sadly, it can't result in identical binaries because C99 mixed
declarations seem to make GCC emit superfluous stack-pointer
updates. The compiler is also somewhat dependent on the
declaration order.
2015-01-23 05:48:27 +00:00
Gregory Maxwell
3627437d80
C89 nits and dead code removal.
2015-01-23 04:17:12 +00:00
Pieter Wuille
4732d26069
Convert the field/group/ecdsa constant initialization to static consts
2015-01-22 22:44:52 -05:00
Gregory Maxwell
70ae0d2851
Use secp256k1_fe_equal_var in secp256k1_fe_sqrt_var.
...
In theory this should be faster, since secp256k1_fe_equal_var is able to
shortcut the normalization. On x86_64 the improvement appears to be in
the noise for me. At least it makes the code cleaner.
2014-12-31 05:56:00 -08:00
Peter Dettman
49ee0dbe16
Add _normalizes_to_zero_var variant
2014-12-20 14:38:29 +01:00
Peter Dettman
eed599dd72
Add _fe_normalizes_to_zero method
2014-12-20 14:38:24 +01:00
Pieter Wuille
d7174edf5f
Weak normalization for secp256k1_fe_equal
2014-12-20 14:38:20 +01:00
Pieter Wuille
7277fd76e2
Remove GMP field implementation
2014-12-17 12:41:31 +01:00
Pieter Wuille
6a9901e15b
Merge pull request #137
...
39bd94d Variable time normalize (Pieter Wuille)
2014-12-07 14:35:23 +01:00
Pieter Wuille
a5759c572e
Check return value of malloc
2014-12-07 02:58:24 +01:00
Pieter Wuille
39bd94d86d
Variable time normalize
2014-12-06 18:18:28 +01:00
Pieter Wuille
2b9388b647
Remove unused secp256k1_fe_inv_all
2014-12-05 18:13:51 +01:00
Pieter Wuille
bd313f7d6e
Merge pull request #119
...
597128d Make num optional (Pieter Wuille)
659b554 Make constant initializers independent from num (Pieter Wuille)
2014-12-02 16:42:50 +01:00
Pieter Wuille
be82e92fc4
Require that r and b are different for field multiplication.
...
Suggested by Peter Dettman, this prepares for slightly faster muitiplication
which writes results immediately to r before finishing reading b.
2014-12-01 13:40:34 +01:00
Pieter Wuille
597128d389
Make num optional
2014-12-01 12:38:38 +01:00
Pieter Wuille
d907ebc0e3
Add bounds checking to field element setters
2014-11-26 15:21:31 +01:00
Gregory Maxwell
71712b27e5
Switch to C89 comments in prep for making the whole codebase C89 compatible.
...
This should be whitespace/comment only changes and should produce the same
object code.
2014-11-15 07:33:07 -08:00
Gregory Maxwell
65a14abb48
Fix varrious signed/unsigned comparisons.
2014-11-12 15:47:12 -08:00
Gregory Maxwell
a4a43d7543
Reorder static to comply with C99 and switch to the inline macro.
2014-11-12 13:07:55 -08:00
Pieter Wuille
501d58f098
Get rid of {num,scalar,ecdsa_sig}_{init,free}
2014-11-03 01:31:04 -08:00
Pieter Wuille
1c7fa133a6
Add VERIFY_CHECK/DEBUG_CHECK and use CHECK macros more
2014-08-26 01:23:51 +02:00
Peter Dettman
f16be77ffc
Use batch inversion in G precomputation
2014-07-17 15:33:00 +07:00
Peter Dettman
09ca4f32e2
secp256k1_fe_sqrt checks for success
...
- secp256k1_fe_sqrt now checks that the value it calculated is actually a square root.
- Add return values to secp256k1_fe_sqrt and secp256k1_ge_set_xo.
- Callers of secp256k1_ge_set_xo can use return value instead of explicit validity checks
- Add random value tests for secp256k1_fe_sqrt
2014-05-21 10:22:14 +07:00
Pieter Wuille
11ab562203
Move implementations from impl/*.h to *_impl.h
2014-03-12 18:40:02 +01:00