add ref.hpp

This commit is contained in:
Eric Mertens 2025-01-28 19:04:36 -08:00
parent de19233dd7
commit 40bd9186da

18
ref.hpp Normal file
View File

@ -0,0 +1,18 @@
#pragma once
#include <openssl/evp.h>
#include <openssl/x509.h>
#include <memory>
template <typename T, void Free(T*)>
struct FnDeleter {
auto operator()(T *ptr) const -> void { Free(ptr); }
};
template <typename T, void(Free)(T*)>
using Ref = std::unique_ptr<T, FnDeleter<T, Free>>;
using EVP_PKEY_CTX_Ref = Ref<EVP_PKEY_CTX, EVP_PKEY_CTX_free>;
using X509_Ref = Ref<X509, X509_free>;
using EVP_PKEY_Ref = Ref<EVP_PKEY, EVP_PKEY_free>;