Other Parts Discussed in Thread: CC1310, UNIFLASH
Hi,
I am trying to verify a signature that was signed by ECDSACng Dot Net library, but it always return invalid signature with the same public key corresponding to the private key which signed the data.
After several rounds of ensuring the inputs to the verify function on cc1310 is correct, I realized that when I run ECC_generateKey() with a random string, the random string will always become the private key, with public keys x and y.
I tried inputting the private key that was generated by OpenSSL which was used by ECDSACng Dot net library, into the ECC_generateKey() function on the CC1310, and as expected the random string became the private key, but what was interesting its the public key x and y were different as compared to the ones generated by OpenSSL.
This is strange as I thought that private keys only correspond to a single public key x and y (correct me if im wrong on this) for ECC/RSA asymmetric key schemes. This could either mean the ECC curve parameter is different, or there is something wrong in the key generation function. I have checked the ecc curve scheme used in OpenSSL for key generation, ECDSACng dot net lib and the CC1310, and it all uses the same curve which is P-256/secp256r1/prime256v1.
So I am currently stuck, are the keys from the same curve but different library not compatible with CC1310 ecc rom functions?
Edit: I was reviewing other questions, and I believe others have faced this issue of wrong public key generation too, see this. However the answer is pretty unsatisfactory as it just says it could be a possible bug in the library implentation