Skip to content

src/crypto/pbkdf2/pbkdf2_provider.hpp

Namespaces

Name
sgns
sgns::crypto

Classes

Name
class sgns::crypto::Pbkdf2Provider
Interface for PBKDF2 key derivation.

Types

Name
enum class Pbkdf2ProviderError

Functions

Name
OUTCOME_HPP_DECLARE_ERROR_2(sgns::crypto , Pbkdf2ProviderError )

Types Documentation

enum Pbkdf2ProviderError

Enumerator Value Description
KEY_DERIVATION_FAILED 1

Functions Documentation

function OUTCOME_HPP_DECLARE_ERROR_2

OUTCOME_HPP_DECLARE_ERROR_2(
    sgns::crypto ,
    Pbkdf2ProviderError 
)

Source code

#ifndef SUPERGENIUS_CRYPTO_PBKDF2_PROVIDER_HPP
#define SUPERGENIUS_CRYPTO_PBKDF2_PROVIDER_HPP

#include <gsl/span>
#include "base/buffer.hpp"
#include "outcome/outcome.hpp"

namespace sgns::crypto {

  enum class Pbkdf2ProviderError { KEY_DERIVATION_FAILED = 1 };

  class Pbkdf2Provider {
   public:
    virtual ~Pbkdf2Provider() = default;

    virtual outcome::result<base::Buffer> deriveKey(
        gsl::span<const uint8_t> data,
        gsl::span<const uint8_t> salt,
        size_t iterations,
        size_t key_length) const = 0;
  };
}  // namespace sgns::crypto

OUTCOME_HPP_DECLARE_ERROR_2(sgns::crypto, Pbkdf2ProviderError);

#endif  // SUPERGENIUS_CRYPTO_PBKDF2_PROVIDER_HPP

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