Topic: the "a" param and "b" param in ECC

I found that the 'a' and 'b' param in " const ecc_set_type ecc_sets[]" is no-use.So I change them to some other numbers , the result is also correct!
So,In wolfssl, how does the 'a' and 'b' param influence the results?
smile  smile  smile


2 (edited by Kaleb J. Himes 2015-07-16 15:07:01)

Re: the "a" param and "b" param in ECC

Good Morning blink,

If that is the case it is indeed something we want to narrow down. Is there any way you could send us a list of your configure options (<wolfssl_root>/wolfssl/options.h) and where in the code you are modifying the values. Has your testing shown that modifying them in "one place only" gives these results or modifying in many different locations gives these results. How are you modifying them etc.

I ask because there are multiple ways of modifying them:

1. through importing with the pre-processor definition HAVE_COMP_KEY turned on

2. Manually changing the values in ecc.c where you mentioned const ecc_set_type ecc_sets[] however modifying in only one place may be wrapped in an #ifdef that is actually not defined therefore appearing to not influence the results when in fact that code is not getting compiled. Thus the request for your options.h

3. By hard coding them in ecc.h where they would be overwritten with the intended values at run-time.

More specifics would be highly helpful in exploring this behavior. Thank you so much for your post. I look forward to working with you to narrow this down.

Kind Regards,


3 (edited by Kaleb J. Himes 2015-07-16 15:57:04)

Re: the "a" param and "b" param in ECC

Hi again blink,

Upon further discussion we've realized what you accomplished by modifying our values. By changing those pre-defined values that define a specific Elliptic Curve you have in fact invented your own custom Elliptic Curve that works with itself however will not be interoperable with anyone else using ECC as they will not be using the same Elliptic Curve that you are.

Essentially you have created a bug that will be exposed between yourself and any other version of ECC out there, but you will never see an error in local testing as the bug exists internally in your library and therefore is picked up by any program using that library.

I hope this helps you understand the results you were seeing.

Kind Regards,