~mdw
/
tripe
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
keys/tripe-keys.in, keys/tripe-keys.conf.5.in: Allow setting attributes.
[tripe]
/
keys
/
tripe-keys.in
diff --git
a/keys/tripe-keys.in
b/keys/tripe-keys.in
index
47a4417
..
f40f396
100644
(file)
--- a/
keys/tripe-keys.in
+++ b/
keys/tripe-keys.in
@@
-238,13
+238,19
@@
def conf_defaults():
('conf-file', '${base-dir}tripe-keys.conf'),
('upload-hook', ': run upload hook'),
('kx', 'dh'),
('conf-file', '${base-dir}tripe-keys.conf'),
('upload-hook', ': run upload hook'),
('kx', 'dh'),
+ ('kx-genalg', lambda: {'dh': 'dh',
+ 'ec': 'ec'}[conf['kx']]),
+ ('kx-param-genalg', lambda: {'dh': 'dh-param',
+ 'ec': 'ec-param'}[conf['kx']]),
('kx-param', lambda: {'dh': '-LS -b3072 -B256',
'ec': '-Cnist-p256'}[conf['kx']]),
('kx-param', lambda: {'dh': '-LS -b3072 -B256',
'ec': '-Cnist-p256'}[conf['kx']]),
+ ('kx-attrs', ''),
('kx-expire', 'now + 1 year'),
('kx-warn-days', '28'),
('cipher', 'rijndael-cbc'),
('hash', 'sha256'),
('master-keygen-flags', '-l'),
('kx-expire', 'now + 1 year'),
('kx-warn-days', '28'),
('cipher', 'rijndael-cbc'),
('hash', 'sha256'),
('master-keygen-flags', '-l'),
+ ('master-attrs', ''),
('mgf', '${hash}-mgf'),
('mac', lambda: '%s-hmac/%d' %
(conf['hash'],
('mgf', '${hash}-mgf'),
('mac', lambda: '%s-hmac/%d' %
(conf['hash'],
@@
-344,8
+350,9
@@
Subcommands available:
args = commands.keys()
args.sort()
for c in args:
args = commands.keys()
args.sort()
for c in args:
- func, min, max, help = commands[c]
- print '%s %s' % (c, help)
+ try: func, min, max, help = commands[c]
+ except KeyError: die("unknown command `%s'" % c)
+ print '%s%s%s' % (c, help and ' ', help)
###--------------------------------------------------------------------------
### Commands: newmaster
###--------------------------------------------------------------------------
### Commands: newmaster
@@
-355,7
+362,7
@@
def cmd_newmaster(args):
run('''key -kmaster add
-a${sig-genalg} !${sig-param}
-e${sig-expire} !${master-keygen-flags} -tmaster-%d tripe-keys-master
run('''key -kmaster add
-a${sig-genalg} !${sig-param}
-e${sig-expire} !${master-keygen-flags} -tmaster-%d tripe-keys-master
- sig=${sig} hash=${sig-hash}''' % seq)
+ sig=${sig} hash=${sig-hash}
!${master-attrs}
''' % seq)
run('key -kmaster extract -f-secret repos/master.pub')
###--------------------------------------------------------------------------
run('key -kmaster extract -f-secret repos/master.pub')
###--------------------------------------------------------------------------
@@
-364,9
+371,10
@@
def cmd_newmaster(args):
def cmd_setup(args):
OS.mkdir('repos')
run('''key -krepos/param add
def cmd_setup(args):
OS.mkdir('repos')
run('''key -krepos/param add
- -a${kx
}-param
!${kx-param}
+ -a${kx
-param-genalg}
!${kx-param}
-eforever -tparam tripe-param
-eforever -tparam tripe-param
- kx-group=${kx} cipher=${cipher} hash=${hash} mac=${mac} mgf=${mgf}''')
+ kx-group=${kx} mgf=${mgf} mac=${mac}
+ cipher=${cipher} hash=${hash} ${kx-attrs}''')
cmd_newmaster(args)
###--------------------------------------------------------------------------
cmd_newmaster(args)
###--------------------------------------------------------------------------
@@
-419,6
+427,16
@@
def cmd_upload(args):
for base in commit:
new = '%s.new' % base
OS.rename(new, base)
for base in commit:
new = '%s.new' % base
OS.rename(new, base)
+
+ ## Remove files in the base-dir which don't correspond to ones we just
+ ## committed
+ allow = {}
+ basedir = conf['base-dir']
+ bdl = len(basedir)
+ for base in commit:
+ if base.startswith(basedir): allow[base[bdl:]] = 1
+ for found in OS.listdir(basedir):
+ if found not in allow: OS.remove(OS.path.join(basedir, found))
finally:
OS.chdir(cwd)
rmtree('tmp')
finally:
OS.chdir(cwd)
rmtree('tmp')
@@
-460,7
+478,7
@@
def cmd_update(args):
OS.chdir(cwd)
if OS.path.exists('repos'): OS.rename('repos', 'repos.old')
OS.rename('tmp/repos', 'repos')
OS.chdir(cwd)
if OS.path.exists('repos'): OS.rename('repos', 'repos.old')
OS.rename('tmp/repos', 'repos')
- if not FC.cmp('tmp/tripe-keys.conf', 'tripe-keys.conf'):
+ if not FC.cmp('tmp/tripe-keys.conf', 'tripe-keys.conf'
, False
):
moan('configuration file changed: recommend running another update')
OS.rename('tmp/tripe-keys.conf', 'tripe-keys.conf')
rmtree('repos.old')
moan('configuration file changed: recommend running another update')
OS.rename('tmp/tripe-keys.conf', 'tripe-keys.conf')
rmtree('repos.old')
@@
-478,7
+496,7
@@
def cmd_generate(args):
keyring_pub = 'peer-%s.pub' % tag
zap('keyring'); zap(keyring_pub)
run('key -kkeyring merge repos/param')
keyring_pub = 'peer-%s.pub' % tag
zap('keyring'); zap(keyring_pub)
run('key -kkeyring merge repos/param')
- run('key -kkeyring add -a${kx} -pparam -e${kx-expire} -t%s tripe' %
+ run('key -kkeyring add -a${kx
-genalg
} -pparam -e${kx-expire} -t%s tripe' %
tag)
run('key -kkeyring extract -f-secret %s %s' % (keyring_pub, tag))
tag)
run('key -kkeyring extract -f-secret %s %s' % (keyring_pub, tag))
@@
-554,9
+572,6
@@
def cmd_mtu(args):
###--------------------------------------------------------------------------
### Main driver.
###--------------------------------------------------------------------------
### Main driver.
-## Exceptions.
-class UsageError (Exception): pass
-
commands = {'help': (cmd_help, 0, 1, ''),
'newmaster': (cmd_newmaster, 0, 0, ''),
'setup': (cmd_setup, 0, 0, ''),
commands = {'help': (cmd_help, 0, 1, ''),
'newmaster': (cmd_newmaster, 0, 0, ''),
'setup': (cmd_setup, 0, 0, ''),
@@
-604,10
+619,12
@@
def main(argv):
cmd_help([])
else:
c = argv[1]
cmd_help([])
else:
c = argv[1]
- func, min, max, help = commands[c]
+ try: func, min, max, help = commands[c]
+ except KeyError: die("unknown command `%s'" % c)
args = argv[2:]
args = argv[2:]
- if len(args) < min or (max > 0 and len(args) > max):
- raise UsageError, (c, help)
+ if len(args) < min or (max is not None and len(args) > max):
+ SYS.stderr.write('Usage: %s %s%s%s\n' % (quis, c, help and ' ', help))
+ SYS.exit(1)
func(args)
###----- That's all, folks --------------------------------------------------
func(args)
###----- That's all, folks --------------------------------------------------