def set_engine_info(proto, file_name, home_dir=None): """Changes the default configuration of the crypto engine implementing the protocol 'proto'. 'file_name' is the file name of the executable program implementing this protocol. 'home_dir' is the directory name of the configuration directory (engine's default is used if omitted).""" errorcheck(pygpgme.gpgme_set_engine_info(proto, file_name, home_dir))
def new_from_filepart(self, file, offset, length): """This wraps the GPGME gpgme_data_new_from_filepart() function. The argument "file" may be: 1. a string specifying a file name, or 3. a a file-like object. supporting the fileno() call and the mode attribute.""" tmp = pygpgme.new_gpgme_data_t_p() filename = None fp = None if type(file) == type("x"): filename = file else: fp = pygpgme.fdopen(file.fileno(), file.mode) if fp == None: raise ValueError, "Failed to open file from %s arg %s" % \ (str(type(file)), str(file)) errorcheck( pygpgme.gpgme_data_new_from_filepart(tmp, filename, fp, offset, length)) self.wrapped = pygpgme.gpgme_data_t_p_value(tmp) pygpgme.delete_gpgme_data_t_p(tmp)
def get_key(self, fpr, secret): """Return the key corresponding to the fingerprint 'fpr'""" ptr = pygpgme.new_gpgme_key_t_p() errorcheck(pygpgme.gpgme_get_key(self.wrapped, fpr, ptr, secret)) key = pygpgme.gpgme_key_t_p_value(ptr) pygpgme.delete_gpgme_key_t_p(ptr) if key: key.__del__ = lambda self: pygpgme.gpgme_key_unref(self) return key
def get_engine_info(): ptr = pygpgme.new_gpgme_engine_info_t_p() try: errorcheck(pygpgme.gpgme_get_engine_info(ptr)) info = pygpgme.gpgme_engine_info_t_p_value(ptr) except errors.GPGMEError: info = None pygpgme.delete_gpgme_engine_info_t_p(ptr) return info
def __init__(self, wrapped=None): if wrapped: self.wrapped = wrapped self.own = False else: tmp = pygpgme.new_gpgme_ctx_t_p() errorcheck(pygpgme.gpgme_new(tmp)) self.wrapped = pygpgme.gpgme_ctx_t_p_value(tmp) pygpgme.delete_gpgme_ctx_t_p(tmp) self.own = True self.last_passcb = None self.last_progresscb = None
def op_trustlist_next(self): """Returns the next trust item in the list created by a call to op_trustlist_start(). The object returned is of type TrustItem.""" ptr = pygpgme.new_gpgme_trust_item_t_p() try: errorcheck(pygpgme.gpgme_op_trustlist_next(self.wrapped, ptr)) trust = pygpgme.gpgme_trust_item_t_p_value(ptr) except errors.GPGMEError, excp: trust = None if excp.getcode() != errors.EOF: raise
def op_keylist_next(self): """Returns the next key in the list created by a call to op_keylist_start(). The object returned is of type Key.""" ptr = pygpgme.new_gpgme_key_t_p() try: errorcheck(pygpgme.gpgme_op_keylist_next(self.wrapped, ptr)) key = pygpgme.gpgme_key_t_p_value(ptr) except errors.GPGMEError, excp: key = None if excp.getcode() != errors.EOF: raise excp
def new_from_fd(self, file): """This wraps the GPGME gpgme_data_new_from_fd() function. The argument "file" may be a file-like object, supporting the fileno() call and the mode attribute.""" tmp = pygpgme.new_gpgme_data_t_p() fp = pygpgme.fdopen(file.fileno(), file.mode) if fp == None: raise ValueError, "Failed to open file from %s arg %s" % \ (str(type(file)), str(file)) errorcheck(gpgme_data_new_from_fd(tmp, fp)) self.wrapped = pygpgme.gpgme_data_t_p_value(tmp) pygpgme.delete_gpgme_data_t_p(tmp)
def wait(hang): """Wait for asynchronous call on any Context to finish. Wait forever if hang is True. For finished anynch calls it returns a tuple (status, context): status - status return by asnynchronous call. context - context which caused this call to return. Please read the GPGME manual of more information.""" ptr = pygpgme.new_gpgme_error_t_p() context = pygpgme.gpgme_wait(None, ptr, hang) status = pygpgme.gpgme_error_t_p_value(ptr) pygpgme.delete_gpgme_error_t_p(ptr) if context == None: errorcheck(status) else: context = Context(context) return (status, context)
def wait(self, hang): """Wait for asynchronous call to finish. Wait forever if hang is True Return: On an async call completion its return status. On timeout - None. Please read the GPGME manual for more information.""" ptr = pygpgme.new_gpgme_error_t_p() context = pygpgme.gpgme_wait(self.wrapped, ptr, hang) status = pygpgme.gpgme_error_t_p_value(ptr) pygpgme.delete_gpgme_error_t_p(ptr) if context == None: errorcheck(status) return None else: return status
def new_from_filepart(self, file, offset, length): """This wraps the GPGME gpgme_data_new_from_filepart() function. The argument "file" may be: 1. a string specifying a file name, or 3. a a file-like object. supporting the fileno() call and the mode attribute.""" tmp = pygpgme.new_gpgme_data_t_p() filename = None fp = None if type(file) == type("x"): filename = file else: fp = pygpgme.fdopen(file.fileno(), file.mode) if fp == None: raise ValueError, "Failed to open file from %s arg %s" % \ (str(type(file)), str(file)) errorcheck(pygpgme.gpgme_data_new_from_filepart(tmp, filename, fp, offset, length)) self.wrapped = pygpgme.gpgme_data_t_p_value(tmp) pygpgme.delete_gpgme_data_t_p(tmp)
def op_edit(self, key, func, fnc_value, out): """Start key editing using supplied callback function""" if key == None: raise ValueError("op_edit: First argument cannot be None") opaquedata = (func, fnc_value) errorcheck(pygpgme.gpgme_op_edit(self.wrapped, key, opaquedata, out))
def set_locale(category, value): """Sets the default locale used by contexts""" errorcheck(pygpgme.gpgme_set_locale(None, category, value))
def new(self): tmp = pygpgme.new_gpgme_data_t_p() errorcheck(pygpgme.gpgme_data_new(tmp)) self.wrapped = pygpgme.gpgme_data_t_p_value(tmp) pygpgme.delete_gpgme_data_t_p(tmp)
def engine_check_version (proto): try: errorcheck(pygpgme.gpgme_engine_check_version(proto)) return True except errors.GPGMEError: return False
def write(self, buffer): errorcheck(pygpgme.gpgme_data_write(self.wrapped, buffer, len(buffer)))
def new_from_mem(self, string, copy = 1): tmp = pygpgme.new_gpgme_data_t_p() errorcheck(pygpgme.gpgme_data_new_from_mem(tmp,string,len(string),copy)) self.wrapped = pygpgme.gpgme_data_t_p_value(tmp) pygpgme.delete_gpgme_data_t_p(tmp)
def new_from_file(self, filename, copy = 1): tmp = pygpgme.new_gpgme_data_t_p() errorcheck(pygpgme.gpgme_data_new_from_file(tmp, filename, copy)) self.wrapped = pygpgme.gpgme_data_t_p_value(tmp) pygpgme.delete_gpgme_data_t_p(tmp)
def new_from_file(self, filename, copy=1): tmp = pygpgme.new_gpgme_data_t_p() errorcheck(pygpgme.gpgme_data_new_from_file(tmp, filename, copy)) self.wrapped = pygpgme.gpgme_data_t_p_value(tmp) pygpgme.delete_gpgme_data_t_p(tmp)
def engine_check_version(proto): try: errorcheck(pygpgme.gpgme_engine_check_version(proto)) return True except errors.GPGMEError: return False
def _funcwrap(*args, **kwargs): args = [self.wrapped] + list(args) return errorcheck(apply(getattr(pygpgme, name), args, kwargs), "Invocation of " + name)
def new_from_mem(self, string, copy=1): tmp = pygpgme.new_gpgme_data_t_p() errorcheck( pygpgme.gpgme_data_new_from_mem(tmp, string, len(string), copy)) self.wrapped = pygpgme.gpgme_data_t_p_value(tmp) pygpgme.delete_gpgme_data_t_p(tmp)