Commit graph

350 commits

Author SHA1 Message Date
Pieter Wuille
665775b2b9 Don't split the g factor when not using endomorphism 2014-11-25 14:29:02 +01:00
Pieter Wuille
9431d6b112
Merge pull request #115
e2274c5 build: osx: attempt to work with homebrew keg-only packages (Cory Fields)
2014-11-25 13:51:52 +01:00
Cory Fields
e2274c58e6 build: osx: attempt to work with homebrew keg-only packages 2014-11-24 11:49:22 -05:00
Pieter Wuille
ad2028f989
Merge pull request #110
3bf029d Add test that recovering infinity fails (Pieter Wuille)
4861f83 Test whether recovered public keys are not infinity (Pieter Wuille)
bbe67d8 Make secp256k1_eckey_pubkey_serialize fail for infinity (Pieter Wuille)
2014-11-18 18:01:55 +01:00
Pieter Wuille
3bf029d676 Add test that recovering infinity fails 2014-11-18 13:13:17 +01:00
Pieter Wuille
4861f83686 Test whether recovered public keys are not infinity
Fixes a bug discovered by Sergio Demian Lerner.
2014-11-18 12:37:39 +01:00
Pieter Wuille
bbe67d8b29 Make secp256k1_eckey_pubkey_serialize fail for infinity 2014-11-18 12:37:38 +01:00
Pieter Wuille
11a78460f4
Merge pull request #107
f49b2ef Add DETERMINISTIC to avoid line number/source dependent binaries (Pieter Wuille)
2014-11-18 11:42:05 +01:00
Pieter Wuille
f49b2ef840 Add DETERMINISTIC to avoid line number/source dependent binaries
This will make it easier to detect changes without semantic impact.
2014-11-18 11:08:44 +01:00
Pieter Wuille
a5f7483d3e
Merge pull request #108
6c7f0c6 Update README.md (Pieter Wuille)
2014-11-18 09:56:25 +01:00
Pieter Wuille
6c7f0c621c Update README.md 2014-11-17 14:04:45 +01:00
Pieter Wuille
c48cdc4cb3
Merge pull request #105
71712b2 Switch to C89 comments in prep for making the whole codebase C89 compatible. (Gregory Maxwell)
2014-11-17 13:26:37 +01:00
Pieter Wuille
e5b9357b60
Merge pull request #106
8ca6a9c Correct .gitignore to correctly account for build-aux. (Phillip Mienk)
2014-11-16 14:54:50 +01:00
Phillip Mienk
8ca6a9c06f Correct .gitignore to correctly account for build-aux. 2014-11-15 19:47:03 -08: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
Pieter Wuille
21288f2d05
Merge pull request #103
f8cce95 Add overflow analysis to field_10x26_impl.h (Pieter Wuille)
a518598 Add overflow analysis to field_5x52_int128_impl.h (Pieter Wuille)
fa0d620 Add equalities relating input and output variables (Pieter Wuille)
5dd421b Rewrite mul/sqr for 32bit/64bit (Peter Dettman)
2014-11-15 01:29:44 +01:00
Pieter Wuille
f8cce95650 Add overflow analysis to field_10x26_impl.h 2014-11-14 17:52:39 +01:00
Pieter Wuille
a51859871a Add overflow analysis to field_5x52_int128_impl.h 2014-11-13 07:47:40 -08:00
Pieter Wuille
fa0d620668 Add equalities relating input and output variables 2014-11-13 07:00:44 -08:00
Peter Dettman
5dd421bab5 Rewrite mul/sqr for 32bit/64bit
- interleave calculation of the lower and upper partial product ranges, and reduction
- less registers needed, more opportunities for parallel ops
2014-11-13 04:46:17 -08:00
Pieter Wuille
027eb9c610
Merge pull request #102
a099073 Enable warnings. (Gregory Maxwell)
861f9a5 field_gmp's negate doesn't need to use the magnitude argument. (Gregory Maxwell)
f0709ac Avoid forward static decl of undefined functions, also fix a paren warning in the tests. (Gregory Maxwell)
3276e7d Signed/unsigned comparisons in tests. (Gregory Maxwell)
850562e Avoid unsigned comparison in scalar arith. (Gregory Maxwell)
65a14ab Fix varrious signed/unsigned comparisons. (Gregory Maxwell)
e9e0e21 Avoid a shadowed variable. (Gregory Maxwell)
e28a8b8 Remove a VERIFY_CHECK for >=0ness on an unsigned type. (Gregory Maxwell)
2cad067 Correct function prototypes and avoid unused parameter warnings. (Gregory Maxwell)
a4a43d7 Reorder static to comply with C99 and switch to the inline macro. (Gregory Maxwell)
2014-11-13 04:41:08 -08:00
Gregory Maxwell
a099073a7e Enable warnings.
Wno-unused-function is used for the moment because of the checking
 functions which are currently only used by VERIFY but are not (yet?)
 ifdefed out in normal builds.
2014-11-13 01:45:57 -08:00
Gregory Maxwell
861f9a59cc field_gmp's negate doesn't need to use the magnitude argument. 2014-11-13 01:45:56 -08:00
Gregory Maxwell
f0709ac57e Avoid forward static decl of undefined functions, also fix a paren warning in the tests. 2014-11-13 01:45:49 -08:00
Gregory Maxwell
3276e7d4e2 Signed/unsigned comparisons in tests. 2014-11-12 15:47:12 -08:00
Gregory Maxwell
850562e3f1 Avoid unsigned comparison in scalar arith. 2014-11-12 15:47:12 -08:00
Gregory Maxwell
65a14abb48 Fix varrious signed/unsigned comparisons. 2014-11-12 15:47:12 -08:00
Gregory Maxwell
e9e0e21a6f Avoid a shadowed variable. 2014-11-12 15:47:12 -08:00
Gregory Maxwell
e28a8b86c7 Remove a VERIFY_CHECK for >=0ness on an unsigned type. 2014-11-12 15:47:12 -08:00
Gregory Maxwell
2cad067a36 Correct function prototypes and avoid unused parameter warnings. 2014-11-12 15:47:06 -08:00
Pieter Wuille
f79d80a724
Merge pull request #101
8563713 Add non-null and unused-result warnings for the external API. (Gregory Maxwell)
2014-11-12 14:06:04 -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
Gregory Maxwell
8563713a4f Add non-null and unused-result warnings for the external API.
GCC (and clang) supports extensions to annotate functions so that their
 results must be used and so that their arguments can't be statically
 provable to be null. If a caller violates these requirements they
 get a warning, so this helps them write correct code.

I deployed this in libopus a couple years ago with good success, and
 the implementation here is basically copied straight from that.

One consideration is that the non-null annotation teaches the optimizer
 and will actually compile out runtime non-nullness checks as dead-code.
 Since this is usually not whats wanted, the non-null annotations are
 disabled when compiling the library itself.

The commit also removes some dead inclusions of assert.h and introduces
 compatibility macros for restrict and inline in preparation for some
 portability improvements.
2014-11-12 12:23:09 -08:00
Pieter Wuille
8ed7c33cd6
Merge pull request #96
6fac238 Use same build template as bitcoin. Add bitcoin_secp.m4. (kiwigb)
f9aac5b Remove INCLUDES. Obsolete, appears unused anyway. (kiwigb)
db72c18 Add autoreconf warnings. Replace obsolete AC_TRY_COMPILE. Remove redundant checks (already done by LT_INIT). (kiwigb)
2014-11-12 11:35:33 -08:00
Pieter Wuille
28515b8848
Merge pull request #99
c27fdc0 Document some preconditions (Pieter Wuille)
2014-11-12 11:23:18 -08:00
Pieter Wuille
c27fdc0b97 Document some preconditions 2014-11-12 03:20:15 -08:00
Pieter Wuille
7ff4770e15
Merge pull request #98
fb1bb0b Rearrange _gej_add_ge to save an _fe_negate (Peter Dettman)
9338dbf Branch-free point addition (Pieter Wuille)
2014-11-12 02:44:56 -08:00
Peter Dettman
fb1bb0b445 Rearrange _gej_add_ge to save an _fe_negate 2014-11-12 02:16:36 -08:00
Pieter Wuille
9338dbf791 Branch-free point addition 2014-11-11 14:28:22 -08:00
kiwigb
6fac238f03 Use same build template as bitcoin. Add bitcoin_secp.m4. 2014-11-07 01:55:27 +13:00
kiwigb
f9aac5b034 Remove INCLUDES. Obsolete, appears unused anyway. 2014-11-06 22:35:41 +13:00
kiwigb
db72c181bb Add autoreconf warnings. Replace obsolete AC_TRY_COMPILE.
Remove redundant checks (already done by LT_INIT).
2014-11-06 22:20:05 +13:00
Pieter Wuille
ef6f677679
Merge pull request #95
79ad6d4 Remove some dead variables in the tests. (Gregory Maxwell)
9974d86 Misc. Warning and cosmetic error cleanups. (Gregory Maxwell)
2014-11-04 23:29:08 -08:00
Pieter Wuille
985fd63a73
Merge pull request #77
1d52a8b Implementations for scalar without data-dependent branches. (Pieter Wuille)
2014-11-04 23:26:52 -08:00
Gregory Maxwell
79ad6d44ea Remove some dead variables in the tests. 2014-11-04 13:47:23 -08:00
Gregory Maxwell
9974d8693e Misc. Warning and cosmetic error cleanups.
This fixes a cosmetic precedence bug in the tests along with some
 type warnings.

It also adds a dummy cast to the CHECK macro to avoid hundreds
 of statement with no effect warnings on compilers that warn about
 such things.
2014-11-04 13:17:45 -08:00
Pieter Wuille
1d52a8b155 Implementations for scalar without data-dependent branches. 2014-11-04 03:01:55 -08:00
Pieter Wuille
0ce80ef47e
Merge pull request #94
da55986 Label variable-time functions correctly and don't use those in sign (Pieter Wuille)
2014-11-04 03:01:38 -08:00
Pieter Wuille
da55986fdf Label variable-time functions correctly and don't use those in sign 2014-11-04 02:50:06 -08:00
Pieter Wuille
784e62f3b2
Fix typo 2014-11-04 02:28:34 -08:00