Python 3 port of PyME
[gpgme.git] / lang / py3-pyme / examples / exportimport.py
1 #!/usr/bin/env python3
2 # $Id$
3 # Copyright (C) 2004,2008 Igor Belyi <belyi@users.sourceforge.net>
4 #
5 #    This program is free software; you can redistribute it and/or modify
6 #    it under the terms of the GNU General Public License as published by
7 #    the Free Software Foundation; either version 2 of the License, or
8 #    (at your option) any later version.
9 #
10 #    This program is distributed in the hope that it will be useful,
11 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 #    GNU General Public License for more details.
14 #
15 #    You should have received a copy of the GNU General Public License
16 #    along with this program; if not, write to the Free Software
17 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
19 # Sample of export and import of keys
20 # It uses keys for joe@foo.bar generated by genkey.pl script
21
22 import sys
23 from pyme import core
24
25 core.check_version(None)
26
27 expkey = core.Data()
28 c = core.Context()
29 c.set_armor(1)
30 user = "joe@foo.bar"
31
32 print(" - Export %s's public keys - " % user)
33 c.op_export(user, 0, expkey)
34
35 # print out exported data to see how it looks in armor.
36 expkey.seek(0,0)
37 expstring = expkey.read()
38 if expstring:
39     print(expstring)
40 else:
41     print("No %s's keys to export!" % user)
42     sys.exit(0)
43
44
45 # delete keys to ensure that they came from our imported data.
46 # Note that since joe's key has private part as well we can only delete
47 # both of them. As a side effect joe won't have private key for this
48 # exported public one. If it's Ok with you uncomment the next 4 lines.
49 #print " - Delete %s's public keys - " % user
50 #for thekey in [x for x in c.op_keylist_all(user, 0)]:
51 #    if not thekey.secret:
52 #        c.op_delete(thekey, 1)
53
54
55 # initialize import data from a string as if it was read from a file.
56 newkey = core.Data(expstring)
57
58 print(" - Import exported keys - ")
59 c.op_import(newkey)
60 result = c.op_import_result()
61
62 # show the import result
63 if result:
64     print(" - Result of the import - ")
65     for k in dir(result):
66         if not k in result.__dict__ and not k.startswith("_"):
67             if k == "imports":
68                 print(k, ":")
69                 for impkey in result.__getattr__(k):
70                     print("    fpr=%s result=%d status=%x" % \
71                           (impkey.fpr, impkey.result, impkey.status))
72             else:
73                 print(k, ":", result.__getattr__(k))
74 else:
75     print(" - No import result - ")