GpgFrontend Project A Free, Powerful, Easy-to-Use, Compact, Cross-Platform, and Installation-Free OpenPGP(pgp) Crypto Tool.

Classes | Signals | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
GpgFrontend::GpgContext Class Reference
Inheritance diagram for GpgFrontend::GpgContext:
Collaboration diagram for GpgFrontend::GpgContext:

## Classes
struct | _ctx_ref_deleter

## Signals
void | SignalNeedUserInputPassphrase ()

## Public Member Functions
| GpgContext (const GpgContextInitArgs &args={})
| Construct a new Gpg Context object. More...
| GpgContext (int channel)
| Construct a new Gpg Context object. More...
| ~GpgContext () override=default
| Destroy the Gpg Context object.
bool | good () const
const GpgInfo & | GetInfo (bool refresh=false)
| Get the Info object. More...
| operator gpgme_ctx_t () const
void | SetPassphraseCb (gpgme_passphrase_cb_t func) const
| Set the Passphrase Cb object. More...
Public Member Functions inherited from GpgFrontend::SingletonFunctionObject< GpgContext >
| SingletonFunctionObject (const SingletonFunctionObject< GpgContext > &)=delete
| prohibit copy
| SingletonFunctionObject (GpgContext &&)=delete
| Construct a new Singleton Function Object object.
| SingletonFunctionObject (const GpgContext &)=delete
| Construct a new Singleton Function Object object.
SingletonFunctionObject & | operator= (const SingletonFunctionObject< GpgContext > &)=delete
| prohibit copy More...
void | operator= (const GpgContext &)=delete
int | GetChannel () const
| Get the Channel object. More...
Public Member Functions inherited from GpgFrontend::ChannelObject
| ChannelObject () noexcept
| Construct a new Default Channel Object object.
| ChannelObject (int channel)
| Construct a new Channel Object object. More...
int | GetChannel () const
| Get the Channel object. More...
void | SetChannel (int channel)
| Set the Channel object. More...

## Static Public Member Functions
static gpgme_error_t | test_passphrase_cb (void *opaque, const char *uid_hint, const char *passphrase_info, int last_was_bad, int fd)
static gpgme_error_t | custom_passphrase_cb (void *opaque, const char *uid_hint, const char *passphrase_info, int last_was_bad, int fd)
static gpgme_error_t | test_status_cb (void *hook, const char *keyword, const char *args)
Static Public Member Functions inherited from GpgFrontend::SingletonFunctionObject< GpgContext >
static GpgContext & | GetInstance (int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
| Get the Instance object. More...
static GpgContext & | CreateInstance (int channel, std::function< std::unique_ptr< ChannelObject >(void)> factory)
| Create a Instance object. More...
static void | ReleaseChannel (int channel)
static int | GetDefaultChannel ()
| Get the Default Channel object. More...
static std::vector< int > | GetAllChannelId ()
| Get all the channel ids. More...
Static Public Member Functions inherited from GpgFrontend::ChannelObject
static int | GetDefaultChannel ()
| Get the Default Channel object. More...

## Private Types
using | CtxRefHandler = std::unique_ptr< struct gpgme_context, _ctx_ref_deleter >

## Private Member Functions
void | post_init_ctx ()
std::string | need_user_input_passphrase ()
std::optional< std::string > | check_binary_chacksum (std::filesystem::path)
| Construct a new std::check component existence object.

## Private Attributes
GpgInfo | info_ {}
GpgContextInitArgs | args_ {}
bool | extend_info_loaded_ = false
std::shared_mutex | preload_lock_ {}
CtxRefHandler | _ctx_ref = nullptr
bool | good_ = true

## Additional Inherited Members
Protected Member Functions inherited from GpgFrontend::SingletonFunctionObject< GpgContext >
| SingletonFunctionObject ()=default
| Construct a new Singleton Function Object object.
| SingletonFunctionObject (int channel)
| Construct a new Singleton Function Object object. More...
virtual | ~SingletonFunctionObject ()=default
| Destroy the Singleton Function Object object.

## Constructor & Destructor Documentation

## ◆ GpgContext() [1/2]

GpgFrontend::GpgContext::GpgContext | ( | const GpgContextInitArgs & | args = `{}` | ) |
| explicit

Construct a new Gpg Context object.

Parameters

  args | Constructor Set up gpgme-context, set paths to app-run path

References GpgFrontend::GpgInfo::AppPath, GpgFrontend::GpgInfo::AssuanPath, GpgFrontend::check_gpg_error(), GpgFrontend::check_gpg_error_2_err_code(), GpgFrontend::GpgInfo::CMSPath, GpgFrontend::GpgInfo::DatabasePath, GpgFrontend::SingletonFunctionObject< TaskRunnerGetter >::GetInstance(), GpgFrontend::GpgInfo::GnupgVersion, GpgFrontend::GpgInfo::GpgConfPath, and post_init_ctx().

## ◆ GpgContext() [2/2]

GpgFrontend::GpgContext::GpgContext | ( | int | channel | ) |
| explicit

Construct a new Gpg Context object.

Parameters

  channel |

## Member Function Documentation

## ◆ custom_passphrase_cb()

gpgme_error_t GpgFrontend::GpgContext::custom_passphrase_cb | ( | void * | opaque,
|  | const char * | uid_hint,
|  | const char * | passphrase_info,
|  | int | last_was_bad,
|  | int | fd
| ) |  |
| static

Parameters

  opaque |
  uid_hint |
  passphrase_info |
  last_was_bad |
  fd |

Returns
  gpgme_error_t

References GpgFrontend::CoreCommonUtil::GetInstance(), GpgFrontend::SingletonFunctionObject< GpgContext >::GetInstance(), GpgFrontend::CoreCommonUtil::GetTempCacheValue(), and need_user_input_passphrase().

Referenced by post_init_ctx().

## ◆ GetInfo()

const GpgInfo & GpgFrontend::GpgContext::GetInfo | ( | bool | refresh = `false` | ) |

Get the Info object.

Returns
  const GpgInfo&

References check_binary_chacksum(), GpgFrontend::GpgInfo::DirmngrPath, GpgFrontend::GpgCommandExecutor::Execute(), GpgFrontend::SingletonFunctionObject< GpgCommandExecutor >::GetInstance(), GpgFrontend::GpgInfo::GnuPGHomePath, GpgFrontend::GpgInfo::GnupgVersion, GpgFrontend::GpgInfo::GpgAgentPath, GpgFrontend::GpgInfo::GpgConfPath, and GpgFrontend::GpgInfo::KeyboxdPath.

Referenced by post_init_ctx(), and GpgFrontend::UI::CommonUtils::SlotExecuteGpgCommand().

## ◆ good()

bool GpgFrontend::GpgContext::good | ( |  | ) | const

Returns
  true
  false

## ◆ need_user_input_passphrase()

std::string GpgFrontend::GpgContext::need_user_input_passphrase | ( |  | ) |
| private

Returns
  std::string

References GpgFrontend::CoreSignalStation::GetInstance().

Referenced by custom_passphrase_cb().

## ◆ operator gpgme_ctx_t()

GpgFrontend::GpgContext::operator gpgme_ctx_t | ( |  | ) | const
| inline

Returns
  gpgme_ctx_t

## ◆ post_init_ctx()

void GpgFrontend::GpgContext::post_init_ctx | ( |  | ) |
| private

Setting the output type must be done at the beginning

think this means ascii-armor --> ?

Setting the output type must be done at the beginning

think this means ascii-armor --> ?

References GpgFrontend::GpgInfo::AppPath, GpgFrontend::check_gpg_error(), GpgFrontend::check_gpg_error_2_err_code(), custom_passphrase_cb(), GpgFrontend::GpgInfo::DatabasePath, GetInfo(), GpgFrontend::CoreSignalStation::GetInstance(), GpgFrontend::GpgInfo::GnupgVersion, SetPassphraseCb(), test_passphrase_cb(), and test_status_cb().

Referenced by GpgContext().

## ◆ SetPassphraseCb()

void GpgFrontend::GpgContext::SetPassphraseCb | ( | gpgme_passphrase_cb_t | func | ) | const

Set the Passphrase Cb object.

Parameters

  func |

References GpgFrontend::GpgInfo::GnupgVersion.

Referenced by post_init_ctx().

## ◆ test_passphrase_cb()

gpgme_error_t GpgFrontend::GpgContext::test_passphrase_cb | ( | void * | opaque,
|  | const char * | uid_hint,
|  | const char * | passphrase_info,
|  | int | last_was_bad,
|  | int | fd
| ) |  |
| static

Parameters

  opaque |
  uid_hint |
  passphrase_info |
  last_was_bad |
  fd |

Returns
  gpgme_error_t

Referenced by post_init_ctx().

## ◆ test_status_cb()

gpgme_error_t GpgFrontend::GpgContext::test_status_cb | ( | void * | hook,
|  | const char * | keyword,
|  | const char * | args
| ) |  |
| static

Parameters

  hook |
  keyword |
  args |

Returns
  gpgme_error_t

Referenced by post_init_ctx().

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

- src/core/GpgContext.h
- src/core/GpgContext.cpp