summaryrefslogtreecommitdiff
path: root/ssh.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2018-11-23 10:40:06 +1100
committerDamien Miller <djm@mindrot.org>2018-11-23 10:42:05 +1100
commit42c5ec4b97b6a1bae70f323952d0646af16ce710 (patch)
tree6d85f7daebb7241b80bc91126f433dca62e850e8 /ssh.c
parent5b60b6c02009547a3e2a99d4886965de2a4719da (diff)
downloadopenssh-git-42c5ec4b97b6a1bae70f323952d0646af16ce710.tar.gz
refactor libcrypto initialisation
Don't call OpenSSL_add_all_algorithms() unless OpenSSL actually supports it. Move all libcrypto initialisation to a single function, and call that from seed_rng() that is called early in each tool's main(). Prompted by patch from Rosen Penev
Diffstat (limited to 'ssh.c')
-rw-r--r--ssh.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/ssh.c b/ssh.c
index 1e471f5c..1ac903d1 100644
--- a/ssh.c
+++ b/ssh.c
@@ -610,6 +610,8 @@ main(int ac, char **av)
av = saved_av;
#endif
+ seed_rng();
+
/*
* Discard other fds that are hanging around. These can cause problem
* with backgrounded ssh processes started by ControlPersist.
@@ -1036,11 +1038,6 @@ main(int ac, char **av)
host_arg = xstrdup(host);
-#ifdef WITH_OPENSSL
- OpenSSL_add_all_algorithms();
- ERR_load_crypto_strings();
-#endif
-
/* Initialize the command to execute on remote host. */
if ((command = sshbuf_new()) == NULL)
fatal("sshbuf_new failed");
@@ -1264,8 +1261,6 @@ main(int ac, char **av)
tty_flag = 0;
}
- seed_rng();
-
if (options.user == NULL)
options.user = xstrdup(pw->pw_name);