<commit_before>#pragma once

/**
 * \file sal/crypto/key.hpp
 */


#include <sal/config.hpp>
#include <sal/crypto/__bits/x509.hpp>


__sal_begin


namespace crypto {


class public_key_t
{
public:

  public_key_t () = default;
  public_key_t (public_key_t &&) = default;
  public_key_t &operator= (public_key_t &&) = default;

  public_key_t (const public_key_t &) = delete;
  public_key_t &operator= (const public_key_t &) = delete;


  /**
   */
  void swap (public_key_t &that) noexcept
  {
    impl_.swap(that.impl_);
  }


  /**
   */
  bool is_null () const noexcept
  {
    return impl_.is_null();
  }


  /**
   */
  explicit operator bool () const noexcept
  {
    return !is_null();
  }


private:

  __bits::public_key_t impl_{};

  public_key_t (__bits::public_key_t &&that) noexcept
    : impl_(std::move(that))
  {}

  friend class certificate_t;
};


} // namespace crypto


__sal_end<commit_msg>crypto: private_key_t wrapper, no functionality yet (MacOS)<commit_after>#pragma once

/**
 * \file sal/crypto/key.hpp
 */


#include <sal/config.hpp>
#include <sal/crypto/__bits/x509.hpp>


__sal_begin


namespace crypto {


class public_key_t
{
public:

  public_key_t () = default;
  public_key_t (public_key_t &&) = default;
  public_key_t &operator= (public_key_t &&) = default;

  public_key_t (const public_key_t &) = delete;
  public_key_t &operator= (const public_key_t &) = delete;


  /**
   */
  void swap (public_key_t &that) noexcept
  {
    impl_.swap(that.impl_);
  }


  /**
   */
  bool is_null () const noexcept
  {
    return impl_.is_null();
  }


  /**
   */
  explicit operator bool () const noexcept
  {
    return !is_null();
  }


private:

  __bits::public_key_t impl_{};

  public_key_t (__bits::public_key_t &&that) noexcept
    : impl_(std::move(that))
  {}

  friend class certificate_t;
};


class private_key_t
{
public:

  private_key_t () = default;
  private_key_t (private_key_t &&) = default;
  private_key_t &operator= (private_key_t &&) = default;

  private_key_t (const private_key_t &) = delete;
  private_key_t &operator= (const private_key_t &) = delete;


  /**
   */
  void swap (private_key_t &that) noexcept
  {
    impl_.swap(that.impl_);
  }


  /**
   */
  bool is_null () const noexcept
  {
    return impl_.is_null();
  }


  /**
   */
  explicit operator bool () const noexcept
  {
    return !is_null();
  }


private:

  __bits::private_key_t impl_{};

  private_key_t (__bits::private_key_t &&that) noexcept
    : impl_(std::move(that))
  {}

  friend class certificate_t;
};


} // namespace crypto


__sal_end
{'fraction_non_alphanumeric': 0.1375968992248062, 'fraction_numerical': 0.002325581395348837, 'mean_word_length': 3.238095238095238, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1503221', 'n_tokens_mistral': 1009, 'n_tokens_neox': 957, 'n_words': 186}