43 Commits

Author SHA1 Message Date
Ken MacKay 1e6e86fa43 Add note about verifying public keys 2020-10-07 17:26:47 -07:00
Ken MacKay 979d722c99 Cleanup emk files 2020-10-07 12:26:35 -07:00
Ken MacKay d037ec8954 Add note that uECC_VLI_NATIVE_LITTLE_ENDIAN affects key compatiblity 2017-05-21 11:05:04 -07:00
Ken MacKay d671b1cc22 Add faster ARM multiplication code using UMAAL (#69)
On ARM platforms that support UMAAL, this new code should speed up curve
operations by 15-20%. There is automatic detection of UMAAL support
using compiler macros, but if it doesn't work for a given platform,
#define uECC_ARM_USE_UMAAL to 1 or 0 as desired.
2016-04-20 21:22:40 -07:00
Ken MacKay b6c0cdbe7d Add functions to get the private/public key size for a curve (#73) 2016-03-08 21:29:40 -08:00
cacu eff564675d Fix code formatting and document the fact that input arrays must be word
aligned
2016-03-08 09:47:02 +01:00
cacu 289a8e0340 Several fixes singled out in the pull request discussion thread. 2016-03-07 18:08:08 +01:00
cacu 778effd967 Add a new uECC_VLI_NATIVE_LITTLE_ENDIAN compile-time macro that enables
fully native little endian platforms interfacing with little endian byte
streams to avoid using additional stack space and pre and post byte
reversals
2016-03-07 13:09:22 +01:00
mdxs 9dbd82890f Fixed small typos in comments 2016-03-01 00:40:47 +01:00
Sean Wilson 35423ba878 Provide API access to the built-in RNG code. 2016-01-15 14:50:31 -05:00
Andrew Ruder 451d53a62e uECC_HashContext => const uECC_HashContext
This is an important piece of "documentation" as it indicates to the
caller that a uECC_HashContext can be initialized and subsequently
used multiple times (for multiple signatures).
2015-12-23 15:42:14 -06:00
Andrew Ruder 0d853de6d1 uECC_verify: fix prototype to indicate public_key
The prototype incorrectly used 'private_key' as the name
of the first argument (rather than 'public_key').  Docs and
function definition were already correctly using 'public_key'
2015-12-23 10:24:58 -06:00
Andrew Ruder 6b0566beb6 uECC.h uECC.c: whitespace cleanups
Just removing trailing whitespace.
2015-12-23 10:24:53 -06:00
Ken MacKay 12d16b6b67 Clean up some header files. 2015-10-12 21:51:39 -07:00
Ken MacKay 0283b542ef Convert hash to int in sign/verify (#53)
Previously, callers would need to manually convert the hash value
appropriately if it was not the same length as curve_n. Now, callers
just pass in the full hash value and the length; uECC will convert
the hash as appropriate.
2015-10-12 21:29:57 -07:00
Ken MacKay 4ae15e365b Updated so that private keys are always the correct length.
Specifically, the private key for secp160r1 is now required to be
21 bytes. Added some comments about buffer sizes.
2015-10-12 21:29:57 -07:00
Ken MacKay 41207c563a Make the default optimization level be 2 2015-10-12 21:29:56 -07:00
Ken MacKay 74f6d2d9d7 Directly expose vli functions if uECC_ENABLE_VLI_API != 0
Added a header file for those functions as well.
2015-10-12 21:29:56 -07:00
Evgeni Margolis ca9e456f42 Added new define (uECC_SUPPORT_COMPRESSED_POINT) and new API functions. 2015-10-12 21:29:56 -07:00
Ken MacKay 2cc5e9211a Add an intermediate optimization level where only add/sub are "fast".
Also made uECC_SQUARE_FUNC separately controllable for now.
2015-10-12 21:29:56 -07:00
Ken MacKay 5f01beb717 Add fast ARM asm; cleaned up code. Added optimization setting. (#50) 2015-10-12 21:29:56 -07:00
Ken MacKay 08ae3fd516 Add small ARM asm. (#50) 2015-10-12 21:28:44 -07:00
Ken MacKay 25941ccc4d Initial, unreasonably slow implementation of multiple curve support. (#50) 2015-10-12 21:28:44 -07:00
Josh Datko 9a657b6046 Wrong variable name in verify definition. 2015-09-01 15:21:16 -06:00
Evgeni Margolis ac89ddca67 Added support for new secp224r1 curve. Added test to verify uECC_compress() and uECC_decompress() functions. 2015-06-28 15:02:45 -07:00
Ken MacKay fed2afb663 Modified uECC_sign_deterministic() to not depend on #defined constants. 2015-06-15 22:02:35 -07:00
Ken MacKay 67d0733f51 Added test for deterministic ECDSA (#37) 2015-06-15 21:41:39 -07:00
Ken MacKay c13e915870 Initial untested implementation of deterministic message signing (#37). 2015-06-14 15:13:28 -07:00
Ken MacKay cfdb24bab6 Refactor uECC_sign() so that internally, k gan be generated in a different way. (#37) 2015-06-13 08:38:38 -07:00
Ken MacKay 400b453176 Update coding style. 2015-06-12 22:53:38 -07:00
Ken MacKay 5429ad8b1b Fix header #defines (#35) 2015-05-26 08:04:09 -07:00
Richard Moore ae3e858136 Added error checking to uECC_compute_public_key. 2015-05-20 12:02:51 -04:00
Richard Moore 08b675503d Removed some stray whitespace. 2015-05-20 11:50:08 -04:00
Richard Moore a46621eb57 Added uECC_compute_public_key. 2015-05-19 13:26:24 -04:00
Ken MacKay 5422cf9661 Minor code cleanup. 2015-04-25 15:42:34 -07:00
Ken MacKay c5749e621b Add uECC_valid_public_key() function to check if a given public key is valid. (#29) 2015-04-25 15:18:06 -07:00
aaron levin 7c95244ef6 Add methods to return values def'd at compile time
This will support higher-level languages interfacing
with `micro-ecc`.
2015-02-06 10:27:59 -05:00
Ken MacKay 834c1c0b66 Actually leave secp160r1 as the default for the convenience of Pinoccio. 2014-05-01 23:05:02 -07:00
Ken MacKay 110c8826d6 Make secp256r1 the default. 2014-05-01 22:38:05 -07:00
Ken MacKay 28e95b4de8 Add support for secp256k1. 2014-05-01 21:51:37 -07:00
Ken MacKay 3d0c858e64 Make compress/decompress use const properly. 2014-05-01 21:50:05 -07:00
Ken MacKay d6ad5b32c6 Add license statement to source files. 2014-04-22 22:07:42 -07:00
Ken MacKay 6044e911ae Use 'uECC_' prefix for everything to avoid conflicts with other libraries. (Fix for #1). 2014-04-14 22:09:57 -07:00