56 BOTAN_DEPRECATED(
"Use version taking all BigInts")
64 base_point.get_affine_x(),
65 base_point.get_affine_y(),
94 explicit EC_Group(
const uint8_t ber[],
size_t ber_len);
96 template<
typename Alloc>
97 EC_Group(
const std::vector<uint8_t, Alloc>& ber) :
114 explicit EC_Group(
const std::string& pem_or_oid);
116 static EC_Group EC_Group_from_PEM(
const std::string& pem);
142 std::string PEM_encode()
const;
148 BOTAN_DEPRECATED(
"Avoid CurveGFp") const
CurveGFp& get_curve() const;
153 bool a_is_minus_3() const;
158 bool a_is_zero() const;
163 size_t get_p_bits() const;
168 size_t get_p_bytes() const;
173 size_t get_order_bits() const;
178 size_t get_order_bytes() const;
183 const
BigInt& get_p() const;
188 const
BigInt& get_a() const;
193 const
BigInt& get_b() const;
199 const
PointGFp& get_base_point() const;
204 const
BigInt& get_g_x() const;
209 const
BigInt& get_g_y() const;
215 const
BigInt& get_order() const;
246 const
BigInt& get_cofactor() const;
254 bool verify_public_element(const
PointGFp& y) const;
260 std::
string BOTAN_DEPRECATED("Use get_curve_oid") get_oid()
const {
return get_curve_oid().to_string(); }
266 const OID& get_curve_oid()
const;
288 std::vector<BigInt>& ws)
const;
301 std::vector<BigInt>& ws)
const;
314 std::vector<BigInt>& ws)
const;
330 template<
typename Alloc>
333 return this->
OS2ECP(vec.data(), vec.size());
343 bool strong =
false)
const;
353 static std::string BOTAN_DEPRECATED(
"See header comment") PEM_for_named_group(const
std::
string&
name);
358 static const
std::set<
std::
string>& known_named_groups();
363 static
std::shared_ptr<EC_Group_Data> EC_group_info(const
OID& oid);
365 static
size_t clear_registered_curve_data();
368 static EC_Group_Data_Map& ec_group_data();
370 static
std::shared_ptr<EC_Group_Data> BER_decode_EC_group(const uint8_t bits[],
size_t len,
373 static
std::shared_ptr<EC_Group_Data>
374 load_EC_group_info(const
char* p,
383 const EC_Group_Data& data() const;
384 std::shared_ptr<EC_Group_Data> m_data;