7#ifndef BOTAN_EC_SCALAR_H_
8#define BOTAN_EC_SCALAR_H_
10#include <botan/concepts.h>
11#include <botan/types.h>
72 std::span<const uint8_t>
bytes);
106 size_t bytes()
const;
113 void serialize_to(std::span<uint8_t> bytes)
const;
118 template <concepts::resizable_
byte_buffer T = std::vector<u
int8_t>>
130 static void serialize_pair_to(std::span<uint8_t> bytes,
const EC_Scalar& r,
const EC_Scalar& s);
135 template <concepts::resizable_
byte_buffer T = std::vector<u
int8_t>>
145 bool is_zero()
const;
228 static EC_Scalar _from_inner(std::unique_ptr<EC_Scalar_Data> inner);
233 EC_Scalar(std::unique_ptr<EC_Scalar_Data> scalar);
237 std::unique_ptr<EC_Scalar_Data> m_scalar;
#define BOTAN_PUBLIC_API(maj, min)
#define BOTAN_DEPRECATED(msg)
static EC_Scalar one(const EC_Group &group)
const EC_Scalar_Data & _inner() const
bool is_eq(const EC_Scalar &x) const
static std::optional< EC_Scalar > deserialize(const EC_Group &group, std::span< const uint8_t > bytes)
EC_Scalar mul(const EC_Scalar &x) const
EC_Scalar add(const EC_Scalar &x) const
friend EC_Scalar operator*(const EC_Scalar &x, const EC_Scalar &y)
static EC_Scalar gk_x_mod_order(const EC_Scalar &scalar, RandomNumberGenerator &rng)
void serialize_to(std::span< uint8_t > bytes) const
static EC_Scalar from_bigint(const EC_Group &group, const BigInt &bn)
static T serialize_pair(const EC_Scalar &r, const EC_Scalar &s)
friend EC_Scalar operator+(const EC_Scalar &x, const EC_Scalar &y)
static void serialize_pair_to(std::span< uint8_t > bytes, const EC_Scalar &r, const EC_Scalar &s)
EC_Scalar(const EC_Group &group, std::span< const uint8_t > bytes)
friend bool operator==(const EC_Scalar &x, const EC_Scalar &y)
static EC_Scalar from_bytes_mod_order(const EC_Group &group, std::span< const uint8_t > bytes)
static EC_Scalar random(const EC_Group &group, RandomNumberGenerator &rng)
EC_Scalar sub(const EC_Scalar &x) const
friend EC_Scalar operator-(const EC_Scalar &x, const EC_Scalar &y)
static std::optional< std::pair< EC_Scalar, EC_Scalar > > deserialize_pair(const EC_Group &group, std::span< const uint8_t > bytes)
friend class EC_AffinePoint
static EC_Scalar from_bytes_with_trunc(const EC_Group &group, std::span< const uint8_t > bytes)