Question seems to be closed. secp256r1 Cryptopp representation not allows scalar multiplication for not-odd modulus. And from standard it is not-odd!
Some code if anybody wants to test for self. Params from here: http://www.secg.org/SEC2-Ver-1.0.pdf . CryptoPP::Integer m, a, b; CryptoPP::byte m_str[] = "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF"; CryptoPP::byte a_str[] = "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC"; CryptoPP::byte b_str[] = "5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B"; m.Decode(&(m_str[0]), sizeof(m_str) / sizeof(m_str[0]),CryptoPP::Integer:: UNSIGNED); a.Decode(&(a_str[0]), sizeof(a_str) / sizeof(a_str[0]), CryptoPP::Integer:: UNSIGNED); b.Decode(&(b_str[0]), sizeof(b_str) / sizeof(b_str[0]), CryptoPP::Integer:: UNSIGNED); bool is_odd = m.IsOdd(); CryptoPP::ECP field(m,a,b); //CryptoPP::DL_GroupPrecomputation<CryptoPP::ECP>::Element group(field); //multiplying over this field CryptoPP::ECPPoint p_result = field.ScalarMultiply(p_eph, priv_int); Why so? it is a standart curve, why not allowing scalar multiplication?! -- You received this message because you are subscribed to "Crypto++ Users". More information about Crypto++ and this group is available at http://www.cryptopp.com and http://groups.google.com/forum/#!forum/cryptopp-users. --- 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/d/optout.
