[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ssh_pki_import_pubkey_file checks for OPENSSH_HEADER_BEGIN
[Thread Prev] | [Thread Next]
- Subject: Re: ssh_pki_import_pubkey_file checks for OPENSSH_HEADER_BEGIN
- From: Jakub Jelen <jjelen@xxxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Mon, 25 Feb 2019 12:59:10 +0100
- To: libssh@xxxxxxxxxx
On Mon, 2019-02-25 at 11:56 +0100, g4-lisz@xxxxxxxxxxxx wrote:
> On 25.02.19 09:57, Jakub Jelen wrote:
>
> > On Sun, 2019-02-24 at 18:38 +0100, g4-lisz@xxxxxxxxxxxx wrote:
> > > ... which IMHO does not make much sense:
> > >
> > > #define OPENSSH_HEADER_BEGIN "-----BEGIN OPENSSH PRIVATE KEY-----
> > > "
> > >
> > > So if we import a public key this code block will never be used:
> > >
> > > /* Test for new OpenSSH key format first */
> > > cmp = strncmp(key_buf, OPENSSH_HEADER_BEGIN,
> > > strlen(OPENSSH_HEADER_BEGIN));
> > > if (cmp == 0) {
> > > *pkey = ssh_pki_openssh_pubkey_import(key_buf);
> > > SAFE_FREE(key_buf);
> > > if (*pkey == NULL) {
> > > SSH_LOG(SSH_LOG_WARN, "Failed to import public key
> > > from
> > > OpenSSH"
> > > " private key file");
> > > return SSH_ERROR;
> > > }
> > > return SSH_OK;
> > > }
> > >
> > > Or am I missing something here?
> > This code is used to import public key from the OpenSSH private key
> > container [1]. This new format has advantage, that it has the
> > public
> > key unencrypted unlike the old PEM files, which can be handy.
> >
> > [1]
> > https://cvsweb.openbsd.org/src/usr.bin/ssh/PROTOCOL.key?annotate=HEAD
>
> Thank you for the explanation. Actually it's clear when I read the
> warning log on failure... But I couldn't find any key sample which
> starts with BEGIN OPENSSH PRIVATE KEY but also contains a public key.
The test key in tests/keys/id_ed25519 should do that.
There are other examples of different key types in unit tests in
tests/torture_key.c.
The usage of this import function is demonstrated in the unit tests
called torture_pki_*_import_pubkey_from_openssh_privkey() in
tests/unittests/torture_pki_*.c
Hope it helps,
--
Jakub Jelen
Software Engineer
Security Technologies
Red Hat, Inc.
| ssh_pki_import_pubkey_file checks for OPENSSH_HEADER_BEGIN | g4-lisz@xxxxxxxxxxxx |
| Re: ssh_pki_import_pubkey_file checks for OPENSSH_HEADER_BEGIN | Jakub Jelen <jjelen@xxxxxxxxxx> |
| Re: ssh_pki_import_pubkey_file checks for OPENSSH_HEADER_BEGIN | g4-lisz@xxxxxxxxxxxx |