module GPGME::Engine

Convenience methods to check different aspects of the gpg system installation.

Public Class Methods

check_version(proto) click to toggle source

Verify that the engine implementing the protocol proto is installed in the system. Can be one of PROTOCOL_OpenPGP or PROTOCOL_CMS.

@return [Boolean] true if the engine is installed.

@example

GPGME::Engine.check_version(GPGME::PROTOCOL_OpenPGP) # => true
# File lib/gpgme/engine.rb, line 18
def check_version(proto)
  err = GPGME::gpgme_engine_check_version(proto)
  exc = GPGME::error_to_exception(err)
  !exc
end
home_dir=(home_dir) click to toggle source

Sets the home dir for the configuration options. This way one could, for example, load the keys from a customized keychain.

@example

GPGME::Engine.home_dir = '/tmp'
# File lib/gpgme/engine.rb, line 70
def home_dir=(home_dir)
  current = info.first
  set_info current.protocol, current.file_name, home_dir
end
info() click to toggle source

Return an array of {GPGME::EngineInfo} structures of enabled engines.

@example

GPGME::Engine.info.first
# => #<GPGME::EngineInfo:0x00000100d4fbd8
       @file_name="/usr/local/bin/gpg",
       @protocol=0,
       @req_version="1.3.0",
       @version="1.4.11">
# File lib/gpgme/engine.rb, line 35
def info
  rinfo = []
  GPGME::gpgme_get_engine_info(rinfo)
  rinfo
end
set_info(proto, file_name, home_dir) click to toggle source

Change the default configuration of the crypto engine implementing protocol proto.

@param proto

Can be one of +PROTOCOL_OpenPGP+ or +PROTOCOL_CMS+.

@param file_name

The file name of the executable program implementing the protocol.

@param home_dir

The directory name of the configuration directory.

@example

GPGME::Engine.set
# File lib/gpgme/engine.rb, line 57
def set_info(proto, file_name, home_dir)
  err = GPGME::gpgme_set_engine_info(proto, file_name, home_dir)
  exc = GPGME::error_to_exception(err)
  raise exc if exc
end