On Sat, Aug 04, 2018 at 01:15:14AM -0700, Jeremy Evans wrote:
> On 08/03 09:28, Jeremy Evans wrote:
> > The ssh-keygen -o flag wasn't listed in the synopsis, and -a was only
> > listed with -T (where it specifies the number of primality tests), not
> > for specifying the number of KDF rounds of new-format private key files.
> > 
> > I only tested creating a new private key and conversion of existing
> > keys with -p. I didn't test usage with -i, but I'm assuming that -o
> > and -a would also apply there.
> 
> jmc@ pointed out that usage should be updated.  I also tried to test the
> -i flag, but it appears that -e will only export public keys (even if
> given a file containing a private key), and -i only writes private keys
> using the PEM_write_*PrivateKey LibreSSL functions, which I don't think
> handle the new format.
> 
> I checked -A and that also respects -o, so I documented that.  I'm
> not sure how much it matters as the host keys -A generates are not
> password protected, but maybe there are other reasons to use the
> newer format.
> 
> I think the documentation for -e should be updated to specify it only
> exports public keys (assuming I'm reading the code correctly), or
> ssh-keygen should be updated to write private keys for the RFC4716
> format if the input file is a private key (since that's what the
> documentation currently implies).  But that should probably be a
> separate commit.
> 
> I also noticed that the -f flag with -A was documented in ssh-keygen(1)
> but not in usage, so I updated usage to match ssh-keygen(1).
> 
> OKs for the diff below?
> 
> Thanks,
> Jeremy
> 

ok by me, but please wait for a ssh dev to respond. this is one of the
worst synopses we have, to be honest.

jmc

> Index: ssh-keygen.1
> ===================================================================
> RCS file: /cvs/src/usr.bin/ssh/ssh-keygen.1,v
> retrieving revision 1.147
> diff -u -p -r1.147 ssh-keygen.1
> --- ssh-keygen.1      12 Mar 2018 00:52:01 -0000      1.147
> +++ ssh-keygen.1      4 Aug 2018 08:04:18 -0000
> @@ -44,7 +44,8 @@
>  .Sh SYNOPSIS
>  .Bk -words
>  .Nm ssh-keygen
> -.Op Fl q
> +.Op Fl oq 
> +.Op Fl a Ar rounds
>  .Op Fl b Ar bits
>  .Op Fl t Cm dsa | ecdsa | ed25519 | rsa
>  .Op Fl N Ar new_passphrase
> @@ -52,6 +53,8 @@
>  .Op Fl f Ar output_keyfile
>  .Nm ssh-keygen
>  .Fl p
> +.Op Fl o
> +.Op Fl a Ar rounds
>  .Op Fl P Ar old_passphrase
>  .Op Fl N Ar new_passphrase
>  .Op Fl f Ar keyfile
> @@ -126,6 +129,8 @@
>  .Op Fl f Ar input_keyfile
>  .Nm ssh-keygen
>  .Fl A
> +.Op Fl o 
> +.Op Fl a Ar rounds
>  .Op Fl f Ar prefix_path
>  .Nm ssh-keygen
>  .Fl k
> Index: ssh-keygen.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/ssh/ssh-keygen.c,v
> retrieving revision 1.318
> diff -u -p -r1.318 ssh-keygen.c
> --- ssh-keygen.c      9 Jul 2018 21:59:10 -0000       1.318
> +++ ssh-keygen.c      4 Aug 2018 08:04:18 -0000
> @@ -2282,9 +2282,10 @@ static void
>  usage(void)
>  {
>       fprintf(stderr,
> -         "usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | 
> rsa]\n"
> +         "usage: ssh-keygen [-oq] [-a rounds] [-b bits] [-t dsa | ecdsa | 
> ed25519 | rsa]\n"
>           "                  [-N new_passphrase] [-C comment] [-f 
> output_keyfile]\n"
> -         "       ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f 
> keyfile]\n"
> +         "       ssh-keygen -p [-o] [-a rounds] [-P old_passphrase] [-N 
> new_passphrase]\n"
> +         "                  [-f keyfile]\n"
>           "       ssh-keygen -i [-m key_format] [-f input_keyfile]\n"
>           "       ssh-keygen -e [-m key_format] [-f input_keyfile]\n"
>           "       ssh-keygen -y [-f input_keyfile]\n"
> @@ -2309,7 +2310,7 @@ usage(void)
>           "                  [-D pkcs11_provider] [-n principals] [-O 
> option]\n"
>           "                  [-V validity_interval] [-z serial_number] file 
> ...\n"
>           "       ssh-keygen -L [-f input_keyfile]\n"
> -         "       ssh-keygen -A\n"
> +         "       ssh-keygen -A [-o] [-a rounds] [-f prefix_path]\n"
>           "       ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z 
> version_number]\n"
>           "                  file ...\n"
>           "       ssh-keygen -Q -f krl_file file ...\n");
> 

Reply via email to