Botan 2.1.0 Crypto and TLS for C++11

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

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
LowLevel * | operator-> () const
Module & | operator= (Module &&other)=default
Module & | operator= (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

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_path | the path to the PKCS#11 shared library
  init_args | flags 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 }
Botan::PKCS11::Module::reload
void reload(C_InitializeArgs init_args={nullptr, nullptr, nullptr, nullptr, static_cast< CK_FLAGS >(Flag::OsLockingOk), nullptr})
Definition: p11_module.cpp:33

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

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

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

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 }
Botan::PKCS11::Info
CK_INFO Info
Definition: p11.h:833

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

Definition at line 56 of file p11_module.h.

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

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

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

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_args | flags 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 }
Botan::PKCS11::LowLevel::C_GetFunctionList
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:

- src/lib/prov/pkcs11/p11_module.h
- src/lib/prov/pkcs11/p11_module.cpp