9#include <userver/crypto/basic_types.hpp> 
   11USERVER_NAMESPACE_BEGIN
 
   20  using NativeType = EVP_PKEY;
 
   22  PrivateKey() = 
default;
 
   24  NativeType* GetNative() 
const noexcept { 
return pkey_.get(); }
 
   25  explicit operator 
bool() 
const noexcept { 
return !!pkey_; }
 
   33                                   std::string_view password);
 
   43  explicit PrivateKey(std::shared_ptr<NativeType> pkey)
 
   44      : pkey_(std::move(pkey)) {}
 
   46  std::shared_ptr<NativeType> pkey_{};