gpgme/lang/py3-pyme/examples/exportimport.py
Ben McGinnes ebd8734ad7 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).
2015-05-06 03:09:44 +10:00

76 lines
2.4 KiB
Python
Executable File

#!/usr/bin/env python3
# $Id$
# Copyright (C) 2004,2008 Igor Belyi <belyi@users.sourceforge.net>
#
# 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
# Sample of export and import of keys
# It uses keys for joe@foo.bar generated by genkey.pl script
import sys
from pyme import core
core.check_version(None)
expkey = core.Data()
c = core.Context()
c.set_armor(1)
user = "joe@foo.bar"
print(" - Export %s's public keys - " % user)
c.op_export(user, 0, expkey)
# print out exported data to see how it looks in armor.
expkey.seek(0,0)
expstring = expkey.read()
if expstring:
print(expstring)
else:
print("No %s's keys to export!" % user)
sys.exit(0)
# delete keys to ensure that they came from our imported data.
# Note that since joe's key has private part as well we can only delete
# both of them. As a side effect joe won't have private key for this
# exported public one. If it's Ok with you uncomment the next 4 lines.
#print " - Delete %s's public keys - " % user
#for thekey in [x for x in c.op_keylist_all(user, 0)]:
# if not thekey.secret:
# c.op_delete(thekey, 1)
# initialize import data from a string as if it was read from a file.
newkey = core.Data(expstring)
print(" - Import exported keys - ")
c.op_import(newkey)
result = c.op_import_result()
# show the import result
if result:
print(" - Result of the import - ")
for k in dir(result):
if not k in result.__dict__ and not k.startswith("_"):
if k == "imports":
print(k, ":")
for impkey in result.__getattr__(k):
print(" fpr=%s result=%d status=%x" % \
(impkey.fpr, impkey.result, impkey.status))
else:
print(k, ":", result.__getattr__(k))
else:
print(" - No import result - ")