account/GeniusSigner.hpp¶
In-memory Genius keypair and canonical signature operations.
Namespaces¶
| Name |
|---|
| sgns |
Classes¶
| Name | |
|---|---|
| class | sgns::GeniusSigner Owns a Genius keypair without imposing account persistence or lifecycle concerns. |
Source code¶
#ifndef SGNS_GENIUS_SIGNER_HPP
#define SGNS_GENIUS_SIGNER_HPP
#include <array>
#include <cstddef>
#include <cstdint>
#include <string>
#include <string_view>
#include <vector>
namespace sgns
{
class GeniusSigner
{
public:
static constexpr size_t PRIVATE_KEY_SIZE = 32;
using PrivateKey = std::array<uint8_t, PRIVATE_KEY_SIZE>;
static GeniusSigner Generate();
explicit GeniusSigner( const PrivateKey &private_key );
[[nodiscard]] std::string GetAddress() const;
[[nodiscard]] std::vector<uint8_t> Sign( const std::vector<uint8_t> &data ) const;
static bool VerifySignature( const std::string &address,
std::string_view signature,
const std::vector<uint8_t> &data );
static bool VerifySignature( const std::string &address,
const std::vector<uint8_t> &signature,
const std::vector<uint8_t> &data );
private:
static constexpr size_t SIGNATURE_SIZE = 64;
PrivateKey private_key_;
std::string address_;
};
} // namespace sgns
#endif // SGNS_GENIUS_SIGNER_HPP
Updated on 2026-08-28 at 01:08:43 +0000