Loïc
2020-Apr-09 14:06 UTC
[PATCH 1/2] simplify sshkey_load_private by reusing, sshkey_load_private_type with KEY_UNSPEC
---
?authfile.c | 29 ++---------------------------
?1 file changed, 2 insertions(+), 27 deletions(-)
diff --git a/authfile.c b/authfile.c
index 50fa48e4a3b6..6867c326d8f0 100644
--- a/authfile.c
+++ b/authfile.c
@@ -161,37 +161,12 @@ sshkey_load_private_type_fd(int fd, int type, const char
*passphrase,
???? return r;
?}
?
-/* XXX this is almost identical to sshkey_load_private_type() */
+/* This is identical to sshkey_load_private_type() with KEY_UNSPEC as 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 ((r = sshbuf_load_fd(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;
+??? return sshkey_load_private_type(KEY_UNSPEC, filename, passphrase, keyp,
commentp);;
?}
?
?/* Load a pubkey from the unencrypted envelope of a new-format private key */
--
2.17.1