Botan  2.8.0
Crypto and TLS for C++11
Public Member Functions | List of all members
Botan::PKCS11::Module Class Referencefinal

#include <p11_module.h>

Public Member Functions

Info get_info () const
 
 Module (const std::string &file_path, C_InitializeArgs init_args={ nullptr, nullptr, nullptr, nullptr, static_cast< CK_FLAGS >(Flag::OsLockingOk), nullptr })
 
 Module (Module &&other)=default
 
 Module (const Module &other)=delete
 
LowLeveloperator-> () const
 
Moduleoperator= (Module &&other)=default
 
Moduleoperator= (const Module &other)=delete
 
void reload (C_InitializeArgs init_args={ nullptr, nullptr, nullptr, nullptr, static_cast< CK_FLAGS >(Flag::OsLockingOk), nullptr })
 
 ~Module () BOTAN_NOEXCEPT
 Calls C_Finalize() More...
 

Detailed Description

Loads the PKCS#11 shared library Calls C_Initialize on load and C_Finalize on destruction

Definition at line 25 of file p11_module.h.

Constructor & Destructor Documentation

◆ Module() [1/3]

Botan::PKCS11::Module::Module ( const std::string &  file_path,
C_InitializeArgs  init_args = { nullptr, nullptr, nullptr, nullptr, static_cast< CK_FLAGS >(Flag::OsLockingOk), nullptr } 
)

Loads the shared library and calls C_Initialize

Parameters
file_paththe path to the PKCS#11 shared library
init_argsflags to use for C_Initialize

Definition at line 15 of file p11_module.cpp.

References reload().

16  : m_file_path(file_path)
17  {
18  reload(init_args);
19  }
void reload(C_InitializeArgs init_args={ nullptr, nullptr, nullptr, nullptr, static_cast< CK_FLAGS >(Flag::OsLockingOk), nullptr })
Definition: p11_module.cpp:33

◆ Module() [2/3]

Botan::PKCS11::Module::Module ( Module &&  other)
default

◆ Module() [3/3]

Botan::PKCS11::Module::Module ( const Module other)
delete

◆ ~Module()

Botan::PKCS11::Module::~Module ( )

Calls C_Finalize()

Definition at line 21 of file p11_module.cpp.

22  {
23  try
24  {
25  m_low_level->C_Finalize(nullptr, nullptr);
26  }
27  catch(...)
28  {
29  // we are noexcept and must swallow any exception here
30  }
31  }

Member Function Documentation

◆ get_info()

Info Botan::PKCS11::Module::get_info ( ) const
inline
Returns
general information about Cryptoki

Definition at line 62 of file p11_module.h.

63  {
64  Info info;
65  m_low_level->C_GetInfo(&info);
66  return info;
67  }
CK_INFO Info
Definition: p11.h:833

◆ operator->()

LowLevel* Botan::PKCS11::Module::operator-> ( ) const
inline

Definition at line 56 of file p11_module.h.

57  {
58  return m_low_level.get();
59  }

◆ operator=() [1/2]

Module& Botan::PKCS11::Module::operator= ( Module &&  other)
default

◆ operator=() [2/2]

Module& Botan::PKCS11::Module::operator= ( const Module other)
delete

◆ reload()

void Botan::PKCS11::Module::reload ( C_InitializeArgs  init_args = { nullptr, nullptr, nullptr, nullptr, static_cast< CK_FLAGS >(Flag::OsLockingOk), nullptr })

Reloads the module and reinitializes it

Parameters
init_argsflags to use for C_Initialize

Definition at line 33 of file p11_module.cpp.

References Botan::PKCS11::LowLevel::C_GetFunctionList().

Referenced by Module().

34  {
35  if(m_low_level)
36  {
37  m_low_level->C_Finalize(nullptr);
38  }
39 
40  m_library.reset(new Dynamically_Loaded_Library(m_file_path));
41  LowLevel::C_GetFunctionList(*m_library, &m_func_list);
42  m_low_level.reset(new LowLevel(m_func_list));
43 
44  m_low_level->C_Initialize(&init_args);
45  }
static bool C_GetFunctionList(Dynamically_Loaded_Library &pkcs11_module, FunctionListPtr *function_list_ptr_ptr, ReturnValue *return_value=ThrowException)
Definition: p11.cpp:102

The documentation for this class was generated from the following files: