1
2
3 """
4 invert an SSK/USK private key to its public equivalent
5
6 This is the guts of the command-line front-end app fcpinvertkey
7 """
8
9
10
11 import argparse
12 import sys
13 import traceback
14
15 from . import node
16 from .arguments import add_default_arguments
17
18
19
21 '''
22 Creates an argparse parser.
23 '''
24 parser = argparse.ArgumentParser(
25 prog='fcpinvertkey',
26 description='Convert a freenet SSK/USK private URI into its public equivalent.'
27 )
28 add_default_arguments(parser)
29
30 parser.add_argument(
31 'uri',
32 nargs='?',
33 help='''
34 A freenet SSK/USK private URI
35 ''',
36 )
37
38 return parser
39
40
41
43 """
44 Front end for fcpget utility
45 """
46
47 verbosity = node.ERROR
48 verbose = False
49
50 parser = create_parser()
51 args = parser.parse_args()
52
53
54 try:
55 n = node.FCPNode(host=args.fcphost, port=args.fcpport, verbosity=verbosity,
56 logfile=sys.stderr)
57 except:
58 if verbose:
59 traceback.print_exc(file=sys.stderr)
60 sys.stderr.write("Failed to connect to FCP service at %s:%s\n" % (args.fcphost, args.fcpport))
61
62
63 if not args.uri:
64 args.uri = raw_input('Enter a URI: ')
65
66 uri = args.uri.strip()
67
68
69 uriPub = n.invertprivate(args.uri)
70
71 n.shutdown()
72
73
74 sys.stdout.write(uriPub)
75 sys.stdout.flush()
76
77
78 sys.exit(0)
79
80
81
82
83
84
85