forked from wolfSSL/wolfssl
Merge pull request #4071 from SparkiDev/fp_ecc_long_order
ECC FP: cached doesn't work when order has more bits than prime
This commit is contained in:
@ -49,17 +49,21 @@ Possible ECC enable options:
|
|||||||
* Includes the curve "a" variable in calculation
|
* Includes the curve "a" variable in calculation
|
||||||
* ECC_DUMP_OID: Enables dump of OID encoding and sum default: off
|
* ECC_DUMP_OID: Enables dump of OID encoding and sum default: off
|
||||||
* ECC_CACHE_CURVE: Enables cache of curve info to improve performance
|
* ECC_CACHE_CURVE: Enables cache of curve info to improve performance
|
||||||
default: off
|
* default: off
|
||||||
* FP_ECC: ECC Fixed Point Cache default: off
|
* FP_ECC: ECC Fixed Point Cache default: off
|
||||||
|
* FP cache is not supported for SECP160R1, SECP160R2,
|
||||||
|
* SECP160K1 and SECP224K1. These do not work with scalars
|
||||||
|
* that are the length of the order when the order is
|
||||||
|
* longer than the prime.
|
||||||
* USE_ECC_B_PARAM: Enable ECC curve B param default: off
|
* USE_ECC_B_PARAM: Enable ECC curve B param default: off
|
||||||
(on for HAVE_COMP_KEY)
|
* (on for HAVE_COMP_KEY)
|
||||||
* WOLFSSL_ECC_CURVE_STATIC: default off (on for windows)
|
* WOLFSSL_ECC_CURVE_STATIC: default off (on for windows)
|
||||||
For the ECC curve paramaters `ecc_set_type` use fixed
|
* For the ECC curve paramaters `ecc_set_type` use fixed
|
||||||
array for hex string
|
* array for hex string
|
||||||
* WC_ECC_NONBLOCK: Enable non-blocking support for sign/verify.
|
* WC_ECC_NONBLOCK: Enable non-blocking support for sign/verify.
|
||||||
Requires SP with WOLFSSL_SP_NONBLOCK
|
* Requires SP with WOLFSSL_SP_NONBLOCK
|
||||||
* WC_ECC_NONBLOCK_ONLY Enable the non-blocking function only, no fall-back to
|
* WC_ECC_NONBLOCK_ONLY Enable the non-blocking function only, no fall-back to
|
||||||
normal blocking API's
|
* normal blocking API's
|
||||||
* WOLFSSL_ECDSA_SET_K: Enables the setting of the 'k' value to use during ECDSA
|
* WOLFSSL_ECDSA_SET_K: Enables the setting of the 'k' value to use during ECDSA
|
||||||
* signing. If the value is invalid, a new random 'k' is
|
* signing. If the value is invalid, a new random 'k' is
|
||||||
* generated in the loop. (For testing)
|
* generated in the loop. (For testing)
|
||||||
@ -296,6 +300,7 @@ enum {
|
|||||||
#endif /* HAVE_ECC_SECPR2 */
|
#endif /* HAVE_ECC_SECPR2 */
|
||||||
#endif /* ECC128 */
|
#endif /* ECC128 */
|
||||||
#ifdef ECC160
|
#ifdef ECC160
|
||||||
|
#ifndef FP_ECC
|
||||||
#ifndef NO_ECC_SECP
|
#ifndef NO_ECC_SECP
|
||||||
#ifdef HAVE_OID_ENCODING
|
#ifdef HAVE_OID_ENCODING
|
||||||
#define CODED_SECP160R1 {1,3,132,0,8}
|
#define CODED_SECP160R1 {1,3,132,0,8}
|
||||||
@ -341,6 +346,7 @@ enum {
|
|||||||
#endif
|
#endif
|
||||||
#define ecc_oid_secp160k1_sz CODED_SECP160K1_SZ
|
#define ecc_oid_secp160k1_sz CODED_SECP160K1_SZ
|
||||||
#endif /* HAVE_ECC_KOBLITZ */
|
#endif /* HAVE_ECC_KOBLITZ */
|
||||||
|
#endif /* !FP_ECC */
|
||||||
#ifdef HAVE_ECC_BRAINPOOL
|
#ifdef HAVE_ECC_BRAINPOOL
|
||||||
#ifdef HAVE_OID_ENCODING
|
#ifdef HAVE_OID_ENCODING
|
||||||
#define CODED_BRAINPOOLP160R1 {1,3,36,3,3,2,8,1,1,1}
|
#define CODED_BRAINPOOLP160R1 {1,3,36,3,3,2,8,1,1,1}
|
||||||
@ -450,7 +456,7 @@ enum {
|
|||||||
#endif
|
#endif
|
||||||
#define ecc_oid_secp224r1_sz CODED_SECP224R1_SZ
|
#define ecc_oid_secp224r1_sz CODED_SECP224R1_SZ
|
||||||
#endif /* !NO_ECC_SECP */
|
#endif /* !NO_ECC_SECP */
|
||||||
#ifdef HAVE_ECC_KOBLITZ
|
#if defined(HAVE_ECC_KOBLITZ) && !defined(FP_ECC)
|
||||||
#ifdef HAVE_OID_ENCODING
|
#ifdef HAVE_OID_ENCODING
|
||||||
#define CODED_SECP224K1 {1,3,132,0,32}
|
#define CODED_SECP224K1 {1,3,132,0,32}
|
||||||
#define CODED_SECP224K1_SZ 5
|
#define CODED_SECP224K1_SZ 5
|
||||||
@ -464,7 +470,7 @@ enum {
|
|||||||
#define ecc_oid_secp224k1 CODED_SECP224K1
|
#define ecc_oid_secp224k1 CODED_SECP224K1
|
||||||
#endif
|
#endif
|
||||||
#define ecc_oid_secp224k1_sz CODED_SECP224K1_SZ
|
#define ecc_oid_secp224k1_sz CODED_SECP224K1_SZ
|
||||||
#endif /* HAVE_ECC_KOBLITZ */
|
#endif /* HAVE_ECC_KOBLITZ && !FP_ECC */
|
||||||
#ifdef HAVE_ECC_BRAINPOOL
|
#ifdef HAVE_ECC_BRAINPOOL
|
||||||
#ifdef HAVE_OID_ENCODING
|
#ifdef HAVE_OID_ENCODING
|
||||||
#define CODED_BRAINPOOLP224R1 {1,3,36,3,3,2,8,1,1,5}
|
#define CODED_BRAINPOOLP224R1 {1,3,36,3,3,2,8,1,1,5}
|
||||||
@ -738,6 +744,7 @@ const ecc_set_type ecc_sets[] = {
|
|||||||
#endif /* HAVE_ECC_SECPR2 */
|
#endif /* HAVE_ECC_SECPR2 */
|
||||||
#endif /* ECC128 */
|
#endif /* ECC128 */
|
||||||
#ifdef ECC160
|
#ifdef ECC160
|
||||||
|
#ifndef FP_ECC
|
||||||
#ifndef NO_ECC_SECP
|
#ifndef NO_ECC_SECP
|
||||||
{
|
{
|
||||||
20, /* size/bytes */
|
20, /* size/bytes */
|
||||||
@ -789,6 +796,7 @@ const ecc_set_type ecc_sets[] = {
|
|||||||
1, /* cofactor */
|
1, /* cofactor */
|
||||||
},
|
},
|
||||||
#endif /* HAVE_ECC_KOBLITZ */
|
#endif /* HAVE_ECC_KOBLITZ */
|
||||||
|
#endif /* !FP_ECC */
|
||||||
#ifdef HAVE_ECC_BRAINPOOL
|
#ifdef HAVE_ECC_BRAINPOOL
|
||||||
{
|
{
|
||||||
20, /* size/bytes */
|
20, /* size/bytes */
|
||||||
@ -912,7 +920,7 @@ const ecc_set_type ecc_sets[] = {
|
|||||||
1, /* cofactor */
|
1, /* cofactor */
|
||||||
},
|
},
|
||||||
#endif /* !NO_ECC_SECP */
|
#endif /* !NO_ECC_SECP */
|
||||||
#ifdef HAVE_ECC_KOBLITZ
|
#if defined(HAVE_ECC_KOBLITZ) && !defined(FP_ECC)
|
||||||
{
|
{
|
||||||
28, /* size/bytes */
|
28, /* size/bytes */
|
||||||
ECC_SECP224K1, /* ID */
|
ECC_SECP224K1, /* ID */
|
||||||
@ -928,7 +936,7 @@ const ecc_set_type ecc_sets[] = {
|
|||||||
ECC_SECP224K1_OID, /* oid sum */
|
ECC_SECP224K1_OID, /* oid sum */
|
||||||
1, /* cofactor */
|
1, /* cofactor */
|
||||||
},
|
},
|
||||||
#endif /* HAVE_ECC_KOBLITZ */
|
#endif /* HAVE_ECC_KOBLITZ && !FP_ECC */
|
||||||
#ifdef HAVE_ECC_BRAINPOOL
|
#ifdef HAVE_ECC_BRAINPOOL
|
||||||
{
|
{
|
||||||
28, /* size/bytes */
|
28, /* size/bytes */
|
||||||
|
Reference in New Issue
Block a user