FastMM documentation
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
Loading...
Searching...
No Matches
fastmm::net::Ed25519Key Class Reference

A parsed Ed25519 key (private, or public only for verification). Move-only. More...

#include <fastmm/net/crypto.hpp>

Public Member Functions

 Ed25519Key () noexcept=default
 
 ~Ed25519Key ()
 
 Ed25519Key (Ed25519Key &&o) noexcept
 
Ed25519Key & operator= (Ed25519Key &&o) noexcept
 
 Ed25519Key (const Ed25519Key &)=delete
 
Ed25519Key & operator= (const Ed25519Key &)=delete
 
bool valid () const noexcept
 
bool has_private () const noexcept
 
bool sign (std::string_view data, std::span< std::uint8_t, kEd25519SignatureSize > out) const noexcept
 Writes the 64-byte signature; false without a private key.
 
std::size_t sign_base64 (std::string_view data, std::span< char > out) const noexcept
 Base64 signature into out (>= kEd25519Base64Size); returns bytes written, 0 on failure.
 
std::string sign_base64 (std::string_view data) const
 
bool verify (std::string_view data, std::span< const std::uint8_t > signature) const noexcept
 
bool verify_base64 (std::string_view data, std::string_view signature) const noexcept
 Verifies a base64 signature (Binance's signature parameter).
 
std::string public_pem () const
 "\--\---BEGIN PUBLIC KEY\--\---" PEM of the key (empty when invalid).
 

Static Public Member Functions

static Ed25519Key from_private_pem (std::string_view pem)
 PKCS#8 "PRIVATE KEY" PEM. Not valid() if the PEM is not an Ed25519 private key.
 
static Ed25519Key from_public_pem (std::string_view pem)
 SubjectPublicKeyInfo "PUBLIC KEY" PEM (what Binance asks for when registering the key).
 

Detailed Description

A parsed Ed25519 key (private, or public only for verification). Move-only.

Constructor & Destructor Documentation

◆ Ed25519Key() [1/3]

fastmm::net::Ed25519Key::Ed25519Key ( )
defaultnoexcept

◆ ~Ed25519Key()

fastmm::net::Ed25519Key::~Ed25519Key ( )

◆ Ed25519Key() [2/3]

fastmm::net::Ed25519Key::Ed25519Key ( Ed25519Key &&  o)
inlinenoexcept

◆ Ed25519Key() [3/3]

fastmm::net::Ed25519Key::Ed25519Key ( const Ed25519Key &  )
delete

Member Function Documentation

◆ operator=() [1/2]

Ed25519Key & fastmm::net::Ed25519Key::operator= ( Ed25519Key &&  o)
noexcept

◆ operator=() [2/2]

Ed25519Key & fastmm::net::Ed25519Key::operator= ( const Ed25519Key &  )
delete

◆ from_private_pem()

static Ed25519Key fastmm::net::Ed25519Key::from_private_pem ( std::string_view  pem)
static

PKCS#8 "PRIVATE KEY" PEM. Not valid() if the PEM is not an Ed25519 private key.

◆ from_public_pem()

static Ed25519Key fastmm::net::Ed25519Key::from_public_pem ( std::string_view  pem)
static

SubjectPublicKeyInfo "PUBLIC KEY" PEM (what Binance asks for when registering the key).

◆ valid()

bool fastmm::net::Ed25519Key::valid ( ) const
inlinenoexcept

◆ has_private()

bool fastmm::net::Ed25519Key::has_private ( ) const
inlinenoexcept

◆ sign()

bool fastmm::net::Ed25519Key::sign ( std::string_view  data,
std::span< std::uint8_t, kEd25519SignatureSize >  out 
) const
noexcept

Writes the 64-byte signature; false without a private key.

◆ sign_base64() [1/2]

std::size_t fastmm::net::Ed25519Key::sign_base64 ( std::string_view  data,
std::span< char >  out 
) const
noexcept

Base64 signature into out (>= kEd25519Base64Size); returns bytes written, 0 on failure.

◆ sign_base64() [2/2]

std::string fastmm::net::Ed25519Key::sign_base64 ( std::string_view  data) const

◆ verify()

bool fastmm::net::Ed25519Key::verify ( std::string_view  data,
std::span< const std::uint8_t >  signature 
) const
noexcept

◆ verify_base64()

bool fastmm::net::Ed25519Key::verify_base64 ( std::string_view  data,
std::string_view  signature 
) const
noexcept

Verifies a base64 signature (Binance's signature parameter).

◆ public_pem()

std::string fastmm::net::Ed25519Key::public_pem ( ) const

"\--\---BEGIN PUBLIC KEY\--\---" PEM of the key (empty when invalid).