/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: TLSCertificateChain.hpp Date: 2022-8-27 Author: Reece ***/ #pragma once namespace Aurora::IO::TLS { struct CertificateChain : ICertificateChain, AuEnableSharedFromThis { CertificateChain(); ~CertificateChain(); virtual AuUInt32 GetCertificateCount() override; virtual AuSPtr GetCertificate(AuUInt32 idx) override; virtual Crypto::X509::DecodedCertificate GetCertificateDetails(AuUInt32 idx) override; bool Init(const AuList &certs); bool Init(const AuList &certs); bool Init(const AuMemoryViewRead &cert); bool Init(const mbedtls_x509_crt *pCert); bool Precache(); mbedtls_x509_crt *pCertificate; mbedtls_x509_crt ownCertificate {}; }; }