Skip to content

src/crypto/ed25519/ed25519_provider_impl.hpp

Namespaces

Name
sgns
sgns::crypto

Classes

Name
class sgns::crypto::ED25519ProviderImpl

Source code

#ifndef SUPERGENIUS_SRC_CRYPTO_ED25519_ED25519_PROVIDER_IMPL_HPP
#define SUPERGENIUS_SRC_CRYPTO_ED25519_ED25519_PROVIDER_IMPL_HPP

#include "crypto/ed25519_provider.hpp"

namespace sgns::crypto {
  class ED25519ProviderImpl : public ED25519Provider {
   public:
    ~ED25519ProviderImpl() override = default;

    outcome::result<ED25519Keypair> generateKeypair() const override;

    ED25519Keypair generateKeypair(const ED25519Seed &seed) const override;

    outcome::result<sgns::crypto::ED25519Signature> sign(
        const ED25519Keypair &keypair,
        gsl::span<uint8_t> message) const override;

    outcome::result<bool> verify(
        const ED25519Signature &signature,
        gsl::span<uint8_t> message,
        const ED25519PublicKey &public_key) const override;

    std::string GetName() override
    {
      return "ED25519ProviderImpl";
    }
  };

}

#endif

Updated on 2026-03-04 at 13:10:44 -0800