std::unique_ptr<PK_Ops::Verification> make_openssl_ecdsa_ver_op(const ECDSA_PublicKey& key, const std::string& params) { const int nid = OpenSSL_EC_nid_for(key.domain().get_oid()); if(nid < 0) { throw Lookup_Error("OpenSSL ECDSA does not support this curve"); } return std::unique_ptr<PK_Ops::Verification>(new OpenSSL_ECDSA_Verification_Operation(key, params, nid)); }
ECDSA_Verification_Operation::ECDSA_Verification_Operation(const ECDSA_PublicKey& ecdsa) : base_point(ecdsa.domain().get_base_point()), public_point(ecdsa.public_point()), order(ecdsa.domain().get_order()) { }