/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #pragma once #include "OdCryptoServices/OdAlternativeCertificateStore.h" #include #include "TD_PackPush.h" class OdAlternativeCertificateStoreWinImpl : public OdAlternativeCertificateStore { public: ODRX_DECLARE_MEMBERS(OdAlternativeCertificateStoreWinImpl); OdAlternativeCertificateStoreWinImpl(); ~OdAlternativeCertificateStoreWinImpl(); virtual OdUInt32 getPersonalCertsWithTrustedStatus(OdArray& certificates) const; virtual OdCertificateObjectPtr getCertObjByShortDesc(const OdCertificateShortDesc& certShortDesc) const; virtual bool isTrusted(OdCertificateObjectPtr cert) const; virtual void setCertsDirectory(const OdString& dir); virtual OdString certsDirectory() const; virtual void setPrivateKeysDirectory(const OdString& dir); virtual OdString privateKeysDirectory() const; virtual void setCaDirectory(const OdString& dir); virtual OdString caDirectory() const; virtual void setCaBundleFile(const OdString& fullPathToCaBundle); virtual OdString caBundleFile() const; virtual void setAllowSelfSignedCerts(bool allow); virtual void getAllPrivateKeyFileNames(OdStringArray& privateKeyFileNames); private: void ensureLoaded() const; void loadCertificates() const; void loadCACertificates() const; void loadCABundle() const; mutable HCERTSTORE m_hMemoryStore; OdString m_certsDir; OdString m_privateKeysDir; OdString m_caDirectory; OdString m_caBundleFile; mutable bool m_loaded; mutable OdArray m_certFileNames; mutable OdArray m_privateKeyFileNames; mutable OdArray m_certObjects; bool m_allowSelfSignedCerts; }; #include "TD_PackPop.h"