/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef PKCS11Module_h #define PKCS11Module_h #include "ScopedNSSTypes.h" #include "nsIPKCS11Module.h" #include "nsISupports.h" #include "nsString.h" #if defined(NIGHTLY_BUILD) && !defined(MOZ_NO_SMART_CARDS) # include "mozilla/psm/PPKCS11Module.h" #endif // NIGHTLY_BUILD && !MOZ_NO_SMART_CARDS class PKCS11Module : public nsIPKCS11Module { public: NS_DECL_ISUPPORTS NS_DECL_NSIPKCS11MODULE explicit PKCS11Module(SECMODModule* module); #if defined(NIGHTLY_BUILD) && !defined(MOZ_NO_SMART_CARDS) nsresult GetModuleInfo(mozilla::psm::ModuleInfo& moduleInfo); #endif // NIGHTLY_BUILD && !MOZ_NO_SMART_CARDS protected: virtual ~PKCS11Module() = default; private: mozilla::UniqueSECMODModule mModule; }; #if defined(NIGHTLY_BUILD) && !defined(MOZ_NO_SMART_CARDS) class RemotePKCS11Module : public nsIPKCS11Module { public: NS_DECL_ISUPPORTS NS_DECL_NSIPKCS11MODULE explicit RemotePKCS11Module(const mozilla::psm::ModuleInfo& moduleInfo); protected: virtual ~RemotePKCS11Module() = default; private: mozilla::psm::ModuleInfo mModuleInfo; }; #endif // NIGHTLY_BUILD && !MOZ_NO_SMART_CARDS #endif // PKCS11Module_h