keys/: Support the EdDSA signature schemes from catcrypt(1).
[tripe] / keys / tripe-keys.in
index ce9f74d..787336f 100644 (file)
@@ -244,11 +244,13 @@ def conf_defaults():
                                             'ec': 'ec-param'}[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'),
+               ('master-attrs', ''),
                ('mgf', '${hash}-mgf'),
                ('mac', lambda: '%s-hmac/%d' %
                          (conf['hash'],
@@ -260,11 +262,15 @@ def conf_defaults():
                                        'rsapkcs1': 'rsa',
                                        'rsapss': 'rsa',
                                        'ecdsa': 'ec',
-                                       'eckcdsa': 'ec'}[conf['sig']]),
+                                       'eckcdsa': 'ec',
+                                       'ed25519': 'ed25519',
+                                       'ed448': 'ed448'}[conf['sig']]),
                ('sig-param', lambda: {'dh': '-LS -b3072 -B256',
                                       'dsa': '-b3072 -B256',
                                       'ec': '-Cnist-p256',
-                                      'rsa': '-b3072'}[conf['sig-genalg']]),
+                                      'rsa': '-b3072',
+                                      'ed25519': '',
+                                      'ed448': ''}[conf['sig-genalg']]),
                ('sig-hash', '${hash}'),
                ('sig-expire', 'forever'),
                ('fingerprint-hash', '${hash}')]:
@@ -360,7 +366,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
-    sig=${sig} hash=${sig-hash}''' % seq)
+    sig=${sig} hash=${sig-hash} !${master-attrs}''' % seq)
   run('key -kmaster extract -f-secret repos/master.pub')
 
 ###--------------------------------------------------------------------------
@@ -371,7 +377,8 @@ def cmd_setup(args):
   run('''key -krepos/param add
     -a${kx-param-genalg} !${kx-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)
 
 ###--------------------------------------------------------------------------