9#ifndef BOTAN_ED448_INTERNAL_H_
10#define BOTAN_ED448_INTERNAL_H_
12#include <botan/internal/curve448_gf.h>
13#include <botan/internal/curve448_scalar.h>
28 static Ed448Point decode(std::span<const uint8_t, ED448_LEN> enc);
40 std::array<uint8_t, ED448_LEN> encode()
const;
70 void ct_conditional_assign(
bool cond,
const Ed448Point& other);
79Ed448Point
operator*(
const Scalar448& lhs,
const Ed448Point& rhs);
97 std::span<const uint8_t, ED448_LEN> pk,
99 std::span<const uint8_t> context,
100 std::span<const uint8_t> msg);
116 std::span<const uint8_t> context,
117 std::span<const uint8_t> sig,
118 std::span<const uint8_t> msg);
Representation of a point on the Ed448 curve.
Gf448Elem z_proj() const
Getter for projective coordinate Z.
Gf448Elem y() const
Getter for point coordinate y.
Gf448Elem x_proj() const
Getter for projective coordinate X.
Ed448Point(const Gf448Elem &x, const Gf448Elem &y)
Create a point from its coordinates x, y.
Ed448Point(const Gf448Elem &x, const Gf448Elem &y, const Gf448Elem &z)
Create a point from its projective coordinates X, Y, Z.
Gf448Elem y_proj() const
Getter for projective coordinate Y.
Gf448Elem x() const
Getter for point coordinate x.
Representation of a scalar for X448.
BigInt operator*(const BigInt &x, const BigInt &y)
std::array< uint8_t, ED448_LEN > create_pk_from_sk(std::span< const uint8_t, ED448_LEN > sk)
Create a public key point from a secret key (RFC 8032 5.2.5)
bool verify_signature(std::span< const uint8_t, ED448_LEN > pk, bool phflag, std::span< const uint8_t > context, std::span< const uint8_t > sig, std::span< const uint8_t > msg)
Verify a signature(RFC 8032 5.2.7)
OctetString operator+(const OctetString &k1, const OctetString &k2)
constexpr size_t ED448_LEN
bool operator==(const AlgorithmIdentifier &a1, const AlgorithmIdentifier &a2)
std::array< uint8_t, 2 *ED448_LEN > sign_message(std::span< const uint8_t, ED448_LEN > sk, std::span< const uint8_t, ED448_LEN > pk, bool pgflag, std::span< const uint8_t > context, std::span< const uint8_t > msg)
Sign a message using a keypair (RFC 8032 5.2.6)