From ebd8734ad705afa4edc409787a00d4968d25e018 Mon Sep 17 00:00:00 2001 From: Ben McGinnes Date: Wed, 6 May 2015 03:09:44 +1000 Subject: Python 3 port of PyME * The entirety of the Python 3 port of PyME up to commit 2145348ec54c6027f2ea20f695de0277e2871405 * The old commit log has been saved as lang/py3-pyme/docs/old-commits.log * Can be viewed as a normal (separate) git repository at https://github.com/adversary-org/pyme3 * Utilising the submodule feature of git was deliberately skipped on humanitarian grounds (in order to prevent pain and suffering on the part of anyone having to manage this repository). --- lang/py3-pyme/examples/t-edit.py | 59 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 lang/py3-pyme/examples/t-edit.py (limited to 'lang/py3-pyme/examples/t-edit.py') diff --git a/lang/py3-pyme/examples/t-edit.py b/lang/py3-pyme/examples/t-edit.py new file mode 100644 index 00000000..24d36d32 --- /dev/null +++ b/lang/py3-pyme/examples/t-edit.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +# $Id$ +# Copyright (C) 2005 Igor Belyi +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import os +from pyme import core +from pyme.core import Data, Context + +core.check_version(None) + +class KeyEditor: + def __init__(self): + self.steps = ["fpr", "expire", "1", "primary", "quit"] + self.step = 0 + + def edit_fnc(self, status, args, out): + print("[-- Response --]") + out.seek(0,0) + print(out.read(), end=' ') + print("[-- Code: %d, %s --]" % (status, args)) + + if args == "keyedit.prompt": + result = self.steps[self.step] + self.step += 1 + elif args == "keyedit.save.okay": + result = "Y" + elif args == "keygen.valid": + result = "0" + else: + result = None + + return result + +if not os.getenv("GNUPGHOME"): + print("Please, set GNUPGHOME env.var. pointing to GPGME's tests/gpg dir") +else: + c = Context() + c.set_passphrase_cb(lambda x,y,z: "abc") + out = Data() + c.op_keylist_start("Alpha", 0) + key = c.op_keylist_next() + c.op_edit(key, KeyEditor().edit_fnc, out, out) + print("[-- Last response --]") + out.seek(0,0) + print(out.read(), end=' ') -- cgit v1.2.3