Never mind, I'm an idiot. I was using the wrong curve. secp256r1 instead of secp256k1.
On Sunday, May 19, 2013 2:18:48 AM UTC-4, Connor Huffine wrote: > > For some reason, my code is not giving me proper pairs; it gives me a > private key that doesn't correspond to the public key I'm generating. > Everything is in hex. > Example: > private key: > e6d9f1845ccf7effe2e0a4d79a4adf59ab421e71127d16ff00c12b4a20d22d8d > x: ac43191cb357b72cbbcc26688ffefa9f5a1524ea5a19512bde902a3a823ca7ca > y: 21d409304f6bbc829e04793718929b0115e7daae6e6d4bc11a7fe405783a942e > compressed: > 03ac43191cb357b72cbbcc26688ffefa9f5a1524ea5a19512bde902a3a823ca7ca > > Brick o' code: > > AutoSeededRandomPool prng; > ECDSA<ECP, SHA256>::PrivateKey privateKey; > ECDSA<ECP, SHA256>::PublicKey publicKey; > privateKey.Initialize( prng, CryptoPP::ASN1::secp256r1()); > > bool result = privateKey.Validate( prng, 3 ); > cout << "valid: " << result << endl << endl; > > const Integer& x1 = privateKey.GetPrivateExponent(); > cout << "priv: " << std::hex << x1 << endl; > > privateKey.MakePublicKey(publicKey); > > result = publicKey.Validate( prng, 3 ); > cout << "valid: " << result << endl << endl; > > Integer qx = publicKey.GetPublicElement().x; > Integer qy = publicKey.GetPublicElement().y; > > cout << "pub x: " << std::hex << qx << endl; > cout << "pub y: " << std::hex << qy << endl; > > What've I done wrong? > -- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to [email protected]. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
