diff --git a/src/pEpmodule.cc b/src/pEpmodule.cc index 8b0cab8..1a01338 100644 --- a/src/pEpmodule.cc +++ b/src/pEpmodule.cc @@ -113,6 +113,11 @@ namespace pEp { { adapter.shutdown_sync(); } + + void debug_color(int ansi_color) + { + ::set_debug_color(adapter.session(), ansi_color); + } } } @@ -370,7 +375,7 @@ BOOST_PYTHON_MODULE(pEp) .def("__deepcopy__", &Message::deepcopy) .def("__copy__", &Message::copy); - // basic API + // basic API and key management API def("update_identity", &pEp::PythonAdapter::update_identity, "update_identity(ident)\n" @@ -518,6 +523,9 @@ BOOST_PYTHON_MODULE(pEp) "call this from another thread to shut down the sync thread\n" ); + def("debug_color", &pEp::PythonAdapter::debug_color, + "for debug builds set ANSI color value"); + // codecs call< object >(((object)(import("codecs").attr("register"))).ptr(), make_function(sync_search)); diff --git a/test/sync_handshake.py b/test/sync_handshake.py index a3a993a..3f94b77 100644 --- a/test/sync_handshake.py +++ b/test/sync_handshake.py @@ -132,6 +132,12 @@ def run(name, color=None): if color: global output output = lambda x: print(colored(x, color)) + if color == "red": + pEp.debug_color(31) + elif color == "green": + pEp.debug_color(32) + elif color == "cyan": + pEp.debug_color(36) me = pEp.Identity("alice@peptest.ch", name + " of Alice Neuman", name) pEp.myself(me) diff --git a/utils/pEp b/utils/pEp index d245d9b..4854e9c 100755 --- a/utils/pEp +++ b/utils/pEp @@ -26,6 +26,8 @@ parser.add_argument('--decrypt', '-d', help='decrypt p≡p message', action='store_true', dest='decrypt') parser.add_argument('--import', '-i', help='import key data in PGP format', action='store_true', dest='keyimport') +parser.add_argument('--export', '-x', help='export key data in PGP format', + action='store_true', dest='keyexport') parser.add_argument('--version', '-V', help='show program version', action='store_true', dest='version') parser.add_argument('files', metavar='FILE', nargs='*', @@ -33,8 +35,8 @@ parser.add_argument('files', metavar='FILE', nargs='*', args = parser.parse_args() -if not(args.encrypt) and not(args.decrypt) and not (args.keyimport) and not(args.version): - print('use either --encrypt, --decrypt or --import', file=sys.stderr) +if not(args.encrypt) and not(args.decrypt) and not (args.keyimport) and not (args.keyexport) and not(args.version): + print('use either --encrypt, --decrypt, --import or --export', file=sys.stderr) sys.exit(2) if args.version: @@ -85,6 +87,17 @@ try: except RuntimeError: print("error importing key(s)", file=sys.stderr) + elif args.keyexport: + if filename == '-': + text = sys.stdin.read() + else: + with open(filename, "rb") as f: + text = f.read() + try: + import_key(text) + except RuntimeError: + print("error exporting key(s)", file=sys.stderr) + except KeyboardInterrupt: print('\n', file=sys.stderr) sys.exit(1)