7#ifndef BOTAN_EC_INNER_DATA_BN_H_
8#define BOTAN_EC_INNER_DATA_BN_H_
10#include <botan/internal/ec_inner_data.h>
11#include <botan/internal/point_mul.h>
18 m_group(std::move(
group)), m_v(std::move(v)) {}
22 const std::shared_ptr<const EC_Group_Data>&
group()
const override;
24 std::unique_ptr<EC_Scalar_Data>
clone()
const override;
26 size_t bytes()
const override;
36 std::unique_ptr<EC_Scalar_Data>
negate()
const override;
38 std::unique_ptr<EC_Scalar_Data>
invert()
const override;
51 std::shared_ptr<const EC_Group_Data> m_group;
61 const std::shared_ptr<const EC_Group_Data>&
group()
const override;
63 std::unique_ptr<EC_AffinePoint_Data>
clone()
const override;
81 std::vector<BigInt>& ws)
const override;
86 std::shared_ptr<const EC_Group_Data> m_group;
103 std::shared_ptr<const EC_Group_Data> m_group;
void serialize_x_to(std::span< uint8_t > bytes) const override
const std::shared_ptr< const EC_Group_Data > & group() const override
EC_Point to_legacy_point() const override
EC_AffinePoint_Data_BN(std::shared_ptr< const EC_Group_Data > group, EC_Point pt)
void serialize_compressed_to(std::span< uint8_t > bytes) const override
std::unique_ptr< EC_AffinePoint_Data > mul(const EC_Scalar_Data &scalar, RandomNumberGenerator &rng, std::vector< BigInt > &ws) const override
std::unique_ptr< EC_AffinePoint_Data > clone() const override
size_t field_element_bytes() const override
bool is_identity() const override
void serialize_y_to(std::span< uint8_t > bytes) const override
void serialize_xy_to(std::span< uint8_t > bytes) const override
void serialize_uncompressed_to(std::span< uint8_t > bytes) const override
EC_Mul2Table_Data_BN(const EC_AffinePoint_Data &g, const EC_AffinePoint_Data &h)
bool mul2_vartime_x_mod_order_eq(const EC_Scalar_Data &v, const EC_Scalar_Data &x, const EC_Scalar_Data &y) const override
std::unique_ptr< EC_AffinePoint_Data > mul2_vartime(const EC_Scalar_Data &x, const EC_Scalar_Data &y) const override
std::unique_ptr< EC_Scalar_Data > invert() const override
std::unique_ptr< EC_Scalar_Data > clone() const override
std::unique_ptr< EC_Scalar_Data > negate() const override
const std::shared_ptr< const EC_Group_Data > & group() const override
bool is_zero() const override
std::unique_ptr< EC_Scalar_Data > sub(const EC_Scalar_Data &other) const override
void square_self() override
std::unique_ptr< EC_Scalar_Data > add(const EC_Scalar_Data &other) const override
std::unique_ptr< EC_Scalar_Data > mul(const EC_Scalar_Data &other) const override
const BigInt & value() const
void serialize_to(std::span< uint8_t > bytes) const override
static const EC_Scalar_Data_BN & checked_ref(const EC_Scalar_Data &data)
EC_Scalar_Data_BN(std::shared_ptr< const EC_Group_Data > group, BigInt v)
bool is_eq(const EC_Scalar_Data &y) const override
void assign(const EC_Scalar_Data &y) override
size_t bytes() const override
int(* final)(unsigned char *, CTX *)
std::vector< T, secure_allocator< T > > secure_vector