Skip to content

src/crypto/secp256k1_provider.hpp

Namespaces

Name
sgns
sgns::crypto

Classes

Name
class sgns::crypto::Secp256k1Provider
Interface for secp256k1 public key recovery.

Source code

#ifndef SUPERGENIUS_SRC_CRYPTO_SECP256K1_PROVIDER_HPP
#define SUPERGENIUS_SRC_CRYPTO_SECP256K1_PROVIDER_HPP

#include "crypto/secp256k1_types.hpp"
#include "outcome/outcome.hpp"

namespace sgns::crypto {
  class Secp256k1Provider {
   public:
    virtual ~Secp256k1Provider() = default;

    virtual outcome::result<secp256k1::UncompressedPublicKey>
    recoverPublickeyUncompressed(
        const secp256k1::RSVSignature &signature,
        const secp256k1::MessageHash &message_hash) const = 0;

    virtual outcome::result<secp256k1::CompressedPublicKey>
    recoverPublickeyCompressed(
        const secp256k1::RSVSignature &signature,
        const secp256k1::MessageHash &message_hash) const = 0;
  };

}  // namespace sgns::crypto

#endif

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