From 5bf8db41ef28859073a8dd3621b13341c6456d06 Mon Sep 17 00:00:00 2001 From: "Alexander A. Klimov" Date: Fri, 8 Dec 2023 10:35:14 +0100 Subject: [PATCH] CertificateToString(): allow raw pointer input --- lib/base/tlsutility.cpp | 4 ++-- lib/base/tlsutility.hpp | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/base/tlsutility.cpp b/lib/base/tlsutility.cpp index 5ca896580..6b40fc4e5 100644 --- a/lib/base/tlsutility.cpp +++ b/lib/base/tlsutility.cpp @@ -779,10 +779,10 @@ bool IsCaUptodate(X509* cert) return !CertExpiresWithin(cert, LEAF_VALID_FOR); } -String CertificateToString(const std::shared_ptr& cert) +String CertificateToString(X509* cert) { BIO *mem = BIO_new(BIO_s_mem()); - PEM_write_bio_X509(mem, cert.get()); + PEM_write_bio_X509(mem, cert); char *data; long len = BIO_get_mem_data(mem, &data); diff --git a/lib/base/tlsutility.hpp b/lib/base/tlsutility.hpp index c9ade9f13..bbb3d7207 100644 --- a/lib/base/tlsutility.hpp +++ b/lib/base/tlsutility.hpp @@ -55,7 +55,12 @@ int MakeX509CSR(const String& cn, const String& keyfile, const String& csrfile = std::shared_ptr CreateCert(EVP_PKEY *pubkey, X509_NAME *subject, X509_NAME *issuer, EVP_PKEY *cakey, bool ca); String GetIcingaCADir(); -String CertificateToString(const std::shared_ptr& cert); +String CertificateToString(X509* cert); + +inline String CertificateToString(const std::shared_ptr& cert) +{ + return CertificateToString(cert.get()); +} std::shared_ptr StringToCertificate(const String& cert); std::shared_ptr CreateCertIcingaCA(EVP_PKEY *pubkey, X509_NAME *subject, bool ca = false);