[PATCH v2] Remove sshkey_load_private()
Sharma, Jitendra
jitendra.sharma at intel.com
Fri Aug 9 21:44:25 AEST 2019
Thanks Damien for replying.
> -----Original Message-----
> From: Damien Miller [mailto:djm at mindrot.org]
> Sent: Thursday, August 8, 2019 4:57 AM
> To: Sharma, Jitendra <jitendra.sharma at intel.com>
> Cc: openssh-unix-dev at mindrot.org
> Subject: Re: [PATCH v2] Remove sshkey_load_private()
>
> I think I'd prefer that sshkey_load_private() remains as a wrapper.
>
I assume there must be a strong reason for keeping sshkey_load_private wrapper, which I am not aware of ?
However if the intent is to provide a facility/wrapper to consumers of this function, then to avoid duplicate code, we could provide a macro interface to end users.
Could you please review this code, if it sounds good:
jitendra at clear-linux~/openssh-portable $ git diff
diff --git a/authfile.c b/authfile.c
index 5e335ce4..89b5ca39 100644
--- a/authfile.c
+++ b/authfile.c
@@ -215,44 +215,6 @@ sshkey_load_private_type_fd(int fd, int type, const char *passphrase,
return r;
}
-/* XXX this is almost identical to sshkey_load_private_type() */
-int
-sshkey_load_private(const char *filename, const char *passphrase,
- struct sshkey **keyp, char **commentp)
-{
- struct sshbuf *buffer = NULL;
- int r, fd;
-
- if (keyp != NULL)
- *keyp = NULL;
- if (commentp != NULL)
- *commentp = NULL;
-
- if ((fd = open(filename, O_RDONLY)) == -1)
- return SSH_ERR_SYSTEM_ERROR;
- if (sshkey_perm_ok(fd, filename) != 0) {
- r = SSH_ERR_KEY_BAD_PERMISSIONS;
- goto out;
- }
-
- if ((buffer = sshbuf_new()) == NULL) {
- r = SSH_ERR_ALLOC_FAIL;
- goto out;
- }
- if ((r = sshkey_load_file(fd, buffer)) != 0 ||
- (r = sshkey_parse_private_fileblob(buffer, passphrase, keyp,
- commentp)) != 0)
- goto out;
- if (keyp && *keyp &&
- (r = sshkey_set_filename(*keyp, filename)) != 0)
- goto out;
- r = 0;
- out:
- close(fd);
- sshbuf_free(buffer);
- return r;
-}
-
static int
sshkey_try_load_public(struct sshkey *k, const char *filename, char **commentp)
{
diff --git a/authfile.h b/authfile.h
index 54df169b..2962fbba 100644
--- a/authfile.h
+++ b/authfile.h
@@ -30,6 +30,9 @@
struct sshbuf;
struct sshkey;
+#define sshkey_load_private(filename, passphrase, keyp, commentp) \
+ sshkey_load_private_type(KEY_UNSPEC, filename, passphrase, keyp, commentp)
+
/* XXX document these */
/* XXX some of these could probably be merged/retired */
@@ -38,7 +41,6 @@ int sshkey_save_private(struct sshkey *, const char *,
int sshkey_load_file(int, struct sshbuf *);
int sshkey_load_cert(const char *, struct sshkey **);
int sshkey_load_public(const char *, struct sshkey **, char **);
-int sshkey_load_private(const char *, const char *, struct sshkey **, char **);
int sshkey_load_private_cert(int, const char *, const char *,
struct sshkey **);
int sshkey_load_private_type(int, const char *, const char *,
(END)
> On Tue, 6 Aug 2019, Jitendra Sharma wrote:
>
> > Remove sshkey_load_private(), as this function's role is similar to
> > sshkey_load_private_type().
> > ---
More information about the openssh-unix-dev
mailing list