9#include <userver/crypto/basic_types.hpp> 
   10#include <userver/utils/strong_typedef.hpp> 
   12USERVER_NAMESPACE_BEGIN
 
   23  using NativeType = EVP_PKEY;
 
   38  PublicKey() = 
default;
 
   40  NativeType* GetNative() 
const noexcept { 
return pkey_.get(); }
 
   41  explicit operator 
bool() 
const noexcept { 
return !!pkey_; }
 
   59                                         ExponentView exponent);
 
   68  explicit PublicKey(std::shared_ptr<NativeType> pkey)
 
   69      : pkey_(std::move(pkey)) {}
 
   71  std::shared_ptr<NativeType> pkey_;