From 938630c472518aabecaa4ae1e4172616718b3cf1 Mon Sep 17 00:00:00 2001 From: overweight <5324761+overweight@user.noreply.gitee.com> Date: Mon, 30 Sep 2019 11:10:51 -0400 Subject: [PATCH] Package init --- Cygwin-Change-service-name-to-cygsshd.patch | 26 + DJM-GPG-KEY.gpg | Bin 0 -> 10412 bytes Initial-len-for-the-fmt-NULL-case.patch | 27 + Move-RANDOM_SEED_SIZE-outside-ifdef.patch | 36 + bugfix-openssh-6.6p1-log-usepam-no.patch | 42 + ...ssh-add-option-check-username-splash.patch | 107 + ...st_path-empty-path-should-be-allowed.patch | 44 + check-for-NULL-return-from-shadow_pw.patch | 28 + check-pw_passwd-NULL-here-too.patch | 29 + delete-the-correct-thing-kexfuzz-binary.patch | 25 + ...-avoid-dereference-of-NULL-passwords.patch | 30 + openssh-4.3p2-askpass-grab-info.patch | 19 + openssh-5.1p1-askpass-progress.patch | 81 + openssh-5.8p2-sigpipe.patch | 12 + openssh-5.9p1-ipv6man.patch | 24 + openssh-5.9p1-wIm.patch | 78 + openssh-6.1p1-gssapi-canohost.patch | 21 + openssh-6.2p1-vendor.patch | 142 + openssh-6.3p1-ctr-evp-fast.patch | 101 + openssh-6.4p1-fromto-remote.patch | 16 + openssh-6.6.1p1-log-in-chroot.patch | 263 + ...h-6.6.1p1-scp-non-existing-directory.patch | 14 + openssh-6.6.1p1-selinux-contexts.patch | 126 + openssh-6.6p1-GSSAPIEnablek5users.patch | 129 + openssh-6.6p1-allow-ip-opts.patch | 39 + openssh-6.6p1-ctr-cavstest.patch | 257 + openssh-6.6p1-force_krb.patch | 280 + openssh-6.6p1-keycat.patch | 485 ++ openssh-6.6p1-keyperm.patch | 26 + openssh-6.6p1-kuserok.patch | 289 + openssh-6.6p1-privsep-selinux.patch | 121 + openssh-6.7p1-coverity.patch | 185 + openssh-6.7p1-kdf-cavs.patch | 608 +++ openssh-6.7p1-ldap.patch | 2742 ++++++++++ openssh-6.7p1-sftp-force-permission.patch | 98 + openssh-6.8p1-sshdT-output.patch | 27 + openssh-6.9p1-permit-root-login.patch | 12 + openssh-7.0p1-gssKexAlgorithms.patch | 422 ++ openssh-7.1p1-gssapi-documentation.patch | 52 + openssh-7.1p2-audit-race-condition.patch | 187 + openssh-7.2p2-k5login_directory.patch | 87 + openssh-7.2p2-s390-closefrom.patch | 52 + openssh-7.2p2-x11.patch | 53 + openssh-7.3p1-openssl-1.1.0.patch | 2688 ++++++++++ openssh-7.3p1-x11-max-displays.patch | 213 + openssh-7.4p1-systemd.patch | 98 + openssh-7.5p1-gssapi-kex-with-ec.patch | 1377 +++++ openssh-7.5p1-sandbox.patch | 108 + openssh-7.6p1-audit.patch | 2172 ++++++++ openssh-7.6p1-cleanup-selinux.patch | 253 + openssh-7.6p1-pkcs11-ecdsa.patch | 801 +++ openssh-7.6p1-pkcs11-uri.patch | 4771 +++++++++++++++++ openssh-7.7p1-fips.patch | 705 +++ openssh-7.7p1-gssapi-new-unique.patch | 646 +++ openssh-7.7p1-redhat.patch | 164 + openssh-7.8p1-UsePAM-warning.patch | 26 + openssh-7.8p1-gsskex.patch | 2905 ++++++++++ openssh-7.8p1-ip-port-config-parser.patch | 72 + openssh-7.8p1-role-mls.patch | 885 +++ openssh-7.8p1-scp-ipv6.patch | 16 + openssh-7.8p1.tar.gz | Bin 0 -> 1548026 bytes openssh-7.8p1.tar.gz.asc | 14 + ...-that-prevented-detection-of-Linux-V.patch | 25 + openssh.spec | 447 ++ pam_ssh_agent-rmheaders | 37 + pam_ssh_agent_auth-0.10.2-compat.patch | 939 ++++ pam_ssh_agent_auth-0.10.2-dereference.patch | 20 + pam_ssh_agent_auth-0.10.3-seteuid.patch | 37 + pam_ssh_agent_auth-0.10.3.tar.bz2 | Bin 0 -> 1066393 bytes pam_ssh_agent_auth-0.9.2-visibility.patch | 21 + ...ssh_agent_auth-0.9.3-agent_structure.patch | 96 + pam_ssh_agent_auth-0.9.3-build.patch | 196 + ssh-keycat.pam | 8 + sshd-keygen | 40 + sshd-keygen.target | 5 + sshd-keygen@.service | 11 + sshd.pam | 17 + sshd.service | 18 + sshd.socket | 11 + sshd.sysconfig | 11 + sshd.tmpfiles | 1 + sshd@.service | 11 + ...initialize-2nd-arg-to-hpdelim2.-It-p.patch | 53 + ...is_prime_-calls-in-SSH-the-API-retur.patch | 75 + ...oosing-a-prime-from-the-moduli-file-.patch | 62 + ...-local-variable-name-from-yawang-AT-.patch | 42 + ...w-empty-incoming-filename-or-ones-th.patch | 36 + ...ttempt-to-connect-to-empty-SSH_AUTH_.patch | 33 + ...runcate-user-or-host-name-in-user-ho.patch | 48 + ...bug-in-HostbasedAcceptedKeyTypes-and.patch | 80 + ...-in-client-that-was-keeping-a-redund.patch | 49 + ...ream-fix-build-with-DEBUG_PK-enabled.patch | 34 + ...ory-leak-of-ciphercontext-when-rekey.patch | 38 + ...placed-parenthesis-inside-if-clause..patch | 38 + ...-Q-sig-to-show-correct-signature-alg.patch | 29 + ...andparent-parent-child-sshbuf-chains.patch | 56 + ...nsider-the-ext-info-c-extension-duri.patch | 74 + ...-error-message-caught-by-Debian-lint.patch | 35 + ...-plain-RSA-algorithm-counterpart-nam.patch | 32 + 99 files changed, 28121 insertions(+) create mode 100644 Cygwin-Change-service-name-to-cygsshd.patch create mode 100644 DJM-GPG-KEY.gpg create mode 100644 Initial-len-for-the-fmt-NULL-case.patch create mode 100644 Move-RANDOM_SEED_SIZE-outside-ifdef.patch create mode 100644 bugfix-openssh-6.6p1-log-usepam-no.patch create mode 100644 bugfix-openssh-add-option-check-username-splash.patch create mode 100644 bugfix-sftp-when-parse_user_host_path-empty-path-should-be-allowed.patch create mode 100644 check-for-NULL-return-from-shadow_pw.patch create mode 100644 check-pw_passwd-NULL-here-too.patch create mode 100644 delete-the-correct-thing-kexfuzz-binary.patch create mode 100644 in-pick_salt-avoid-dereference-of-NULL-passwords.patch create mode 100644 openssh-4.3p2-askpass-grab-info.patch create mode 100644 openssh-5.1p1-askpass-progress.patch create mode 100644 openssh-5.8p2-sigpipe.patch create mode 100644 openssh-5.9p1-ipv6man.patch create mode 100644 openssh-5.9p1-wIm.patch create mode 100644 openssh-6.1p1-gssapi-canohost.patch create mode 100644 openssh-6.2p1-vendor.patch create mode 100644 openssh-6.3p1-ctr-evp-fast.patch create mode 100644 openssh-6.4p1-fromto-remote.patch create mode 100644 openssh-6.6.1p1-log-in-chroot.patch create mode 100644 openssh-6.6.1p1-scp-non-existing-directory.patch create mode 100644 openssh-6.6.1p1-selinux-contexts.patch create mode 100644 openssh-6.6p1-GSSAPIEnablek5users.patch create mode 100644 openssh-6.6p1-allow-ip-opts.patch create mode 100644 openssh-6.6p1-ctr-cavstest.patch create mode 100644 openssh-6.6p1-force_krb.patch create mode 100644 openssh-6.6p1-keycat.patch create mode 100644 openssh-6.6p1-keyperm.patch create mode 100644 openssh-6.6p1-kuserok.patch create mode 100644 openssh-6.6p1-privsep-selinux.patch create mode 100644 openssh-6.7p1-coverity.patch create mode 100644 openssh-6.7p1-kdf-cavs.patch create mode 100644 openssh-6.7p1-ldap.patch create mode 100644 openssh-6.7p1-sftp-force-permission.patch create mode 100644 openssh-6.8p1-sshdT-output.patch create mode 100644 openssh-6.9p1-permit-root-login.patch create mode 100644 openssh-7.0p1-gssKexAlgorithms.patch create mode 100644 openssh-7.1p1-gssapi-documentation.patch create mode 100644 openssh-7.1p2-audit-race-condition.patch create mode 100644 openssh-7.2p2-k5login_directory.patch create mode 100644 openssh-7.2p2-s390-closefrom.patch create mode 100644 openssh-7.2p2-x11.patch create mode 100644 openssh-7.3p1-openssl-1.1.0.patch create mode 100644 openssh-7.3p1-x11-max-displays.patch create mode 100644 openssh-7.4p1-systemd.patch create mode 100644 openssh-7.5p1-gssapi-kex-with-ec.patch create mode 100644 openssh-7.5p1-sandbox.patch create mode 100644 openssh-7.6p1-audit.patch create mode 100644 openssh-7.6p1-cleanup-selinux.patch create mode 100644 openssh-7.6p1-pkcs11-ecdsa.patch create mode 100644 openssh-7.6p1-pkcs11-uri.patch create mode 100644 openssh-7.7p1-fips.patch create mode 100644 openssh-7.7p1-gssapi-new-unique.patch create mode 100644 openssh-7.7p1-redhat.patch create mode 100644 openssh-7.8p1-UsePAM-warning.patch create mode 100644 openssh-7.8p1-gsskex.patch create mode 100644 openssh-7.8p1-ip-port-config-parser.patch create mode 100644 openssh-7.8p1-role-mls.patch create mode 100644 openssh-7.8p1-scp-ipv6.patch create mode 100644 openssh-7.8p1.tar.gz create mode 100644 openssh-7.8p1.tar.gz.asc create mode 100644 openssh-fix-typo-that-prevented-detection-of-Linux-V.patch create mode 100644 openssh.spec create mode 100644 pam_ssh_agent-rmheaders create mode 100644 pam_ssh_agent_auth-0.10.2-compat.patch create mode 100644 pam_ssh_agent_auth-0.10.2-dereference.patch create mode 100644 pam_ssh_agent_auth-0.10.3-seteuid.patch create mode 100644 pam_ssh_agent_auth-0.10.3.tar.bz2 create mode 100644 pam_ssh_agent_auth-0.9.2-visibility.patch create mode 100644 pam_ssh_agent_auth-0.9.3-agent_structure.patch create mode 100644 pam_ssh_agent_auth-0.9.3-build.patch create mode 100644 ssh-keycat.pam create mode 100644 sshd-keygen create mode 100644 sshd-keygen.target create mode 100644 sshd-keygen@.service create mode 100644 sshd.pam create mode 100644 sshd.service create mode 100644 sshd.socket create mode 100644 sshd.sysconfig create mode 100644 sshd.tmpfiles create mode 100644 sshd@.service create mode 100644 upstream-Always-initialize-2nd-arg-to-hpdelim2.-It-p.patch create mode 100644 upstream-Fix-BN_is_prime_-calls-in-SSH-the-API-retur.patch create mode 100644 upstream-When-choosing-a-prime-from-the-moduli-file-.patch create mode 100644 upstream-correct-local-variable-name-from-yawang-AT-.patch create mode 100644 upstream-disallow-empty-incoming-filename-or-ones-th.patch create mode 100644 upstream-don-t-attempt-to-connect-to-empty-SSH_AUTH_.patch create mode 100644 upstream-don-t-truncate-user-or-host-name-in-user-ho.patch create mode 100644 upstream-fix-bug-in-HostbasedAcceptedKeyTypes-and.patch create mode 100644 upstream-fix-bug-in-client-that-was-keeping-a-redund.patch create mode 100644 upstream-fix-build-with-DEBUG_PK-enabled.patch create mode 100644 upstream-fix-memory-leak-of-ciphercontext-when-rekey.patch create mode 100644 upstream-fix-misplaced-parenthesis-inside-if-clause..patch create mode 100644 upstream-fix-ssh-Q-sig-to-show-correct-signature-alg.patch create mode 100644 upstream-make-grandparent-parent-child-sshbuf-chains.patch create mode 100644 upstream-only-consider-the-ext-info-c-extension-duri.patch create mode 100644 upstream-typo-in-error-message-caught-by-Debian-lint.patch create mode 100644 upstream-typo-in-plain-RSA-algorithm-counterpart-nam.patch diff --git a/Cygwin-Change-service-name-to-cygsshd.patch b/Cygwin-Change-service-name-to-cygsshd.patch new file mode 100644 index 0000000..ab88453 --- /dev/null +++ b/Cygwin-Change-service-name-to-cygsshd.patch @@ -0,0 +1,26 @@ +From 89843de0c4c733501f6b4f988098e6e06963df37 Mon Sep 17 00:00:00 2001 +From: Corinna Vinschen +Date: Sat, 26 Jan 2019 23:03:12 +0100 +Subject: [PATCH 276/294] Cygwin: Change service name to cygsshd + +Microsoft hijacked the sshd service name without asking. +--- + contrib/cygwin/ssh-host-config | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/contrib/cygwin/ssh-host-config b/contrib/cygwin/ssh-host-config +index 2903125..52916d1 100644 +--- a/contrib/cygwin/ssh-host-config ++++ b/contrib/cygwin/ssh-host-config +@@ -61,7 +61,7 @@ LOCALSTATEDIR=/var + + sshd_config_configured=no + port_number=22 +-service_name=sshd ++service_name=cygsshd + strictmodes=yes + cygwin_value="" + user_account= +-- +1.8.3.1 + diff --git a/DJM-GPG-KEY.gpg b/DJM-GPG-KEY.gpg new file mode 100644 index 0000000000000000000000000000000000000000..8e733eba655a32064e5e514b3a36ef43132d0ae4 GIT binary patch literal 10412 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 literal 0 HcmV?d00001 diff --git a/Initial-len-for-the-fmt-NULL-case.patch b/Initial-len-for-the-fmt-NULL-case.patch new file mode 100644 index 0000000..6ff132d --- /dev/null +++ b/Initial-len-for-the-fmt-NULL-case.patch @@ -0,0 +1,27 @@ +From 039bf2a81797b8f3af6058d34005a4896a363221 Mon Sep 17 00:00:00 2001 +From: Darren Tucker +Date: Fri, 7 Sep 2018 14:06:57 +1000 +Subject: [PATCH 003/294] Initial len for the fmt=NULL case. + +Patch from jjelen at redhat via bz#2687. (OpenSSH never calls +setproctitle with a null format so len is always initialized). +--- + openbsd-compat/setproctitle.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/openbsd-compat/setproctitle.c b/openbsd-compat/setproctitle.c +index 2b15c6e..dbd1a95 100644 +--- a/openbsd-compat/setproctitle.c ++++ b/openbsd-compat/setproctitle.c +@@ -125,7 +125,7 @@ setproctitle(const char *fmt, ...) + #if SPT_TYPE != SPT_NONE + va_list ap; + char buf[1024], ptitle[1024]; +- size_t len; ++ size_t len = 0; + int r; + extern char *__progname; + #if SPT_TYPE == SPT_PSTAT +-- +1.8.3.1 + diff --git a/Move-RANDOM_SEED_SIZE-outside-ifdef.patch b/Move-RANDOM_SEED_SIZE-outside-ifdef.patch new file mode 100644 index 0000000..9f75f18 --- /dev/null +++ b/Move-RANDOM_SEED_SIZE-outside-ifdef.patch @@ -0,0 +1,36 @@ +From c721d5877509875c8515df0215fa1dab862013bc Mon Sep 17 00:00:00 2001 +From: Darren Tucker +Date: Fri, 23 Nov 2018 14:11:20 +1100 +Subject: [PATCH 127/294] Move RANDOM_SEED_SIZE outside ifdef. + +RANDOM_SEED_SIZE is used by both the OpenSSL and non-OpenSSL code +This fixes the build with configureed --without-openssl. +--- + entropy.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/entropy.c b/entropy.c +index 1e3f265..b04ef3f 100644 +--- a/entropy.c ++++ b/entropy.c +@@ -24,6 +24,8 @@ + + #include "includes.h" + ++#define RANDOM_SEED_SIZE 48 ++ + #ifdef WITH_OPENSSL + + #include +@@ -64,8 +66,6 @@ + */ + #ifndef OPENSSL_PRNG_ONLY + +-#define RANDOM_SEED_SIZE 48 +- + /* + * Collect 'len' bytes of entropy into 'buf' from PRNGD/EGD daemon + * listening either on 'tcp_port', or via Unix domain socket at * +-- +1.8.3.1 + diff --git a/bugfix-openssh-6.6p1-log-usepam-no.patch b/bugfix-openssh-6.6p1-log-usepam-no.patch new file mode 100644 index 0000000..4bc9509 --- /dev/null +++ b/bugfix-openssh-6.6p1-log-usepam-no.patch @@ -0,0 +1,42 @@ +From 45b9c4762614db5bc14b855ccfc019951eebe42d Mon Sep 17 00:00:00 2001 +From: guoxiaoqi +Date: Mon, 10 Dec 2018 19:07:51 +0000 +Subject: [PATCH] bugfix-openssh-6.6p1-log-usepam-no + +--- + sshd.c | 4 ++-- + sshd_config | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/sshd.c b/sshd.c +index d6ac3e3..6f273b7 100644 +--- a/sshd.c ++++ b/sshd.c +@@ -1707,9 +1707,9 @@ main(int ac, char **av) + parse_server_config(&options, rexeced_flag ? "rexec" : config_file_name, + cfg, NULL); + +- /* 'UsePAM no' is not supported in Fedora */ ++ /* 'UsePAM no' is not supported in openEuler */ + if (! options.use_pam) +- logit("WARNING: 'UsePAM no' is not supported in Fedora and may cause several problems."); ++ logit("WARNING: 'UsePAM no' is not supported in openEuler and may cause several problems."); + + seed_rng(); + +diff --git a/sshd_config b/sshd_config +index cc90a90..17b477c 100644 +--- a/sshd_config ++++ b/sshd_config +@@ -91,7 +91,7 @@ GSSAPICleanupCredentials no + # If you just want the PAM account and session checks to run without + # PAM authentication, then enable this but set PasswordAuthentication + # and ChallengeResponseAuthentication to 'no'. +-# WARNING: 'UsePAM no' is not supported in Fedora and may cause several ++# WARNING: 'UsePAM no' is not supported in openEuler and may cause several + # problems. + UsePAM yes + +-- +1.8.3.1 + diff --git a/bugfix-openssh-add-option-check-username-splash.patch b/bugfix-openssh-add-option-check-username-splash.patch new file mode 100644 index 0000000..30f918b --- /dev/null +++ b/bugfix-openssh-add-option-check-username-splash.patch @@ -0,0 +1,107 @@ +From a28e7321bbb42cf6e8734a297c07dd9467662151 Mon Sep 17 00:00:00 2001 +From: wangqiang +Date: Thu, 9 Aug 2018 14:27:55 +0800 +Subject: [PATCH] openssh: add option check username splash + +add a check to inhibit username contains splash +add an option 'CheckUserSplash' so that user can turn off +this check + +--- + auth2.c | 3 +++ + servconf.c | 8 ++++++++ + servconf.h | 2 ++ + sshd_config | 2 ++ + 4 files changed, 15 insertions(+) + +diff --git a/auth2.c b/auth2.c +index 6591a8b..be7f829 100644 +--- a/auth2.c ++++ b/auth2.c +@@ -231,10 +231,13 @@ input_userauth_request(int type, u_int32_t seq, void *ctxt) + debug("userauth-request for user %s service %s method %s", user, service, method); + debug("attempt %d failures %d", authctxt->attempt, authctxt->failures); + ++if (options.check_user_splash) ++{ + #ifdef WITH_SELINUX + if ((role = strchr(user, '/')) != NULL) + *role++ = 0; + #endif ++} + + if ((style = strchr(user, ':')) != NULL) + *style++ = 0; +diff --git a/servconf.c b/servconf.c +index 08e5d70..85c9238 100644 +--- a/servconf.c ++++ b/servconf.c +@@ -185,6 +185,7 @@ + options->ip_qos_interactive = -1; + options->ip_qos_bulk = -1; + options->version_addendum = NULL; ++ options->check_user_splash = -1; + options->fingerprint_hash = -1; + options->disable_forwarding = -1; + options->expose_userauth_info = -1; +@@ -425,6 +426,8 @@ + options->version_addendum = xstrdup(""); + if (options->show_patchlevel == -1) + options->show_patchlevel = 0; ++ if (options->check_user_splash == -1) ++ options->check_user_splash = 1; + if (options->fwd_opts.streamlocal_bind_mask == (mode_t)-1) + options->fwd_opts.streamlocal_bind_mask = 0177; + if (options->fwd_opts.streamlocal_bind_unlink == -1) +@@ -522,6 +525,7 @@ + sStreamLocalBindMask, sStreamLocalBindUnlink, + sAllowStreamLocalForwarding, sFingerprintHash, sDisableForwarding, + sExposeAuthInfo, sRDomain, ++ sCheckUserSplash, + sDeprecated, sIgnore, sUnsupported + } ServerOpCodes; + +@@ -684,6 +688,7 @@ + { "fingerprinthash", sFingerprintHash, SSHCFG_GLOBAL }, + { "disableforwarding", sDisableForwarding, SSHCFG_ALL }, + { "exposeauthinfo", sExposeAuthInfo, SSHCFG_ALL }, ++ { "checkusersplash", sCheckUserSplash, SSHCFG_GLOBAL }, + { "rdomain", sRDomain, SSHCFG_ALL }, + { NULL, sBadOption, 0 } + }; +@@ -1295,6 +1300,9 @@ + case sUsePAM: + intptr = &options->use_pam; + goto parse_flag; ++ case sCheckUserSplash: ++ intptr = &options->check_user_splash; ++ goto parse_flag; + + /* Standard Options */ + case sBadOption: +diff --git a/servconf.h b/servconf.h +index 8318a74..be86374 100644 +--- a/servconf.h ++++ b/servconf.h +@@ -219,6 +219,8 @@ + int fingerprint_hash; + int expose_userauth_info; + u_int64_t timing_secret; ++ ++ int check_user_splash; /* check whether splash exists in username, if exist, disable login */ + } ServerOptions; + + /* Information about the incoming connection as used by Match */ +diff --git a/sshd_config b/sshd_config +index 6bbb86b..cc90a90 100644 +--- a/sshd_config ++++ b/sshd_config +@@ -137,3 +137,5 @@ Subsystem sftp /usr/libexec/sftp-server + # AllowTcpForwarding no + # PermitTTY no + # ForceCommand cvs server ++ ++#CheckUserSplash yes +-- +1.8.3.1 + diff --git a/bugfix-sftp-when-parse_user_host_path-empty-path-should-be-allowed.patch b/bugfix-sftp-when-parse_user_host_path-empty-path-should-be-allowed.patch new file mode 100644 index 0000000..4878345 --- /dev/null +++ b/bugfix-sftp-when-parse_user_host_path-empty-path-should-be-allowed.patch @@ -0,0 +1,44 @@ +From 68fae005d551a1172085a2f91e5c4d53c9e07746 Mon Sep 17 00:00:00 2001 +From: xuchunmei +Date: Sat, 9 Feb 2019 04:51:29 -0500 +Subject: [PATCH] sftp: when parse_user_host_path, empty path should be allowed + +when using "sftp root@[2001::16%eth0]", the error output: +ssh: Could not resolve hostname [2001::16%eth0]: Name +or service not known +Connection closed. +Connection closed + +fix sftp ipv6 login failed accidental like this: +File "/root/!" not found. + +--- + misc.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/misc.c b/misc.c +index 7c4f395..1ec2aa8 100644 +--- a/misc.c ++++ b/misc.c +@@ -554,6 +554,8 @@ colon(char *cp) + flag = 1; + if (*cp == ']' && *(cp+1) == ':' && flag) + return (cp+1); ++ if (*cp == ']' && *(cp+1) == '\0' && flag) ++ return (cp+1); + if (*cp == ':' && !flag) + return (cp); + if (*cp == '/') +@@ -599,7 +601,8 @@ parse_user_host_path(const char *s, char **userp, char **hostp, char **pathp) + goto out; + + /* Extract optional path */ +- *tmp++ = '\0'; ++ if (*tmp != '\0') ++ *tmp++ = '\0'; + if (*tmp == '\0') + tmp = "."; + path = xstrdup(tmp); +-- +1.8.3.1 + diff --git a/check-for-NULL-return-from-shadow_pw.patch b/check-for-NULL-return-from-shadow_pw.patch new file mode 100644 index 0000000..4389ecc --- /dev/null +++ b/check-for-NULL-return-from-shadow_pw.patch @@ -0,0 +1,28 @@ +From fe8e8f349a553ef4c567acd418aac769a82b7729 Mon Sep 17 00:00:00 2001 +From: Damien Miller +Date: Thu, 11 Oct 2018 11:03:15 +1100 +Subject: [PATCH 067/294] check for NULL return from shadow_pw() + +probably unreachable on this platform; pointed out by +coolbugcheckers AT gmail.com +--- + openbsd-compat/port-uw.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/openbsd-compat/port-uw.c b/openbsd-compat/port-uw.c +index 9edb1b4..1322131 100644 +--- a/openbsd-compat/port-uw.c ++++ b/openbsd-compat/port-uw.c +@@ -60,6 +60,9 @@ sys_auth_passwd(struct ssh *ssh, const char *password) + /* Just use the supplied fake password if authctxt is invalid */ + char *pw_password = authctxt->valid ? shadow_pw(pw) : pw->pw_passwd; + ++ if (pw_password == NULL) ++ return 0; ++ + /* Check for users with no password. */ + if (strcmp(pw_password, "") == 0 && strcmp(password, "") == 0) + return (1); +-- +1.8.3.1 + diff --git a/check-pw_passwd-NULL-here-too.patch b/check-pw_passwd-NULL-here-too.patch new file mode 100644 index 0000000..8833ada --- /dev/null +++ b/check-pw_passwd-NULL-here-too.patch @@ -0,0 +1,29 @@ +From c29b111e7d87c2324ff71c80653dd8da168c13b9 Mon Sep 17 00:00:00 2001 +From: Damien Miller +Date: Thu, 11 Oct 2018 11:29:35 +1100 +Subject: [PATCH 068/294] check pw_passwd != NULL here too + +Again, for systems with broken NIS implementations. + +Prompted by coolbugcheckers AT gmail.com +--- + auth-passwd.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/auth-passwd.c b/auth-passwd.c +index 65f5251..24fcb67 100644 +--- a/auth-passwd.c ++++ b/auth-passwd.c +@@ -198,6 +198,9 @@ sys_auth_passwd(struct ssh *ssh, const char *password) + /* Just use the supplied fake password if authctxt is invalid */ + char *pw_password = authctxt->valid ? shadow_pw(pw) : pw->pw_passwd; + ++ if (pw_password == NULL) ++ return 0; ++ + /* Check for users with no password. */ + if (strcmp(pw_password, "") == 0 && strcmp(password, "") == 0) + return (1); +-- +1.8.3.1 + diff --git a/delete-the-correct-thing-kexfuzz-binary.patch b/delete-the-correct-thing-kexfuzz-binary.patch new file mode 100644 index 0000000..d06d754 --- /dev/null +++ b/delete-the-correct-thing-kexfuzz-binary.patch @@ -0,0 +1,25 @@ +From 41c115a5ea1cb79a6a3182773c58a23f760e8076 Mon Sep 17 00:00:00 2001 +From: Damien Miller +Date: Wed, 12 Sep 2018 16:50:01 +1000 +Subject: [PATCH 016/294] delete the correct thing; kexfuzz binary + +--- + Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index d3cffc5..46562ad 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -306,7 +306,7 @@ distclean: regressclean + rm -f regress/unittests/pkcs11/*.o + rm -f regress/unittests/pkcs11/test_pkcs11 + rm -f regress/misc/kexfuzz/*.o +- rm -f regress/misc/kexfuzz ++ rm -f regress/misc/kexfuzz/kexfuzz$(EXEEXT) + (cd openbsd-compat && $(MAKE) distclean) + if test -d pkg ; then \ + rm -fr pkg ; \ +-- +1.8.3.1 + diff --git a/in-pick_salt-avoid-dereference-of-NULL-passwords.patch b/in-pick_salt-avoid-dereference-of-NULL-passwords.patch new file mode 100644 index 0000000..829ad6c --- /dev/null +++ b/in-pick_salt-avoid-dereference-of-NULL-passwords.patch @@ -0,0 +1,30 @@ +From d1d301a1dd5d6cc3a9ed93ab7ab09dda4cb456e0 Mon Sep 17 00:00:00 2001 +From: Damien Miller +Date: Wed, 10 Oct 2018 14:57:00 +1100 +Subject: [PATCH 064/294] in pick_salt() avoid dereference of NULL passwords + +Apparently some NIS implementations can leave pw->pw_passwd (or the +shadow equivalent) NULL. + +bz#2909; based on patch from Todd Eigenschink +--- + openbsd-compat/xcrypt.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/openbsd-compat/xcrypt.c b/openbsd-compat/xcrypt.c +index c9c6283..360b187 100644 +--- a/openbsd-compat/xcrypt.c ++++ b/openbsd-compat/xcrypt.c +@@ -82,7 +82,8 @@ pick_salt(void) + strlcpy(salt, "xx", sizeof(salt)); + setpwent(); + while ((pw = getpwent()) != NULL) { +- passwd = shadow_pw(pw); ++ if ((passwd = shadow_pw(pw)) == NULL) ++ continue; + if (passwd[0] == '$' && (p = strrchr(passwd+1, '$')) != NULL) { + typelen = p - passwd + 1; + strlcpy(salt, passwd, MIN(typelen, sizeof(salt))); +-- +1.8.3.1 + diff --git a/openssh-4.3p2-askpass-grab-info.patch b/openssh-4.3p2-askpass-grab-info.patch new file mode 100644 index 0000000..e9a0b0d --- /dev/null +++ b/openssh-4.3p2-askpass-grab-info.patch @@ -0,0 +1,19 @@ +diff -up openssh-7.4p1/contrib/gnome-ssh-askpass2.c.grab-info openssh-7.4p1/contrib/gnome-ssh-askpass2.c +--- openssh-7.4p1/contrib/gnome-ssh-askpass2.c.grab-info 2016-12-23 13:31:22.645213115 +0100 ++++ openssh-7.4p1/contrib/gnome-ssh-askpass2.c 2016-12-23 13:31:40.997216691 +0100 +@@ -65,9 +65,12 @@ report_failed_grab (GtkWidget *parent_wi + err = gtk_message_dialog_new(GTK_WINDOW(parent_window), 0, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_CLOSE, +- "Could not grab %s. " +- "A malicious client may be eavesdropping " +- "on your session.", what); ++ "SSH password dialog could not grab the %s input.\n" ++ "This might be caused by application such as screensaver, " ++ "however it could also mean that someone may be eavesdropping " ++ "on your session.\n" ++ "Either close the application which grabs the %s or " ++ "log out and log in again to prevent this from happening.", what, what); + gtk_window_set_position(GTK_WINDOW(err), GTK_WIN_POS_CENTER); + + gtk_dialog_run(GTK_DIALOG(err)); diff --git a/openssh-5.1p1-askpass-progress.patch b/openssh-5.1p1-askpass-progress.patch new file mode 100644 index 0000000..6601fbf --- /dev/null +++ b/openssh-5.1p1-askpass-progress.patch @@ -0,0 +1,81 @@ +diff -up openssh-7.4p1/contrib/gnome-ssh-askpass2.c.progress openssh-7.4p1/contrib/gnome-ssh-askpass2.c +--- openssh-7.4p1/contrib/gnome-ssh-askpass2.c.progress 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/contrib/gnome-ssh-askpass2.c 2016-12-23 13:31:16.545211926 +0100 +@@ -53,6 +53,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -81,13 +82,24 @@ ok_dialog(GtkWidget *entry, gpointer dia + gtk_dialog_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); + } + ++static void ++move_progress(GtkWidget *entry, gpointer progress) ++{ ++ gdouble step; ++ g_return_if_fail(GTK_IS_PROGRESS_BAR(progress)); ++ ++ step = g_random_double_range(0.03, 0.1); ++ gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(progress), step); ++ gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progress)); ++} ++ + static int + passphrase_dialog(char *message) + { + const char *failed; + char *passphrase, *local; + int result, grab_tries, grab_server, grab_pointer; +- GtkWidget *parent_window, *dialog, *entry; ++ GtkWidget *parent_window, *dialog, *entry, *progress, *hbox; + GdkGrabStatus status; + + grab_server = (getenv("GNOME_SSH_ASKPASS_GRAB_SERVER") != NULL); +@@ -104,14 +116,32 @@ passphrase_dialog(char *message) + "%s", + message); + ++ hbox = gtk_hbox_new(FALSE, 0); ++ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, FALSE, ++ FALSE, 0); ++ gtk_widget_show(hbox); ++ + entry = gtk_entry_new(); + gtk_box_pack_start( +- GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), entry, +- FALSE, FALSE, 0); ++ GTK_BOX(hbox), entry, ++ TRUE, FALSE, 0); ++ gtk_entry_set_width_chars(GTK_ENTRY(entry), 2); + gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); + gtk_widget_grab_focus(entry); + gtk_widget_show(entry); + ++ hbox = gtk_hbox_new(FALSE, 0); ++ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, FALSE, ++ FALSE, 8); ++ gtk_widget_show(hbox); ++ ++ progress = gtk_progress_bar_new(); ++ ++ gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progress), "Passphrase length hidden intentionally"); ++ gtk_box_pack_start(GTK_BOX(hbox), progress, TRUE, ++ TRUE, 5); ++ gtk_widget_show(progress); ++ + gtk_window_set_title(GTK_WINDOW(dialog), "OpenSSH"); + gtk_window_set_position (GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); + gtk_window_set_keep_above(GTK_WINDOW(dialog), TRUE); +@@ -120,6 +150,8 @@ passphrase_dialog(char *message) + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); + g_signal_connect(G_OBJECT(entry), "activate", + G_CALLBACK(ok_dialog), dialog); ++ g_signal_connect(G_OBJECT(entry), "changed", ++ G_CALLBACK(move_progress), progress); + + gtk_window_set_keep_above(GTK_WINDOW(dialog), TRUE); + diff --git a/openssh-5.8p2-sigpipe.patch b/openssh-5.8p2-sigpipe.patch new file mode 100644 index 0000000..56af045 --- /dev/null +++ b/openssh-5.8p2-sigpipe.patch @@ -0,0 +1,12 @@ +diff -up openssh-5.8p2/ssh-keyscan.c.sigpipe openssh-5.8p2/ssh-keyscan.c +--- openssh-5.8p2/ssh-keyscan.c.sigpipe 2011-08-23 18:30:33.873025916 +0200 ++++ openssh-5.8p2/ssh-keyscan.c 2011-08-23 18:32:24.574025362 +0200 +@@ -715,6 +715,8 @@ main(int argc, char **argv) + fdlim_set(maxfd); + fdcon = xcalloc(maxfd, sizeof(con)); + ++ signal(SIGPIPE, SIG_IGN); ++ + read_wait_nfdset = howmany(maxfd, NFDBITS); + read_wait = xcalloc(read_wait_nfdset, sizeof(fd_mask)); + diff --git a/openssh-5.9p1-ipv6man.patch b/openssh-5.9p1-ipv6man.patch new file mode 100644 index 0000000..ece1a73 --- /dev/null +++ b/openssh-5.9p1-ipv6man.patch @@ -0,0 +1,24 @@ +diff -up openssh-5.9p0/ssh.1.ipv6man openssh-5.9p0/ssh.1 +--- openssh-5.9p0/ssh.1.ipv6man 2011-08-05 22:17:32.000000000 +0200 ++++ openssh-5.9p0/ssh.1 2011-08-31 13:08:34.880024485 +0200 +@@ -1400,6 +1400,8 @@ manual page for more information. + .Nm + exits with the exit status of the remote command or with 255 + if an error occurred. ++.Sh IPV6 ++IPv6 address can be used everywhere where IPv4 address. In all entries must be the IPv6 address enclosed in square brackets. Note: The square brackets are metacharacters for the shell and must be escaped in shell. + .Sh SEE ALSO + .Xr scp 1 , + .Xr sftp 1 , +diff -up openssh-5.9p0/sshd.8.ipv6man openssh-5.9p0/sshd.8 +--- openssh-5.9p0/sshd.8.ipv6man 2011-08-05 22:17:32.000000000 +0200 ++++ openssh-5.9p0/sshd.8 2011-08-31 13:10:34.129039094 +0200 +@@ -940,6 +940,8 @@ concurrently for different ports, this c + started last). + The content of this file is not sensitive; it can be world-readable. + .El ++.Sh IPV6 ++IPv6 address can be used everywhere where IPv4 address. In all entries must be the IPv6 address enclosed in square brackets. Note: The square brackets are metacharacters for the shell and must be escaped in shell. + .Sh SEE ALSO + .Xr scp 1 , + .Xr sftp 1 , diff --git a/openssh-5.9p1-wIm.patch b/openssh-5.9p1-wIm.patch new file mode 100644 index 0000000..a00046a --- /dev/null +++ b/openssh-5.9p1-wIm.patch @@ -0,0 +1,78 @@ +diff -up openssh-5.9p1/Makefile.in.wIm openssh-5.9p1/Makefile.in +--- openssh-5.9p1/Makefile.in.wIm 2011-08-05 22:15:18.000000000 +0200 ++++ openssh-5.9p1/Makefile.in 2011-09-12 16:24:18.643674014 +0200 +@@ -66,7 +66,7 @@ LIBSSH_OBJS=acss.o authfd.o authfile.o b + cipher-bf1.o cipher-ctr.o cipher-3des1.o cleanup.o \ + compat.o compress.o crc32.o deattack.o fatal.o hostfile.o \ + log.o match.o md-sha256.o moduli.o nchan.o packet.o \ +- readpass.o rsa.o ttymodes.o xmalloc.o addrmatch.o \ ++ readpass.o rsa.o ttymodes.o whereIam.o xmalloc.o addrmatch.o \ + atomicio.o key.o dispatch.o kex.o mac.o uidswap.o uuencode.o misc.o \ + monitor_fdpass.o rijndael.o ssh-dss.o ssh-ecdsa.o ssh-rsa.o dh.o \ + kexdh.o kexgex.o kexdhc.o kexgexc.o bufec.o kexecdh.o kexecdhc.o \ +diff -up openssh-5.9p1/log.h.wIm openssh-5.9p1/log.h +--- openssh-5.9p1/log.h.wIm 2011-06-20 06:42:23.000000000 +0200 ++++ openssh-5.9p1/log.h 2011-09-12 16:34:52.984674326 +0200 +@@ -65,6 +65,8 @@ void verbose(const char *, ...) __at + void debug(const char *, ...) __attribute__((format(printf, 1, 2))); + void debug2(const char *, ...) __attribute__((format(printf, 1, 2))); + void debug3(const char *, ...) __attribute__((format(printf, 1, 2))); ++void _debug_wIm_body(const char *, int, const char *, const char *, int); ++#define debug_wIm(a,b) _debug_wIm_body(a,b,__func__,__FILE__,__LINE__) + + + void set_log_handler(log_handler_fn *, void *); +diff -up openssh-5.9p1/sshd.c.wIm openssh-5.9p1/sshd.c +--- openssh-5.9p1/sshd.c.wIm 2011-06-23 11:45:51.000000000 +0200 ++++ openssh-5.9p1/sshd.c 2011-09-12 16:38:35.787816490 +0200 +@@ -140,6 +140,9 @@ int deny_severity; + + extern char *__progname; + ++/* trace of fork processes */ ++extern int whereIam; ++ + /* Server configuration options. */ + ServerOptions options; + +@@ -666,6 +669,7 @@ privsep_preauth(Authctxt *authctxt) + return 1; + } else { + /* child */ ++ whereIam = 1; + close(pmonitor->m_sendfd); + close(pmonitor->m_log_recvfd); + +@@ -715,6 +719,7 @@ privsep_postauth(Authctxt *authctxt) + + /* child */ + ++ whereIam = 2; + close(pmonitor->m_sendfd); + pmonitor->m_sendfd = -1; + +@@ -1325,6 +1330,8 @@ main(int ac, char **av) + Key *key; + Authctxt *authctxt; + ++ whereIam = 0; ++ + #ifdef HAVE_SECUREWARE + (void)set_auth_parameters(ac, av); + #endif +diff -up openssh-5.9p1/whereIam.c.wIm openssh-5.9p1/whereIam.c +--- openssh-5.9p1/whereIam.c.wIm 2011-09-12 16:24:18.722674167 +0200 ++++ openssh-5.9p1/whereIam.c 2011-09-12 16:24:18.724674418 +0200 +@@ -0,0 +1,12 @@ ++ ++int whereIam = -1; ++ ++void _debug_wIm_body(const char *txt, int val, const char *func, const char *file, int line) ++{ ++ if (txt) ++ debug("%s=%d, %s(%s:%d) wIm = %d, uid=%d, euid=%d", txt, val, func, file, line, whereIam, getuid(), geteuid()); ++ else ++ debug("%s(%s:%d) wIm = %d, uid=%d, euid=%d", func, file, line, whereIam, getuid(), geteuid()); ++} ++ ++ diff --git a/openssh-6.1p1-gssapi-canohost.patch b/openssh-6.1p1-gssapi-canohost.patch new file mode 100644 index 0000000..3e6c9cc --- /dev/null +++ b/openssh-6.1p1-gssapi-canohost.patch @@ -0,0 +1,21 @@ +diff -up openssh-6.1p1/sshconnect2.c.canohost openssh-6.1p1/sshconnect2.c +--- openssh-6.1p1/sshconnect2.c.canohost 2012-10-30 10:52:59.593301692 +0100 ++++ openssh-6.1p1/sshconnect2.c 2012-10-30 11:01:12.870301632 +0100 +@@ -699,12 +699,15 @@ userauth_gssapi(Authctxt *authctxt) + static u_int mech = 0; + OM_uint32 min; + int r, ok = 0; +- const char *gss_host; ++ const char *gss_host = NULL; + + if (options.gss_server_identity) + gss_host = options.gss_server_identity; +- else if (options.gss_trust_dns) ++ else if (options.gss_trust_dns) { + gss_host = get_canonical_hostname(active_state, 1); ++ if (strcmp(gss_host, "UNKNOWN") == 0) ++ gss_host = authctxt->host; ++ } + else + gss_host = authctxt->host; + diff --git a/openssh-6.2p1-vendor.patch b/openssh-6.2p1-vendor.patch new file mode 100644 index 0000000..1af5e9d --- /dev/null +++ b/openssh-6.2p1-vendor.patch @@ -0,0 +1,142 @@ +diff -up openssh-7.4p1/configure.ac.vendor openssh-7.4p1/configure.ac +--- openssh-7.4p1/configure.ac.vendor 2016-12-23 13:34:51.681253844 +0100 ++++ openssh-7.4p1/configure.ac 2016-12-23 13:34:51.694253847 +0100 +@@ -4930,6 +4930,12 @@ AC_ARG_WITH([lastlog], + fi + ] + ) ++AC_ARG_ENABLE(vendor-patchlevel, ++ [ --enable-vendor-patchlevel=TAG specify a vendor patch level], ++ [AC_DEFINE_UNQUOTED(SSH_VENDOR_PATCHLEVEL,[SSH_RELEASE "-" "$enableval"],[Define to your vendor patch level, if it has been modified from the upstream source release.]) ++ SSH_VENDOR_PATCHLEVEL="$enableval"], ++ [AC_DEFINE(SSH_VENDOR_PATCHLEVEL,SSH_RELEASE,[Define to your vendor patch level, if it has been modified from the upstream source release.]) ++ SSH_VENDOR_PATCHLEVEL=none]) + + dnl lastlog, [uw]tmpx? detection + dnl NOTE: set the paths in the platform section to avoid the +@@ -5194,6 +5200,7 @@ echo " Translate v4 in v6 hack + echo " BSD Auth support: $BSD_AUTH_MSG" + echo " Random number source: $RAND_MSG" + echo " Privsep sandbox style: $SANDBOX_STYLE" ++echo " Vendor patch level: $SSH_VENDOR_PATCHLEVEL" + + echo "" + +diff -up openssh-7.4p1/servconf.c.vendor openssh-7.4p1/servconf.c +--- openssh-7.4p1/servconf.c.vendor 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/servconf.c 2016-12-23 13:36:07.555268628 +0100 +@@ -143,6 +143,7 @@ initialize_server_options(ServerOptions + options->max_authtries = -1; + options->max_sessions = -1; + options->banner = NULL; ++ options->show_patchlevel = -1; + options->use_dns = -1; + options->client_alive_interval = -1; + options->client_alive_count_max = -1; +@@ -325,6 +326,8 @@ fill_default_server_options(ServerOption + options->ip_qos_bulk = IPTOS_DSCP_CS1; + if (options->version_addendum == NULL) + options->version_addendum = xstrdup(""); ++ if (options->show_patchlevel == -1) ++ options->show_patchlevel = 0; + if (options->fwd_opts.streamlocal_bind_mask == (mode_t)-1) + options->fwd_opts.streamlocal_bind_mask = 0177; + if (options->fwd_opts.streamlocal_bind_unlink == -1) +@@ -402,7 +405,7 @@ typedef enum { + sIgnoreUserKnownHosts, sCiphers, sMacs, sPidFile, + sGatewayPorts, sPubkeyAuthentication, sPubkeyAcceptedKeyTypes, + sXAuthLocation, sSubsystem, sMaxStartups, sMaxAuthTries, sMaxSessions, +- sBanner, sUseDNS, sHostbasedAuthentication, ++ sBanner, sShowPatchLevel, sUseDNS, sHostbasedAuthentication, + sHostbasedUsesNameFromPacketOnly, sHostbasedAcceptedKeyTypes, + sHostKeyAlgorithms, + sClientAliveInterval, sClientAliveCountMax, sAuthorizedKeysFile, +@@ -528,6 +531,7 @@ static struct { + { "maxauthtries", sMaxAuthTries, SSHCFG_ALL }, + { "maxsessions", sMaxSessions, SSHCFG_ALL }, + { "banner", sBanner, SSHCFG_ALL }, ++ { "showpatchlevel", sShowPatchLevel, SSHCFG_GLOBAL }, + { "usedns", sUseDNS, SSHCFG_GLOBAL }, + { "verifyreversemapping", sDeprecated, SSHCFG_GLOBAL }, + { "reversemappingcheck", sDeprecated, SSHCFG_GLOBAL }, +@@ -1369,6 +1373,10 @@ process_server_config_line(ServerOptions + intptr = &options->disable_forwarding; + goto parse_flag; + ++ case sShowPatchLevel: ++ intptr = &options->show_patchlevel; ++ goto parse_flag; ++ + case sAllowUsers: + while ((arg = strdelim(&cp)) && *arg != '\0') { + if (match_user(NULL, NULL, NULL, arg) == -1) +@@ -2269,6 +2277,7 @@ dump_config(ServerOptions *o) + dump_cfg_fmtint(sEmptyPasswd, o->permit_empty_passwd); + dump_cfg_fmtint(sCompression, o->compression); + dump_cfg_fmtint(sGatewayPorts, o->fwd_opts.gateway_ports); ++ dump_cfg_fmtint(sShowPatchLevel, o->show_patchlevel); + dump_cfg_fmtint(sUseDNS, o->use_dns); + dump_cfg_fmtint(sAllowTcpForwarding, o->allow_tcp_forwarding); + dump_cfg_fmtint(sAllowAgentForwarding, o->allow_agent_forwarding); +diff -up openssh-7.4p1/servconf.h.vendor openssh-7.4p1/servconf.h +--- openssh-7.4p1/servconf.h.vendor 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/servconf.h 2016-12-23 13:34:51.694253847 +0100 +@@ -149,6 +149,7 @@ typedef struct { + int max_authtries; + int max_sessions; + char *banner; /* SSH-2 banner message */ ++ int show_patchlevel; /* Show vendor patch level to clients */ + int use_dns; + int client_alive_interval; /* + * poke the client this often to +diff -up openssh-7.4p1/sshd_config.5.vendor openssh-7.4p1/sshd_config.5 +--- openssh-7.4p1/sshd_config.5.vendor 2016-12-23 13:34:51.695253847 +0100 ++++ openssh-7.4p1/sshd_config.5 2016-12-23 13:37:17.482282253 +0100 +@@ -1334,6 +1334,13 @@ an OpenSSH Key Revocation List (KRL) as + .Cm AcceptEnv + or + .Cm PermitUserEnvironment . ++.It Cm ShowPatchLevel ++Specifies whether ++.Nm sshd ++will display the patch level of the binary in the identification string. ++The patch level is set at compile-time. ++The default is ++.Dq no . + .It Cm StreamLocalBindMask + Sets the octal file creation mode mask + .Pq umask +diff -up openssh-7.4p1/sshd_config.vendor openssh-7.4p1/sshd_config +--- openssh-7.4p1/sshd_config.vendor 2016-12-23 13:34:51.690253846 +0100 ++++ openssh-7.4p1/sshd_config 2016-12-23 13:34:51.695253847 +0100 +@@ -105,6 +105,7 @@ X11Forwarding yes + #Compression delayed + #ClientAliveInterval 0 + #ClientAliveCountMax 3 ++#ShowPatchLevel no + #UseDNS no + #PidFile /var/run/sshd.pid + #MaxStartups 10:30:100 +diff -up openssh-7.4p1/sshd.c.vendor openssh-7.4p1/sshd.c +--- openssh-7.4p1/sshd.c.vendor 2016-12-23 13:34:51.682253844 +0100 ++++ openssh-7.4p1/sshd.c 2016-12-23 13:38:32.434296856 +0100 +@@ -367,7 +367,8 @@ sshd_exchange_identification(struct ssh + char remote_version[256]; /* Must be at least as big as buf. */ + + xasprintf(&server_version_string, "SSH-%d.%d-%.100s%s%s\r\n", +- PROTOCOL_MAJOR_2, PROTOCOL_MINOR_2, SSH_VERSION, ++ PROTOCOL_MAJOR_2, PROTOCOL_MINOR_2, ++ (options.show_patchlevel == 1) ? SSH_VENDOR_PATCHLEVEL : SSH_VERSION, + *options.version_addendum == '\0' ? "" : " ", + options.version_addendum); + +@@ -1650,7 +1651,8 @@ main(int ac, char **av) + exit(1); + } + +- debug("sshd version %s, %s", SSH_VERSION, ++ debug("sshd version %s, %s", ++ (options.show_patchlevel == 1) ? SSH_VENDOR_PATCHLEVEL : SSH_VERSION, + #ifdef WITH_OPENSSL + SSLeay_version(SSLEAY_VERSION) + #else diff --git a/openssh-6.3p1-ctr-evp-fast.patch b/openssh-6.3p1-ctr-evp-fast.patch new file mode 100644 index 0000000..ddcb7f1 --- /dev/null +++ b/openssh-6.3p1-ctr-evp-fast.patch @@ -0,0 +1,101 @@ +diff -up openssh-5.9p1/cipher-ctr.c.ctr-evp openssh-5.9p1/cipher-ctr.c +--- openssh-5.9p1/cipher-ctr.c.ctr-evp 2012-01-11 09:24:06.000000000 +0100 ++++ openssh-5.9p1/cipher-ctr.c 2012-01-11 15:54:04.675956600 +0100 +@@ -38,7 +38,7 @@ void ssh_aes_ctr_iv(EVP_CIPHER_CTX *, in + + struct ssh_aes_ctr_ctx + { +- AES_KEY aes_ctx; ++ EVP_CIPHER_CTX ecbctx; + u_char aes_counter[AES_BLOCK_SIZE]; + }; + +@@ -63,21 +63,42 @@ ssh_aes_ctr(EVP_CIPHER_CTX *ctx, u_char + { + struct ssh_aes_ctr_ctx *c; + size_t n = 0; +- u_char buf[AES_BLOCK_SIZE]; ++ u_char ctrbuf[AES_BLOCK_SIZE*256]; ++ u_char buf[AES_BLOCK_SIZE*256]; + + if (len == 0) + return (1); + if ((c = EVP_CIPHER_CTX_get_app_data(ctx)) == NULL) + return (0); + +- while ((len--) > 0) { ++ for (; len > 0; len -= sizeof(u_int)) { ++ u_int r,a,b; ++ + if (n == 0) { +- AES_encrypt(c->aes_counter, buf, &c->aes_ctx); +- ssh_ctr_inc(c->aes_counter, AES_BLOCK_SIZE); ++ int outl, i, buflen; ++ ++ buflen = MIN(len, sizeof(ctrbuf)); ++ ++ for(i = 0; i < buflen; i += AES_BLOCK_SIZE) { ++ memcpy(&ctrbuf[i], c->aes_counter, AES_BLOCK_SIZE); ++ ssh_ctr_inc(c->aes_counter, AES_BLOCK_SIZE); ++ } ++ ++ EVP_EncryptUpdate(&c->ecbctx, buf, &outl, ++ ctrbuf, buflen); + } +- *(dest++) = *(src++) ^ buf[n]; +- n = (n + 1) % AES_BLOCK_SIZE; ++ ++ memcpy(&a, src, sizeof(a)); ++ memcpy(&b, &buf[n], sizeof(b)); ++ r = a ^ b; ++ memcpy(dest, &r, sizeof(r)); ++ src += sizeof(a); ++ dest += sizeof(r); ++ ++ n = (n + sizeof(b)) % sizeof(buf); + } ++ memset(ctrbuf, '\0', sizeof(ctrbuf)); ++ memset(buf, '\0', sizeof(buf)); + return (1); + } + +@@ -91,9 +112,28 @@ ssh_aes_ctr_init(EVP_CIPHER_CTX *ctx, co + c = xmalloc(sizeof(*c)); + EVP_CIPHER_CTX_set_app_data(ctx, c); + } +- if (key != NULL) +- AES_set_encrypt_key(key, EVP_CIPHER_CTX_key_length(ctx) * 8, +- &c->aes_ctx); ++ ++ EVP_CIPHER_CTX_init(&c->ecbctx); ++ ++ if (key != NULL) { ++ const EVP_CIPHER *cipher; ++ switch(EVP_CIPHER_CTX_key_length(ctx)*8) { ++ case 128: ++ cipher = EVP_aes_128_ecb(); ++ break; ++ case 192: ++ cipher = EVP_aes_192_ecb(); ++ break; ++ case 256: ++ cipher = EVP_aes_256_ecb(); ++ break; ++ default: ++ fatal("ssh_aes_ctr_init: wrong aes key length"); ++ } ++ if(!EVP_EncryptInit_ex(&c->ecbctx, cipher, NULL, key, NULL)) ++ fatal("ssh_aes_ctr_init: cannot initialize aes encryption"); ++ EVP_CIPHER_CTX_set_padding(&c->ecbctx, 0); ++ } + if (iv != NULL) + memcpy(c->aes_counter, iv, AES_BLOCK_SIZE); + return (1); +@@ -105,6 +145,7 @@ ssh_aes_ctr_cleanup(EVP_CIPHER_CTX *ctx) + struct ssh_aes_ctr_ctx *c; + + if ((c = EVP_CIPHER_CTX_get_app_data(ctx)) != NULL) { ++ EVP_CIPHER_CTX_cleanup(&c->ecbctx); + memset(c, 0, sizeof(*c)); + free(c); + EVP_CIPHER_CTX_set_app_data(ctx, NULL); diff --git a/openssh-6.4p1-fromto-remote.patch b/openssh-6.4p1-fromto-remote.patch new file mode 100644 index 0000000..4a7d849 --- /dev/null +++ b/openssh-6.4p1-fromto-remote.patch @@ -0,0 +1,16 @@ +diff --git a/scp.c b/scp.c +index d98fa67..25d347b 100644 +--- a/scp.c ++++ b/scp.c +@@ -638,7 +638,10 @@ toremote(char *targ, int argc, char **argv) + addargs(&alist, "%s", ssh_program); + addargs(&alist, "-x"); + addargs(&alist, "-oClearAllForwardings=yes"); +- addargs(&alist, "-n"); ++ if (isatty(fileno(stdin))) ++ addargs(&alist, "-t"); ++ else ++ addargs(&alist, "-n"); + for (j = 0; j < remote_remote_args.num; j++) { + addargs(&alist, "%s", + remote_remote_args.list[j]); diff --git a/openssh-6.6.1p1-log-in-chroot.patch b/openssh-6.6.1p1-log-in-chroot.patch new file mode 100644 index 0000000..7f822ab --- /dev/null +++ b/openssh-6.6.1p1-log-in-chroot.patch @@ -0,0 +1,263 @@ +diff -up openssh-7.4p1/log.c.log-in-chroot openssh-7.4p1/log.c +--- openssh-7.4p1/log.c.log-in-chroot 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/log.c 2016-12-23 15:14:33.330168088 +0100 +@@ -250,6 +250,11 @@ debug3(const char *fmt,...) + void + log_init(char *av0, LogLevel level, SyslogFacility facility, int on_stderr) + { ++ log_init_handler(av0, level, facility, on_stderr, 1); ++} ++ ++void ++log_init_handler(char *av0, LogLevel level, SyslogFacility facility, int on_stderr, int reset_handler) { + #if defined(HAVE_OPENLOG_R) && defined(SYSLOG_DATA_INIT) + struct syslog_data sdata = SYSLOG_DATA_INIT; + #endif +@@ -273,8 +278,10 @@ log_init(char *av0, LogLevel level, Sysl + exit(1); + } + +- log_handler = NULL; +- log_handler_ctx = NULL; ++ if (reset_handler) { ++ log_handler = NULL; ++ log_handler_ctx = NULL; ++ } + + log_on_stderr = on_stderr; + if (on_stderr) +diff -up openssh-7.4p1/log.h.log-in-chroot openssh-7.4p1/log.h +--- openssh-7.4p1/log.h.log-in-chroot 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/log.h 2016-12-23 15:14:33.330168088 +0100 +@@ -49,6 +49,7 @@ typedef enum { + typedef void (log_handler_fn)(LogLevel, const char *, void *); + + void log_init(char *, LogLevel, SyslogFacility, int); ++void log_init_handler(char *, LogLevel, SyslogFacility, int, int); + LogLevel log_level_get(void); + int log_change_level(LogLevel); + int log_is_on_stderr(void); +diff -up openssh-7.4p1/monitor.c.log-in-chroot openssh-7.4p1/monitor.c +--- openssh-7.4p1/monitor.c.log-in-chroot 2016-12-23 15:14:33.311168085 +0100 ++++ openssh-7.4p1/monitor.c 2016-12-23 15:16:42.154193100 +0100 +@@ -307,6 +307,8 @@ monitor_child_preauth(Authctxt *_authctx + close(pmonitor->m_log_sendfd); + pmonitor->m_log_sendfd = pmonitor->m_recvfd = -1; + ++ pmonitor->m_state = "preauth"; ++ + authctxt = _authctxt; + memset(authctxt, 0, sizeof(*authctxt)); + ssh->authctxt = authctxt; +@@ -405,6 +407,8 @@ monitor_child_postauth(struct monitor *p + close(pmonitor->m_recvfd); + pmonitor->m_recvfd = -1; + ++ pmonitor->m_state = "postauth"; ++ + monitor_set_child_handler(pmonitor->m_pid); + signal(SIGHUP, &monitor_child_handler); + signal(SIGTERM, &monitor_child_handler); +@@ -472,7 +476,7 @@ monitor_read_log(struct monitor *pmonito + if (log_level_name(level) == NULL) + fatal("%s: invalid log level %u (corrupted message?)", + __func__, level); +- do_log2(level, "%s [preauth]", msg); ++ do_log2(level, "%s [%s]", msg, pmonitor->m_state); + + sshbuf_free(logmsg); + free(msg); +@@ -1719,13 +1723,28 @@ monitor_init(void) + mon = xcalloc(1, sizeof(*mon)); + monitor_openfds(mon, 1); + ++ mon->m_state = ""; ++ + return mon; + } + + void +-monitor_reinit(struct monitor *mon) ++monitor_reinit(struct monitor *mon, const char *chroot_dir) + { +- monitor_openfds(mon, 0); ++ struct stat dev_log_stat; ++ char *dev_log_path; ++ int do_logfds = 0; ++ ++ if (chroot_dir != NULL) { ++ xasprintf(&dev_log_path, "%s/dev/log", chroot_dir); ++ ++ if (stat(dev_log_path, &dev_log_stat) != 0) { ++ debug("%s: /dev/log doesn't exist in %s chroot - will try to log via monitor using [postauth] suffix", __func__, chroot_dir); ++ do_logfds = 1; ++ } ++ free(dev_log_path); ++ } ++ monitor_openfds(mon, do_logfds); + } + + #ifdef GSSAPI +diff -up openssh-7.4p1/monitor.h.log-in-chroot openssh-7.4p1/monitor.h +--- openssh-7.4p1/monitor.h.log-in-chroot 2016-12-23 15:14:33.330168088 +0100 ++++ openssh-7.4p1/monitor.h 2016-12-23 15:16:28.372190424 +0100 +@@ -83,10 +83,11 @@ struct monitor { + int m_log_sendfd; + struct kex **m_pkex; + pid_t m_pid; ++ char *m_state; + }; + + struct monitor *monitor_init(void); +-void monitor_reinit(struct monitor *); ++void monitor_reinit(struct monitor *, const char *); + + struct Authctxt; + void monitor_child_preauth(struct Authctxt *, struct monitor *); +diff -up openssh-7.4p1/session.c.log-in-chroot openssh-7.4p1/session.c +--- openssh-7.4p1/session.c.log-in-chroot 2016-12-23 15:14:33.319168086 +0100 ++++ openssh-7.4p1/session.c 2016-12-23 15:18:18.742211853 +0100 +@@ -160,6 +160,7 @@ login_cap_t *lc; + + static int is_child = 0; + static int in_chroot = 0; ++static int have_dev_log = 1; + + /* File containing userauth info, if ExposeAuthInfo set */ + static char *auth_info_file = NULL; +@@ -619,6 +620,7 @@ do_exec(Session *s, const char *command) + int ret; + const char *forced = NULL, *tty = NULL; + char session_type[1024]; ++ struct stat dev_log_stat; + + if (options.adm_forced_command) { + original_command = command; +@@ -676,6 +678,10 @@ do_exec(Session *s, const char *command) + tty += 5; + } + ++ if (lstat("/dev/log", &dev_log_stat) != 0) { ++ have_dev_log = 0; ++ } ++ + verbose("Starting session: %s%s%s for %s from %.200s port %d id %d", + session_type, + tty == NULL ? "" : " on ", +@@ -1486,14 +1492,6 @@ child_close_fds(void) + * descriptors left by system functions. They will be closed later. + */ + endpwent(); +- +- /* +- * Close any extra open file descriptors so that we don't have them +- * hanging around in clients. Note that we want to do this after +- * initgroups, because at least on Solaris 2.3 it leaves file +- * descriptors open. +- */ +- closefrom(STDERR_FILENO + 1); + } + + /* +@@ -1629,8 +1627,6 @@ do_child(Session *s, const char *command + exit(1); + } + +- closefrom(STDERR_FILENO + 1); +- + do_rc_files(ssh, s, shell); + + /* restore SIGPIPE for child */ +@@ -1653,9 +1649,17 @@ do_child(Session *s, const char *command + argv[i] = NULL; + optind = optreset = 1; + __progname = argv[0]; +- exit(sftp_server_main(i, argv, s->pw)); ++ exit(sftp_server_main(i, argv, s->pw, have_dev_log)); + } + ++ /* ++ * Close any extra open file descriptors so that we don't have them ++ * hanging around in clients. Note that we want to do this after ++ * initgroups, because at least on Solaris 2.3 it leaves file ++ * descriptors open. ++ */ ++ closefrom(STDERR_FILENO + 1); ++ + fflush(NULL); + + /* Get the last component of the shell name. */ +diff -up openssh-7.4p1/sftp.h.log-in-chroot openssh-7.4p1/sftp.h +--- openssh-7.4p1/sftp.h.log-in-chroot 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/sftp.h 2016-12-23 15:14:33.331168088 +0100 +@@ -97,5 +97,5 @@ + + struct passwd; + +-int sftp_server_main(int, char **, struct passwd *); ++int sftp_server_main(int, char **, struct passwd *, int); + void sftp_server_cleanup_exit(int) __attribute__((noreturn)); +diff -up openssh-7.4p1/sftp-server.c.log-in-chroot openssh-7.4p1/sftp-server.c +--- openssh-7.4p1/sftp-server.c.log-in-chroot 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/sftp-server.c 2016-12-23 15:14:33.331168088 +0100 +@@ -1497,7 +1497,7 @@ sftp_server_usage(void) + } + + int +-sftp_server_main(int argc, char **argv, struct passwd *user_pw) ++sftp_server_main(int argc, char **argv, struct passwd *user_pw, int reset_handler) + { + fd_set *rset, *wset; + int i, r, in, out, max, ch, skipargs = 0, log_stderr = 0; +@@ -1511,7 +1511,7 @@ sftp_server_main(int argc, char **argv, + + ssh_malloc_init(); /* must be called before any mallocs */ + __progname = ssh_get_progname(argv[0]); +- log_init(__progname, log_level, log_facility, log_stderr); ++ log_init_handler(__progname, log_level, log_facility, log_stderr, reset_handler); + + pw = pwcopy(user_pw); + +@@ -1582,7 +1582,7 @@ sftp_server_main(int argc, char **argv, + } + } + +- log_init(__progname, log_level, log_facility, log_stderr); ++ log_init_handler(__progname, log_level, log_facility, log_stderr, reset_handler); + + /* + * On platforms where we can, avoid making /proc/self/{mem,maps} +diff -up openssh-7.4p1/sftp-server-main.c.log-in-chroot openssh-7.4p1/sftp-server-main.c +--- openssh-7.4p1/sftp-server-main.c.log-in-chroot 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/sftp-server-main.c 2016-12-23 15:14:33.331168088 +0100 +@@ -49,5 +49,5 @@ main(int argc, char **argv) + return 1; + } + +- return (sftp_server_main(argc, argv, user_pw)); ++ return (sftp_server_main(argc, argv, user_pw, 0)); + } +diff -up openssh-7.4p1/sshd.c.log-in-chroot openssh-7.4p1/sshd.c +--- openssh-7.4p1/sshd.c.log-in-chroot 2016-12-23 15:14:33.328168088 +0100 ++++ openssh-7.4p1/sshd.c 2016-12-23 15:14:33.332168088 +0100 +@@ -650,7 +650,7 @@ privsep_postauth(Authctxt *authctxt) + } + + /* New socket pair */ +- monitor_reinit(pmonitor); ++ monitor_reinit(pmonitor, options.chroot_directory); + + pmonitor->m_pid = fork(); + if (pmonitor->m_pid == -1) +@@ -668,6 +668,11 @@ privsep_postauth(Authctxt *authctxt) + + close(pmonitor->m_sendfd); + pmonitor->m_sendfd = -1; ++ close(pmonitor->m_log_recvfd); ++ pmonitor->m_log_recvfd = -1; ++ ++ if (pmonitor->m_log_sendfd != -1) ++ set_log_handler(mm_log_handler, pmonitor); + + /* Demote the private keys to public keys. */ + demote_sensitive_data(); diff --git a/openssh-6.6.1p1-scp-non-existing-directory.patch b/openssh-6.6.1p1-scp-non-existing-directory.patch new file mode 100644 index 0000000..5412bc5 --- /dev/null +++ b/openssh-6.6.1p1-scp-non-existing-directory.patch @@ -0,0 +1,14 @@ +--- a/scp.c ++++ a/scp.c +@@ -1084,6 +1084,10 @@ sink(int argc, char **argv) + free(vect[0]); + continue; + } ++ if (buf[0] == 'C' && ! exists && np[strlen(np)-1] == '/') { ++ errno = ENOTDIR; ++ goto bad; ++ } + omode = mode; + mode |= S_IWUSR; + if ((ofd = open(np, O_WRONLY|O_CREAT, mode)) < 0) { +-- diff --git a/openssh-6.6.1p1-selinux-contexts.patch b/openssh-6.6.1p1-selinux-contexts.patch new file mode 100644 index 0000000..8bf6c78 --- /dev/null +++ b/openssh-6.6.1p1-selinux-contexts.patch @@ -0,0 +1,126 @@ +diff --git a/openbsd-compat/port-linux-sshd.c b/openbsd-compat/port-linux-sshd.c +index 8f32464..18a2ca4 100644 +--- a/openbsd-compat/port-linux-sshd.c ++++ b/openbsd-compat/port-linux-sshd.c +@@ -32,6 +32,7 @@ + #include "misc.h" /* servconf.h needs misc.h for struct ForwardOptions */ + #include "servconf.h" + #include "port-linux.h" ++#include "misc.h" + #include "sshkey.h" + #include "hostfile.h" + #include "auth.h" +@@ -445,7 +446,7 @@ sshd_selinux_setup_exec_context(char *pwname) + void + sshd_selinux_copy_context(void) + { +- security_context_t *ctx; ++ char *ctx; + + if (!sshd_selinux_enabled()) + return; +@@ -461,6 +462,58 @@ sshd_selinux_copy_context(void) + } + } + ++void ++sshd_selinux_change_privsep_preauth_context(void) ++{ ++ int len; ++ char line[1024], *preauth_context = NULL, *cp, *arg; ++ const char *contexts_path; ++ FILE *contexts_file; ++ ++ contexts_path = selinux_openssh_contexts_path(); ++ if (contexts_path != NULL) { ++ if ((contexts_file = fopen(contexts_path, "r")) != NULL) { ++ struct stat sb; ++ ++ if (fstat(fileno(contexts_file), &sb) == 0 && ((sb.st_uid == 0) && ((sb.st_mode & 022) == 0))) { ++ while (fgets(line, sizeof(line), contexts_file)) { ++ /* Strip trailing whitespace */ ++ for (len = strlen(line) - 1; len > 0; len--) { ++ if (strchr(" \t\r\n", line[len]) == NULL) ++ break; ++ line[len] = '\0'; ++ } ++ ++ if (line[0] == '\0') ++ continue; ++ ++ cp = line; ++ arg = strdelim(&cp); ++ if (arg && *arg == '\0') ++ arg = strdelim(&cp); ++ ++ if (arg && strcmp(arg, "privsep_preauth") == 0) { ++ arg = strdelim(&cp); ++ if (!arg || *arg == '\0') { ++ debug("%s: privsep_preauth is empty", __func__); ++ fclose(contexts_file); ++ return; ++ } ++ preauth_context = xstrdup(arg); ++ } ++ } ++ } ++ fclose(contexts_file); ++ } ++ } ++ ++ if (preauth_context == NULL) ++ preauth_context = xstrdup("sshd_net_t"); ++ ++ ssh_selinux_change_context(preauth_context); ++ free(preauth_context); ++} ++ + #endif + #endif + +diff --git a/openbsd-compat/port-linux.c b/openbsd-compat/port-linux.c +index 22ea8ef..1fc963d 100644 +--- a/openbsd-compat/port-linux.c ++++ b/openbsd-compat/port-linux.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include "log.h" + #include "xmalloc.h" +@@ -179,7 +179,7 @@ ssh_selinux_change_context(const char *newname) + strlcpy(newctx + len, newname, newlen - len); + if ((cx = index(cx + 1, ':'))) + strlcat(newctx, cx, newlen); +- debug3("%s: setting context from '%s' to '%s'", __func__, ++ debug("%s: setting context from '%s' to '%s'", __func__, + oldctx, newctx); + if (setcon(newctx) < 0) + switchlog("%s: setcon %s from %s failed with %s", __func__, +diff --git a/openbsd-compat/port-linux.h b/openbsd-compat/port-linux.h +index cb51f99..8b7cda2 100644 +--- a/openbsd-compat/port-linux.h ++++ b/openbsd-compat/port-linux.h +@@ -29,6 +29,7 @@ int sshd_selinux_enabled(void); + void sshd_selinux_copy_context(void); + void sshd_selinux_setup_exec_context(char *); + int sshd_selinux_setup_env_variables(void); ++void sshd_selinux_change_privsep_preauth_context(void); + #endif + + #ifdef LINUX_OOM_ADJUST +diff --git a/sshd.c b/sshd.c +index 2871fe9..39b9c08 100644 +--- a/sshd.c ++++ b/sshd.c +@@ -629,7 +629,7 @@ privsep_preauth_child(void) + demote_sensitive_data(); + + #ifdef WITH_SELINUX +- ssh_selinux_change_context("sshd_net_t"); ++ sshd_selinux_change_privsep_preauth_context(); + #endif + + /* Demote the child */ diff --git a/openssh-6.6p1-GSSAPIEnablek5users.patch b/openssh-6.6p1-GSSAPIEnablek5users.patch new file mode 100644 index 0000000..37e010d --- /dev/null +++ b/openssh-6.6p1-GSSAPIEnablek5users.patch @@ -0,0 +1,129 @@ +diff -up openssh-7.4p1/gss-serv-krb5.c.GSSAPIEnablek5users openssh-7.4p1/gss-serv-krb5.c +--- openssh-7.4p1/gss-serv-krb5.c.GSSAPIEnablek5users 2016-12-23 15:18:40.615216100 +0100 ++++ openssh-7.4p1/gss-serv-krb5.c 2016-12-23 15:18:40.628216102 +0100 +@@ -279,7 +279,6 @@ ssh_gssapi_krb5_cmdok(krb5_principal pri + FILE *fp; + char file[MAXPATHLEN]; + char *line = NULL; +- char kuser[65]; /* match krb5_kuserok() */ + struct stat st; + struct passwd *pw = the_authctxt->pw; + int found_principal = 0; +@@ -288,7 +287,7 @@ ssh_gssapi_krb5_cmdok(krb5_principal pri + + snprintf(file, sizeof(file), "%s/.k5users", pw->pw_dir); + /* If both .k5login and .k5users DNE, self-login is ok. */ +- if (!k5login_exists && (access(file, F_OK) == -1)) { ++ if ( !options.enable_k5users || (!k5login_exists && (access(file, F_OK) == -1))) { + return ssh_krb5_kuserok(krb_context, principal, luser, + k5login_exists); + } +diff -up openssh-7.4p1/servconf.c.GSSAPIEnablek5users openssh-7.4p1/servconf.c +--- openssh-7.4p1/servconf.c.GSSAPIEnablek5users 2016-12-23 15:18:40.615216100 +0100 ++++ openssh-7.4p1/servconf.c 2016-12-23 15:35:36.354401156 +0100 +@@ -168,6 +168,7 @@ initialize_server_options(ServerOptions + options->gss_strict_acceptor = -1; + options->gss_store_rekey = -1; + options->use_kuserok = -1; ++ options->enable_k5users = -1; + options->password_authentication = -1; + options->kbd_interactive_authentication = -1; + options->challenge_response_authentication = -1; +@@ -345,6 +346,8 @@ fill_default_server_options(ServerOption + options->gss_store_rekey = 0; + if (options->use_kuserok == -1) + options->use_kuserok = 1; ++ if (options->enable_k5users == -1) ++ options->enable_k5users = 0; + if (options->password_authentication == -1) + options->password_authentication = 1; + if (options->kbd_interactive_authentication == -1) +@@ -418,7 +421,7 @@ typedef enum { + sHostbasedUsesNameFromPacketOnly, sHostbasedAcceptedKeyTypes, + sHostKeyAlgorithms, + sClientAliveInterval, sClientAliveCountMax, sAuthorizedKeysFile, +- sGssAuthentication, sGssCleanupCreds, sGssStrictAcceptor, ++ sGssAuthentication, sGssCleanupCreds, sGssEnablek5users, sGssStrictAcceptor, + sGssKeyEx, sGssStoreRekey, sAcceptEnv, sSetEnv, sPermitTunnel, + sMatch, sPermitOpen, sPermitListen, sForceCommand, sChrootDirectory, + sUsePrivilegeSeparation, sAllowAgentForwarding, +@@ -497,12 +500,14 @@ static struct { + { "gssapistrictacceptorcheck", sGssStrictAcceptor, SSHCFG_GLOBAL }, + { "gssapikeyexchange", sGssKeyEx, SSHCFG_GLOBAL }, + { "gssapistorecredentialsonrekey", sGssStoreRekey, SSHCFG_GLOBAL }, ++ { "gssapienablek5users", sGssEnablek5users, SSHCFG_ALL }, + #else + { "gssapiauthentication", sUnsupported, SSHCFG_ALL }, + { "gssapicleanupcredentials", sUnsupported, SSHCFG_GLOBAL }, + { "gssapistrictacceptorcheck", sUnsupported, SSHCFG_GLOBAL }, + { "gssapikeyexchange", sUnsupported, SSHCFG_GLOBAL }, + { "gssapistorecredentialsonrekey", sUnsupported, SSHCFG_GLOBAL }, ++ { "gssapienablek5users", sUnsupported, SSHCFG_ALL }, + #endif + { "gssusesessionccache", sUnsupported, SSHCFG_GLOBAL }, + { "gssapiusesessioncredcache", sUnsupported, SSHCFG_GLOBAL }, +@@ -1653,6 +1658,10 @@ process_server_config_line(ServerOptions + intptr = &options->use_kuserok; + goto parse_flag; + ++ case sGssEnablek5users: ++ intptr = &options->enable_k5users; ++ goto parse_flag; ++ + case sPermitListen: + case sPermitOpen: + if (opcode == sPermitListen) { +@@ -2026,6 +2035,7 @@ copy_set_server_options(ServerOptions *d + M_CP_INTOPT(ip_qos_interactive); + M_CP_INTOPT(ip_qos_bulk); + M_CP_INTOPT(use_kuserok); ++ M_CP_INTOPT(enable_k5users); + M_CP_INTOPT(rekey_limit); + M_CP_INTOPT(rekey_interval); + M_CP_INTOPT(log_level); +@@ -2320,6 +2330,7 @@ dump_config(ServerOptions *o) + # endif + dump_cfg_fmtint(sKerberosUniqueTicket, o->kerberos_unique_ticket); + dump_cfg_fmtint(sKerberosUseKuserok, o->use_kuserok); ++ dump_cfg_fmtint(sGssEnablek5users, o->enable_k5users); + #endif + #ifdef GSSAPI + dump_cfg_fmtint(sGssAuthentication, o->gss_authentication); +diff -up openssh-7.4p1/servconf.h.GSSAPIEnablek5users openssh-7.4p1/servconf.h +--- openssh-7.4p1/servconf.h.GSSAPIEnablek5users 2016-12-23 15:18:40.616216100 +0100 ++++ openssh-7.4p1/servconf.h 2016-12-23 15:18:40.629216102 +0100 +@@ -174,6 +174,7 @@ typedef struct { + int kerberos_unique_ticket; /* If true, the aquired ticket will + * be stored in per-session ccache */ + int use_kuserok; ++ int enable_k5users; + int gss_authentication; /* If true, permit GSSAPI authentication */ + int gss_keyex; /* If true, permit GSSAPI key exchange */ + int gss_cleanup_creds; /* If true, destroy cred cache on logout */ +diff -up openssh-7.4p1/sshd_config.5.GSSAPIEnablek5users openssh-7.4p1/sshd_config.5 +--- openssh-7.4p1/sshd_config.5.GSSAPIEnablek5users 2016-12-23 15:18:40.630216103 +0100 ++++ openssh-7.4p1/sshd_config.5 2016-12-23 15:36:21.607408435 +0100 +@@ -628,6 +628,12 @@ Specifies whether to automatically destr + on logout. + The default is + .Cm yes . ++.It Cm GSSAPIEnablek5users ++Specifies whether to look at .k5users file for GSSAPI authentication ++access control. Further details are described in ++.Xr ksu 1 . ++The default is ++.Cm no . + .It Cm GSSAPIKeyExchange + Specifies whether key exchange based on GSSAPI is allowed. GSSAPI key exchange + doesn't rely on ssh keys to verify host identity. +diff -up openssh-7.4p1/sshd_config.GSSAPIEnablek5users openssh-7.4p1/sshd_config +--- openssh-7.4p1/sshd_config.GSSAPIEnablek5users 2016-12-23 15:18:40.616216100 +0100 ++++ openssh-7.4p1/sshd_config 2016-12-23 15:18:40.631216103 +0100 +@@ -80,6 +80,7 @@ GSSAPIAuthentication yes + GSSAPICleanupCredentials no + #GSSAPIStrictAcceptorCheck yes + #GSSAPIKeyExchange no ++#GSSAPIEnablek5users no + + # Set this to 'yes' to enable PAM authentication, account processing, + # and session processing. If this is enabled, PAM authentication will diff --git a/openssh-6.6p1-allow-ip-opts.patch b/openssh-6.6p1-allow-ip-opts.patch new file mode 100644 index 0000000..953d613 --- /dev/null +++ b/openssh-6.6p1-allow-ip-opts.patch @@ -0,0 +1,39 @@ +diff -up openssh/sshd.c.ip-opts openssh/sshd.c +--- openssh/sshd.c.ip-opts 2016-07-25 13:58:48.998507834 +0200 ++++ openssh/sshd.c 2016-07-25 14:01:28.346469878 +0200 +@@ -1507,12 +1507,29 @@ check_ip_options(struct ssh *ssh) + + if (getsockopt(sock_in, IPPROTO_IP, IP_OPTIONS, opts, + &option_size) >= 0 && option_size != 0) { +- text[0] = '\0'; +- for (i = 0; i < option_size; i++) +- snprintf(text + i*3, sizeof(text) - i*3, +- " %2.2x", opts[i]); +- fatal("Connection from %.100s port %d with IP opts: %.800s", +- ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), text); ++ i = 0; ++ do { ++ switch (opts[i]) { ++ case 0: ++ case 1: ++ ++i; ++ break; ++ case 130: ++ case 133: ++ case 134: ++ i += opts[i + 1]; ++ break; ++ default: ++ /* Fail, fatally, if we detect either loose or strict ++ * source routing options. */ ++ text[0] = '\0'; ++ for (i = 0; i < option_size; i++) ++ snprintf(text + i*3, sizeof(text) - i*3, ++ " %2.2x", opts[i]); ++ fatal("Connection from %.100s port %d with IP options:%.800s", ++ ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), text); ++ } ++ } while (i < option_size); + } + return; + #endif /* IP_OPTIONS */ diff --git a/openssh-6.6p1-ctr-cavstest.patch b/openssh-6.6p1-ctr-cavstest.patch new file mode 100644 index 0000000..c56313d --- /dev/null +++ b/openssh-6.6p1-ctr-cavstest.patch @@ -0,0 +1,257 @@ +diff -up openssh-6.8p1/Makefile.in.ctr-cavs openssh-6.8p1/Makefile.in +--- openssh-6.8p1/Makefile.in.ctr-cavs 2015-03-18 11:22:05.493289018 +0100 ++++ openssh-6.8p1/Makefile.in 2015-03-18 11:22:44.504196316 +0100 +@@ -28,6 +28,7 @@ SSH_KEYSIGN=$(libexecdir)/ssh-keysign + SSH_LDAP_HELPER=$(libexecdir)/ssh-ldap-helper + SSH_LDAP_WRAPPER=$(libexecdir)/ssh-ldap-wrapper + SSH_KEYCAT=$(libexecdir)/ssh-keycat ++CTR_CAVSTEST=$(libexecdir)/ctr-cavstest + SSH_PKCS11_HELPER=$(libexecdir)/ssh-pkcs11-helper + PRIVSEP_PATH=@PRIVSEP_PATH@ + SSH_PRIVSEP_USER=@SSH_PRIVSEP_USER@ +@@ -66,7 +67,7 @@ EXEEXT=@EXEEXT@ + MKDIR_P=@MKDIR_P@ + INSTALL_SSH_LDAP_HELPER=@INSTALL_SSH_LDAP_HELPER@ + +-TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT) ssh-ldap-helper$(EXEEXT) ssh-keycat$(EXEEXT) ++TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT) ssh-ldap-helper$(EXEEXT) ssh-keycat$(EXEEXT) ctr-cavstest$(EXEEXT) + + XMSS_OBJS=\ + ssh-xmss.o \ +@@ -194,6 +195,9 @@ ssh-ldap-helper$(EXEEXT): $(LIBCOMPAT) l + ssh-keycat$(EXEEXT): $(LIBCOMPAT) $(SSHDOBJS) libssh.a ssh-keycat.o uidswap.o + $(LD) -o $@ ssh-keycat.o uidswap.o $(LDFLAGS) -lssh -lopenbsd-compat -lfipscheck $(KEYCATLIBS) $(LIBS) + ++ctr-cavstest$(EXEEXT): $(LIBCOMPAT) libssh.a ctr-cavstest.o ++ $(LD) -o $@ ctr-cavstest.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lfipscheck $(LIBS) ++ + ssh-keyscan$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keyscan.o + $(LD) -o $@ ssh-keyscan.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) + +@@ -326,6 +330,7 @@ install-files: + $(INSTALL) -m 0700 ssh-ldap-wrapper $(DESTDIR)$(SSH_LDAP_WRAPPER) ; \ + fi + $(INSTALL) -m 0755 $(STRIP_OPT) ssh-keycat$(EXEEXT) $(DESTDIR)$(libexecdir)/ssh-keycat$(EXEEXT) ++ $(INSTALL) -m 0755 $(STRIP_OPT) ctr-cavstest$(EXEEXT) $(DESTDIR)$(libexecdir)/ctr-cavstest$(EXEEXT) + $(INSTALL) -m 0755 $(STRIP_OPT) sftp$(EXEEXT) $(DESTDIR)$(bindir)/sftp$(EXEEXT) + $(INSTALL) -m 0755 $(STRIP_OPT) sftp-server$(EXEEXT) $(DESTDIR)$(SFTP_SERVER)$(EXEEXT) + $(INSTALL) -m 644 ssh.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh.1 +diff -up openssh-6.8p1/ctr-cavstest.c.ctr-cavs openssh-6.8p1/ctr-cavstest.c +--- openssh-6.8p1/ctr-cavstest.c.ctr-cavs 2015-03-18 11:22:05.521288952 +0100 ++++ openssh-6.8p1/ctr-cavstest.c 2015-03-18 11:22:05.521288952 +0100 +@@ -0,0 +1,215 @@ ++/* ++ * ++ * invocation (all of the following are equal): ++ * ./ctr-cavstest --algo aes128-ctr --key 987212980144b6a632e864031f52dacc --mode encrypt --data a6deca405eef2e8e4609abf3c3ccf4a6 ++ * ./ctr-cavstest --algo aes128-ctr --key 987212980144b6a632e864031f52dacc --mode encrypt --data a6deca405eef2e8e4609abf3c3ccf4a6 --iv 00000000000000000000000000000000 ++ * echo -n a6deca405eef2e8e4609abf3c3ccf4a6 | ./ctr-cavstest --algo aes128-ctr --key 987212980144b6a632e864031f52dacc --mode encrypt ++ */ ++ ++#include "includes.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "xmalloc.h" ++#include "log.h" ++#include "ssherr.h" ++#include "cipher.h" ++ ++/* compatibility with old or broken OpenSSL versions */ ++#include "openbsd-compat/openssl-compat.h" ++ ++void usage(void) { ++ fprintf(stderr, "Usage: ctr-cavstest --algo \n" ++ " --key --mode \n" ++ " [--iv ] --data \n\n" ++ "Hexadecimal output is printed to stdout.\n" ++ "Hexadecimal input data can be alternatively read from stdin.\n"); ++ exit(1); ++} ++ ++void *fromhex(char *hex, size_t *len) ++{ ++ unsigned char *bin; ++ char *p; ++ size_t n = 0; ++ int shift = 4; ++ unsigned char out = 0; ++ unsigned char *optr; ++ ++ bin = xmalloc(strlen(hex)/2); ++ optr = bin; ++ ++ for (p = hex; *p != '\0'; ++p) { ++ unsigned char c; ++ ++ c = *p; ++ if (isspace(c)) ++ continue; ++ ++ if (c >= '0' && c <= '9') { ++ c = c - '0'; ++ } else if (c >= 'A' && c <= 'F') { ++ c = c - 'A' + 10; ++ } else if (c >= 'a' && c <= 'f') { ++ c = c - 'a' + 10; ++ } else { ++ /* truncate on nonhex cipher */ ++ break; ++ } ++ ++ out |= c << shift; ++ shift = (shift + 4) % 8; ++ ++ if (shift) { ++ *(optr++) = out; ++ out = 0; ++ ++n; ++ } ++ } ++ ++ *len = n; ++ return bin; ++} ++ ++#define READ_CHUNK 4096 ++#define MAX_READ_SIZE 1024*1024*100 ++char *read_stdin(void) ++{ ++ char *buf; ++ size_t n, total = 0; ++ ++ buf = xmalloc(READ_CHUNK); ++ ++ do { ++ n = fread(buf + total, 1, READ_CHUNK, stdin); ++ if (n < READ_CHUNK) /* terminate on short read */ ++ break; ++ ++ total += n; ++ buf = xreallocarray(buf, total + READ_CHUNK, 1); ++ } while(total < MAX_READ_SIZE); ++ return buf; ++} ++ ++int main (int argc, char *argv[]) ++{ ++ ++ const struct sshcipher *c; ++ struct sshcipher_ctx *cc; ++ char *algo = "aes128-ctr"; ++ char *hexkey = NULL; ++ char *hexiv = "00000000000000000000000000000000"; ++ char *hexdata = NULL; ++ char *p; ++ int i, r; ++ int encrypt = 1; ++ void *key; ++ size_t keylen; ++ void *iv; ++ size_t ivlen; ++ void *data; ++ size_t datalen; ++ void *outdata; ++ ++ for (i = 1; i < argc; ++i) { ++ if (strcmp(argv[i], "--algo") == 0) { ++ algo = argv[++i]; ++ } else if (strcmp(argv[i], "--key") == 0) { ++ hexkey = argv[++i]; ++ } else if (strcmp(argv[i], "--mode") == 0) { ++ ++i; ++ if (argv[i] == NULL) { ++ usage(); ++ } ++ if (strncmp(argv[i], "enc", 3) == 0) { ++ encrypt = 1; ++ } else if (strncmp(argv[i], "dec", 3) == 0) { ++ encrypt = 0; ++ } else { ++ usage(); ++ } ++ } else if (strcmp(argv[i], "--iv") == 0) { ++ hexiv = argv[++i]; ++ } else if (strcmp(argv[i], "--data") == 0) { ++ hexdata = argv[++i]; ++ } ++ } ++ ++ if (hexkey == NULL || algo == NULL) { ++ usage(); ++ } ++ ++ SSLeay_add_all_algorithms(); ++ ++ c = cipher_by_name(algo); ++ if (c == NULL) { ++ fprintf(stderr, "Error: unknown algorithm\n"); ++ return 2; ++ } ++ ++ if (hexdata == NULL) { ++ hexdata = read_stdin(); ++ } else { ++ hexdata = xstrdup(hexdata); ++ } ++ ++ key = fromhex(hexkey, &keylen); ++ ++ if (keylen != 16 && keylen != 24 && keylen == 32) { ++ fprintf(stderr, "Error: unsupported key length\n"); ++ return 2; ++ } ++ ++ iv = fromhex(hexiv, &ivlen); ++ ++ if (ivlen != 16) { ++ fprintf(stderr, "Error: unsupported iv length\n"); ++ return 2; ++ } ++ ++ data = fromhex(hexdata, &datalen); ++ ++ if (data == NULL || datalen == 0) { ++ fprintf(stderr, "Error: no data to encrypt/decrypt\n"); ++ return 2; ++ } ++ ++ if ((r = cipher_init(&cc, c, key, keylen, iv, ivlen, encrypt)) != 0) { ++ fprintf(stderr, "Error: cipher_init failed: %s\n", ssh_err(r)); ++ return 2; ++ } ++ ++ free(key); ++ free(iv); ++ ++ outdata = malloc(datalen); ++ if(outdata == NULL) { ++ fprintf(stderr, "Error: memory allocation failure\n"); ++ return 2; ++ } ++ ++ if ((r = cipher_crypt(cc, 0, outdata, data, datalen, 0, 0)) != 0) { ++ fprintf(stderr, "Error: cipher_crypt failed: %s\n", ssh_err(r)); ++ return 2; ++ } ++ ++ free(data); ++ ++ cipher_free(cc); ++ ++ for (p = outdata; datalen > 0; ++p, --datalen) { ++ printf("%02X", (unsigned char)*p); ++ } ++ ++ free(outdata); ++ ++ printf("\n"); ++ return 0; ++} ++ diff --git a/openssh-6.6p1-force_krb.patch b/openssh-6.6p1-force_krb.patch new file mode 100644 index 0000000..aeee77f --- /dev/null +++ b/openssh-6.6p1-force_krb.patch @@ -0,0 +1,280 @@ +diff --git a/gss-serv-krb5.c b/gss-serv-krb5.c +index 413b845..54dd383 100644 +--- a/gss-serv-krb5.c ++++ b/gss-serv-krb5.c +@@ -32,7 +32,9 @@ + #include + + #include ++#include + #include ++#include + + #include "xmalloc.h" + #include "sshkey.h" +@@ -45,6 +47,7 @@ + + #include "ssh-gss.h" + ++extern Authctxt *the_authctxt; + extern ServerOptions options; + + #ifdef HEIMDAL +@@ -56,6 +59,13 @@ extern ServerOptions options; + # include + #endif + ++/* all commands are allowed by default */ ++char **k5users_allowed_cmds = NULL; ++ ++static int ssh_gssapi_k5login_exists(); ++static int ssh_gssapi_krb5_cmdok(krb5_principal, const char *, const char *, ++ int); ++ + static krb5_context krb_context = NULL; + + /* Initialise the krb5 library, for the stuff that GSSAPI won't do */ +@@ -88,6 +98,7 @@ ssh_gssapi_krb5_userok(ssh_gssapi_client *client, char *name) + krb5_principal princ; + int retval; + const char *errmsg; ++ int k5login_exists; + + if (ssh_gssapi_krb5_init() == 0) + return 0; +@@ -99,10 +110,22 @@ ssh_gssapi_krb5_userok(ssh_gssapi_client *client, char *name) + krb5_free_error_message(krb_context, errmsg); + return 0; + } +- if (krb5_kuserok(krb_context, princ, name)) { ++ /* krb5_kuserok() returns 1 if .k5login DNE and this is self-login. ++ * We have to make sure to check .k5users in that case. */ ++ k5login_exists = ssh_gssapi_k5login_exists(); ++ /* NOTE: .k5login and .k5users must opened as root, not the user, ++ * because if they are on a krb5-protected filesystem, user credentials ++ * to access these files aren't available yet. */ ++ if (krb5_kuserok(krb_context, princ, name) && k5login_exists) { + retval = 1; + logit("Authorized to %s, krb5 principal %s (krb5_kuserok)", + name, (char *)client->displayname.value); ++ } else if (ssh_gssapi_krb5_cmdok(princ, client->exportedname.value, ++ name, k5login_exists)) { ++ retval = 1; ++ logit("Authorized to %s, krb5 principal %s " ++ "(ssh_gssapi_krb5_cmdok)", ++ name, (char *)client->displayname.value); + } else + retval = 0; + +@@ -110,6 +133,137 @@ ssh_gssapi_krb5_userok(ssh_gssapi_client *client, char *name) + return retval; + } + ++/* Test for existence of .k5login. ++ * We need this as part of our .k5users check, because krb5_kuserok() ++ * returns success if .k5login DNE and user is logging in as himself. ++ * With .k5login absent and .k5users present, we don't want absence ++ * of .k5login to authorize self-login. (absence of both is required) ++ * Returns 1 if .k5login is available, 0 otherwise. ++ */ ++static int ++ssh_gssapi_k5login_exists() ++{ ++ char file[MAXPATHLEN]; ++ struct passwd *pw = the_authctxt->pw; ++ ++ snprintf(file, sizeof(file), "%s/.k5login", pw->pw_dir); ++ return access(file, F_OK) == 0; ++} ++ ++/* check .k5users for login or command authorization ++ * Returns 1 if principal is authorized, 0 otherwise. ++ * If principal is authorized, (global) k5users_allowed_cmds may be populated. ++ */ ++static int ++ssh_gssapi_krb5_cmdok(krb5_principal principal, const char *name, ++ const char *luser, int k5login_exists) ++{ ++ FILE *fp; ++ char file[MAXPATHLEN]; ++ char *line = NULL; ++ char kuser[65]; /* match krb5_kuserok() */ ++ struct stat st; ++ struct passwd *pw = the_authctxt->pw; ++ int found_principal = 0; ++ int ncommands = 0, allcommands = 0; ++ u_long linenum = 0; ++ size_t linesize = 0; ++ ++ snprintf(file, sizeof(file), "%s/.k5users", pw->pw_dir); ++ /* If both .k5login and .k5users DNE, self-login is ok. */ ++ if (!k5login_exists && (access(file, F_OK) == -1)) { ++ return (krb5_aname_to_localname(krb_context, principal, ++ sizeof(kuser), kuser) == 0) && ++ (strcmp(kuser, luser) == 0); ++ } ++ if ((fp = fopen(file, "r")) == NULL) { ++ int saved_errno = errno; ++ /* 2nd access check to ease debugging if file perms are wrong. ++ * But we don't want to report this if .k5users simply DNE. */ ++ if (access(file, F_OK) == 0) { ++ logit("User %s fopen %s failed: %s", ++ pw->pw_name, file, strerror(saved_errno)); ++ } ++ return 0; ++ } ++ /* .k5users must be owned either by the user or by root */ ++ if (fstat(fileno(fp), &st) == -1) { ++ /* can happen, but very wierd error so report it */ ++ logit("User %s fstat %s failed: %s", ++ pw->pw_name, file, strerror(errno)); ++ fclose(fp); ++ return 0; ++ } ++ if (!(st.st_uid == pw->pw_uid || st.st_uid == 0)) { ++ logit("User %s %s is not owned by root or user", ++ pw->pw_name, file); ++ fclose(fp); ++ return 0; ++ } ++ /* .k5users must be a regular file. krb5_kuserok() doesn't do this ++ * check, but we don't want to be deficient if they add a check. */ ++ if (!S_ISREG(st.st_mode)) { ++ logit("User %s %s is not a regular file", pw->pw_name, file); ++ fclose(fp); ++ return 0; ++ } ++ /* file exists; initialize k5users_allowed_cmds (to none!) */ ++ k5users_allowed_cmds = xcalloc(++ncommands, ++ sizeof(*k5users_allowed_cmds)); ++ ++ /* Check each line. ksu allows unlimited length lines. */ ++ while (!allcommands && getline(&line, &linesize, fp) != -1) { ++ linenum++; ++ char *token; ++ ++ /* we parse just like ksu, even though we could do better */ ++ if ((token = strtok(line, " \t\n")) == NULL) ++ continue; ++ if (strcmp(name, token) == 0) { ++ /* we matched on client principal */ ++ found_principal = 1; ++ if ((token = strtok(NULL, " \t\n")) == NULL) { ++ /* only shell is allowed */ ++ k5users_allowed_cmds[ncommands-1] = ++ xstrdup(pw->pw_shell); ++ k5users_allowed_cmds = ++ xreallocarray(k5users_allowed_cmds, ++ncommands, ++ sizeof(*k5users_allowed_cmds)); ++ break; ++ } ++ /* process the allowed commands */ ++ while (token) { ++ if (strcmp(token, "*") == 0) { ++ allcommands = 1; ++ break; ++ } ++ k5users_allowed_cmds[ncommands-1] = ++ xstrdup(token); ++ k5users_allowed_cmds = ++ xreallocarray(k5users_allowed_cmds, ++ncommands, ++ sizeof(*k5users_allowed_cmds)); ++ token = strtok(NULL, " \t\n"); ++ } ++ } ++ } ++ free(line); ++ if (k5users_allowed_cmds) { ++ /* terminate vector */ ++ k5users_allowed_cmds[ncommands-1] = NULL; ++ /* if all commands are allowed, free vector */ ++ if (allcommands) { ++ int i; ++ for (i = 0; i < ncommands; i++) { ++ free(k5users_allowed_cmds[i]); ++ } ++ free(k5users_allowed_cmds); ++ k5users_allowed_cmds = NULL; ++ } ++ } ++ fclose(fp); ++ return found_principal; ++} ++ + + /* This writes out any forwarded credentials from the structure populated + * during userauth. Called after we have setuid to the user */ +diff --git a/session.c b/session.c +index 28659ec..9c94d8e 100644 +--- a/session.c ++++ b/session.c +@@ -789,6 +789,29 @@ do_exec(Session *s, const char *command) + command = auth_opts->force_command; + forced = "(key-option)"; + } ++#ifdef GSSAPI ++#ifdef KRB5 /* k5users_allowed_cmds only available w/ GSSAPI+KRB5 */ ++ else if (k5users_allowed_cmds) { ++ const char *match = command; ++ int allowed = 0, i = 0; ++ ++ if (!match) ++ match = s->pw->pw_shell; ++ while (k5users_allowed_cmds[i]) { ++ if (strcmp(match, k5users_allowed_cmds[i++]) == 0) { ++ debug("Allowed command '%.900s'", match); ++ allowed = 1; ++ break; ++ } ++ } ++ if (!allowed) { ++ debug("command '%.900s' not allowed", match); ++ return 1; ++ } ++ } ++#endif ++#endif ++ + if (forced != NULL) { + if (IS_INTERNAL_SFTP(command)) { + s->is_subsystem = s->is_subsystem ? +diff --git a/ssh-gss.h b/ssh-gss.h +index 0374c88..509109a 100644 +--- a/ssh-gss.h ++++ b/ssh-gss.h +@@ -49,6 +49,10 @@ + # endif /* !HAVE_DECL_GSS_C_NT_... */ + + # endif /* !HEIMDAL */ ++ ++/* .k5users support */ ++extern char **k5users_allowed_cmds; ++ + #endif /* KRB5 */ + + /* draft-ietf-secsh-gsskeyex-06 */ +diff --git a/sshd.8 b/sshd.8 +index adcaaf9..824163b 100644 +--- a/sshd.8 ++++ b/sshd.8 +@@ -324,6 +324,7 @@ Finally, the server and the client enter an authentication dialog. + The client tries to authenticate itself using + host-based authentication, + public key authentication, ++GSSAPI authentication, + challenge-response authentication, + or password authentication. + .Pp +@@ -800,6 +801,12 @@ This file is used in exactly the same way as + but allows host-based authentication without permitting login with + rlogin/rsh. + .Pp ++.It Pa ~/.k5login ++.It Pa ~/.k5users ++These files enforce GSSAPI/Kerberos authentication access control. ++Further details are described in ++.Xr ksu 1 . ++.Pp + .It Pa ~/.ssh/ + This directory is the default location for all user-specific configuration + and authentication information. diff --git a/openssh-6.6p1-keycat.patch b/openssh-6.6p1-keycat.patch new file mode 100644 index 0000000..e22a5f3 --- /dev/null +++ b/openssh-6.6p1-keycat.patch @@ -0,0 +1,485 @@ +diff -up openssh/auth.c.keycat openssh/misc.c +--- openssh/auth.c.keycat 2015-06-24 10:57:50.158849606 +0200 ++++ openssh/auth.c 2015-06-24 11:04:23.989868638 +0200 +@@ -966,6 +966,14 @@ subprocess(const char *tag, struct passw + _exit(1); + } + ++#ifdef WITH_SELINUX ++ if (sshd_selinux_setup_env_variables() < 0) { ++ error ("failed to copy environment: %s", ++ strerror(errno)); ++ _exit(127); ++ } ++#endif ++ + execve(av[0], av, child_env); + error("%s exec \"%s\": %s", tag, command, strerror(errno)); + _exit(127); +diff -up openssh/HOWTO.ssh-keycat.keycat openssh/HOWTO.ssh-keycat +--- openssh/HOWTO.ssh-keycat.keycat 2015-06-24 10:57:50.157849608 +0200 ++++ openssh/HOWTO.ssh-keycat 2015-06-24 10:57:50.157849608 +0200 +@@ -0,0 +1,12 @@ ++The ssh-keycat retrieves the content of the ~/.ssh/authorized_keys ++of an user in any environment. This includes environments with ++polyinstantiation of home directories and SELinux MLS policy enabled. ++ ++To use ssh-keycat, set these options in /etc/ssh/sshd_config file: ++ AuthorizedKeysCommand /usr/libexec/openssh/ssh-keycat ++ AuthorizedKeysCommandUser root ++ ++Do not forget to enable public key authentication: ++ PubkeyAuthentication yes ++ ++ +diff -up openssh/Makefile.in.keycat openssh/Makefile.in +--- openssh/Makefile.in.keycat 2015-06-24 10:57:50.152849621 +0200 ++++ openssh/Makefile.in 2015-06-24 10:57:50.157849608 +0200 +@@ -27,6 +27,7 @@ SFTP_SERVER=$(libexecdir)/sftp-server + SSH_KEYSIGN=$(libexecdir)/ssh-keysign + SSH_LDAP_HELPER=$(libexecdir)/ssh-ldap-helper + SSH_LDAP_WRAPPER=$(libexecdir)/ssh-ldap-wrapper ++SSH_KEYCAT=$(libexecdir)/ssh-keycat + SSH_PKCS11_HELPER=$(libexecdir)/ssh-pkcs11-helper + PRIVSEP_PATH=@PRIVSEP_PATH@ + SSH_PRIVSEP_USER=@SSH_PRIVSEP_USER@ +@@ -52,6 +52,7 @@ K5LIBS=@K5LIBS@ + GSSLIBS=@GSSLIBS@ + SSHLIBS=@SSHLIBS@ + SSHDLIBS=@SSHDLIBS@ ++KEYCATLIBS=@KEYCATLIBS@ + LIBEDIT=@LIBEDIT@ + AR=@AR@ + AWK=@AWK@ +@@ -65,7 +66,7 @@ EXEEXT=@EXEEXT@ + MKDIR_P=@MKDIR_P@ + INSTALL_SSH_LDAP_HELPER=@INSTALL_SSH_LDAP_HELPER@ + +-TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT) ssh-ldap-helper$(EXEEXT) ++TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT) ssh-ldap-helper$(EXEEXT) ssh-keycat$(EXEEXT) + + XMSS_OBJS=\ + ssh-xmss.o \ +@@ -190,6 +191,9 @@ ssh-pkcs11-helper$(EXEEXT): $(LIBCOMPAT) + ssh-ldap-helper$(EXEEXT): $(LIBCOMPAT) libssh.a ldapconf.o ldapbody.o ldapmisc.o ldap-helper.o + $(LD) -o $@ ldapconf.o ldapbody.o ldapmisc.o ldap-helper.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat -lfipscheck $(LIBS) $(LDAPLIBS) + ++ssh-keycat$(EXEEXT): $(LIBCOMPAT) $(SSHDOBJS) libssh.a ssh-keycat.o uidswap.o ++ $(LD) -o $@ ssh-keycat.o uidswap.o $(LDFLAGS) -lssh -lopenbsd-compat -lfipscheck $(KEYCATLIBS) $(LIBS) ++ + ssh-keyscan$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keyscan.o + $(LD) -o $@ ssh-keyscan.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) + +@@ -321,6 +325,7 @@ install-files: + $(INSTALL) -m 0700 $(STRIP_OPT) ssh-ldap-helper $(DESTDIR)$(SSH_LDAP_HELPER) ; \ + $(INSTALL) -m 0700 ssh-ldap-wrapper $(DESTDIR)$(SSH_LDAP_WRAPPER) ; \ + fi ++ $(INSTALL) -m 0755 $(STRIP_OPT) ssh-keycat$(EXEEXT) $(DESTDIR)$(libexecdir)/ssh-keycat$(EXEEXT) + $(INSTALL) -m 0755 $(STRIP_OPT) sftp$(EXEEXT) $(DESTDIR)$(bindir)/sftp$(EXEEXT) + $(INSTALL) -m 0755 $(STRIP_OPT) sftp-server$(EXEEXT) $(DESTDIR)$(SFTP_SERVER)$(EXEEXT) + $(INSTALL) -m 644 ssh.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh.1 +diff -up openssh/openbsd-compat/port-linux.h.keycat openssh/openbsd-compat/port-linux.h +--- openssh/openbsd-compat/port-linux.h.keycat 2015-06-24 10:57:50.150849626 +0200 ++++ openssh/openbsd-compat/port-linux.h 2015-06-24 10:57:50.160849601 +0200 +@@ -25,8 +25,10 @@ void ssh_selinux_setup_pty(char *, const + void ssh_selinux_change_context(const char *); + void ssh_selinux_setfscreatecon(const char *); + ++int sshd_selinux_enabled(void); + void sshd_selinux_copy_context(void); + void sshd_selinux_setup_exec_context(char *); ++int sshd_selinux_setup_env_variables(void); + #endif + + #ifdef LINUX_OOM_ADJUST +diff -up openssh/openbsd-compat/port-linux-sshd.c.keycat openssh/openbsd-compat/port-linux-sshd.c +--- openssh/openbsd-compat/port-linux-sshd.c.keycat 2015-06-24 10:57:50.150849626 +0200 ++++ openssh/openbsd-compat/port-linux-sshd.c 2015-06-24 10:57:50.159849603 +0200 +@@ -54,6 +54,20 @@ extern Authctxt *the_authctxt; + extern int inetd_flag; + extern int rexeced_flag; + ++/* Wrapper around is_selinux_enabled() to log its return value once only */ ++int ++sshd_selinux_enabled(void) ++{ ++ static int enabled = -1; ++ ++ if (enabled == -1) { ++ enabled = (is_selinux_enabled() == 1); ++ debug("SELinux support %s", enabled ? "enabled" : "disabled"); ++ } ++ ++ return (enabled); ++} ++ + /* Send audit message */ + static int + sshd_selinux_send_audit_message(int success, security_context_t default_context, +@@ -308,7 +322,7 @@ sshd_selinux_getctxbyname(char *pwname, + + /* Setup environment variables for pam_selinux */ + static int +-sshd_selinux_setup_pam_variables(void) ++sshd_selinux_setup_variables(int(*set_it)(char *, const char *)) + { + const char *reqlvl; + char *role; +@@ -319,16 +333,16 @@ sshd_selinux_setup_pam_variables(void) + + ssh_selinux_get_role_level(&role, &reqlvl); + +- rv = do_pam_putenv("SELINUX_ROLE_REQUESTED", role ? role : ""); ++ rv = set_it("SELINUX_ROLE_REQUESTED", role ? role : ""); + + if (inetd_flag && !rexeced_flag) { + use_current = "1"; + } else { + use_current = ""; +- rv = rv || do_pam_putenv("SELINUX_LEVEL_REQUESTED", reqlvl ? reqlvl: ""); ++ rv = rv || set_it("SELINUX_LEVEL_REQUESTED", reqlvl ? reqlvl: ""); + } + +- rv = rv || do_pam_putenv("SELINUX_USE_CURRENT_RANGE", use_current); ++ rv = rv || set_it("SELINUX_USE_CURRENT_RANGE", use_current); + + if (role != NULL) + free(role); +@@ -336,6 +350,24 @@ sshd_selinux_setup_pam_variables(void) + return rv; + } + ++static int ++sshd_selinux_setup_pam_variables(void) ++{ ++ return sshd_selinux_setup_variables(do_pam_putenv); ++} ++ ++static int ++do_setenv(char *name, const char *value) ++{ ++ return setenv(name, value, 1); ++} ++ ++int ++sshd_selinux_setup_env_variables(void) ++{ ++ return sshd_selinux_setup_variables(do_setenv); ++} ++ + /* Set the execution context to the default for the specified user */ + void + sshd_selinux_setup_exec_context(char *pwname) +@@ -344,7 +376,7 @@ sshd_selinux_setup_exec_context(char *pw + int r = 0; + security_context_t default_ctx = NULL; + +- if (!ssh_selinux_enabled()) ++ if (!sshd_selinux_enabled()) + return; + + if (options.use_pam) { +@@ -415,7 +447,7 @@ sshd_selinux_copy_context(void) + { + security_context_t *ctx; + +- if (!ssh_selinux_enabled()) ++ if (!sshd_selinux_enabled()) + return; + + if (getexeccon((security_context_t *)&ctx) != 0) { +diff -up openssh/platform.c.keycat openssh/platform.c +--- openssh/platform.c.keycat 2015-06-24 10:57:50.147849633 +0200 ++++ openssh/platform.c 2015-06-24 10:57:50.160849601 +0200 +@@ -103,7 +103,7 @@ platform_setusercontext(struct passwd *p + { + #ifdef WITH_SELINUX + /* Cache selinux status for later use */ +- (void)ssh_selinux_enabled(); ++ (void)sshd_selinux_enabled(); + #endif + + #ifdef USE_SOLARIS_PROJECTS +diff -up openssh/ssh-keycat.c.keycat openssh/ssh-keycat.c +--- openssh/ssh-keycat.c.keycat 2015-06-24 10:57:50.161849599 +0200 ++++ openssh/ssh-keycat.c 2015-06-24 10:57:50.161849599 +0200 +@@ -0,0 +1,241 @@ ++/* ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, and the entire permission notice in its entirety, ++ * including the disclaimer of warranties. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote ++ * products derived from this software without specific prior ++ * written permission. ++ * ++ * ALTERNATIVELY, this product may be distributed under the terms of ++ * the GNU Public License, in which case the provisions of the GPL are ++ * required INSTEAD OF the above restrictions. (This clause is ++ * necessary due to a potential bad interaction between the GPL and ++ * the restrictions contained in a BSD-style copyright.) ++ * ++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED ++ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, ++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED ++ * OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++/* ++ * Copyright (c) 2011 Red Hat, Inc. ++ * Written by Tomas Mraz ++*/ ++ ++#define _GNU_SOURCE ++ ++#include "config.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef HAVE_STDINT_H ++#include ++#endif ++ ++#include ++ ++#include "uidswap.h" ++#include "misc.h" ++ ++#define ERR_USAGE 1 ++#define ERR_PAM_START 2 ++#define ERR_OPEN_SESSION 3 ++#define ERR_CLOSE_SESSION 4 ++#define ERR_PAM_END 5 ++#define ERR_GETPWNAM 6 ++#define ERR_MEMORY 7 ++#define ERR_OPEN 8 ++#define ERR_FILE_MODE 9 ++#define ERR_FDOPEN 10 ++#define ERR_STAT 11 ++#define ERR_WRITE 12 ++#define ERR_PAM_PUTENV 13 ++#define BUFLEN 4096 ++ ++/* Just ignore the messages in the conversation function */ ++static int ++dummy_conv(int num_msg, const struct pam_message **msgm, ++ struct pam_response **response, void *appdata_ptr) ++{ ++ struct pam_response *rsp; ++ ++ (void)msgm; ++ (void)appdata_ptr; ++ ++ if (num_msg <= 0) ++ return PAM_CONV_ERR; ++ ++ /* Just allocate the array as empty responses */ ++ rsp = calloc (num_msg, sizeof (struct pam_response)); ++ if (rsp == NULL) ++ return PAM_CONV_ERR; ++ ++ *response = rsp; ++ return PAM_SUCCESS; ++} ++ ++static struct pam_conv conv = { ++ dummy_conv, ++ NULL ++}; ++ ++char * ++make_auth_keys_name(const struct passwd *pwd) ++{ ++ char *fname; ++ ++ if (asprintf(&fname, "%s/.ssh/authorized_keys", pwd->pw_dir) < 0) ++ return NULL; ++ ++ return fname; ++} ++ ++int ++dump_keys(const char *user) ++{ ++ struct passwd *pwd; ++ int fd = -1; ++ FILE *f = NULL; ++ char *fname = NULL; ++ int rv = 0; ++ char buf[BUFLEN]; ++ size_t len; ++ struct stat st; ++ ++ if ((pwd = getpwnam(user)) == NULL) { ++ return ERR_GETPWNAM; ++ } ++ ++ if ((fname = make_auth_keys_name(pwd)) == NULL) { ++ return ERR_MEMORY; ++ } ++ ++ temporarily_use_uid(pwd); ++ ++ if ((fd = open(fname, O_RDONLY|O_NONBLOCK|O_NOFOLLOW, 0)) < 0) { ++ rv = ERR_OPEN; ++ goto fail; ++ } ++ ++ if (fstat(fd, &st) < 0) { ++ rv = ERR_STAT; ++ goto fail; ++ } ++ ++ if (!S_ISREG(st.st_mode) || ++ (st.st_uid != pwd->pw_uid && st.st_uid != 0)) { ++ rv = ERR_FILE_MODE; ++ goto fail; ++ } ++ ++ unset_nonblock(fd); ++ ++ if ((f = fdopen(fd, "r")) == NULL) { ++ rv = ERR_FDOPEN; ++ goto fail; ++ } ++ ++ fd = -1; ++ ++ while ((len = fread(buf, 1, sizeof(buf), f)) > 0) { ++ rv = fwrite(buf, 1, len, stdout) != len ? ERR_WRITE : 0; ++ } ++ ++fail: ++ if (fd != -1) ++ close(fd); ++ if (f != NULL) ++ fclose(f); ++ free(fname); ++ restore_uid(); ++ return rv; ++} ++ ++static const char *env_names[] = { "SELINUX_ROLE_REQUESTED", ++ "SELINUX_LEVEL_REQUESTED", ++ "SELINUX_USE_CURRENT_RANGE" ++}; ++ ++extern char **environ; ++ ++int ++set_pam_environment(pam_handle_t *pamh) ++{ ++ int i; ++ size_t j; ++ ++ for (j = 0; j < sizeof(env_names)/sizeof(env_names[0]); ++j) { ++ int len = strlen(env_names[j]); ++ ++ for (i = 0; environ[i] != NULL; ++i) { ++ if (strncmp(env_names[j], environ[i], len) == 0 && ++ environ[i][len] == '=') { ++ if (pam_putenv(pamh, environ[i]) != PAM_SUCCESS) ++ return ERR_PAM_PUTENV; ++ } ++ } ++ } ++ ++ return 0; ++} ++ ++int ++main(int argc, char *argv[]) ++{ ++ pam_handle_t *pamh = NULL; ++ int retval; ++ int ev = 0; ++ ++ if (argc != 2) { ++ fprintf(stderr, "Usage: %s \n", argv[0]); ++ return ERR_USAGE; ++ } ++ ++ retval = pam_start("ssh-keycat", argv[1], &conv, &pamh); ++ if (retval != PAM_SUCCESS) { ++ return ERR_PAM_START; ++ } ++ ++ ev = set_pam_environment(pamh); ++ if (ev != 0) ++ goto finish; ++ ++ retval = pam_open_session(pamh, PAM_SILENT); ++ if (retval != PAM_SUCCESS) { ++ ev = ERR_OPEN_SESSION; ++ goto finish; ++ } ++ ++ ev = dump_keys(argv[1]); ++ ++ retval = pam_close_session(pamh, PAM_SILENT); ++ if (retval != PAM_SUCCESS) { ++ ev = ERR_CLOSE_SESSION; ++ } ++ ++finish: ++ retval = pam_end (pamh,retval); ++ if (retval != PAM_SUCCESS) { ++ ev = ERR_PAM_END; ++ } ++ return ev; ++} +diff --git a/configure.ac b/configure.ac +index 3bbccfd..6481f1f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2952,6 +2952,7 @@ AC_ARG_WITH([pam], + PAM_MSG="yes" + + SSHDLIBS="$SSHDLIBS -lpam" ++ KEYCATLIBS="$KEYCATLIBS -lpam" + AC_DEFINE([USE_PAM], [1], + [Define if you want to enable PAM support]) + +@@ -3105,6 +3106,7 @@ + ;; + *) + SSHDLIBS="$SSHDLIBS -ldl" ++ KEYCATLIBS="$KEYCATLIBS -ldl" + ;; + esac + fi +@@ -4042,6 +4044,7 @@ AC_ARG_WITH([selinux], + ) + AC_SUBST([SSHLIBS]) + AC_SUBST([SSHDLIBS]) ++AC_SUBST([KEYCATLIBS]) + + # Check whether user wants Kerberos 5 support + KRB5_MSG="no" +@@ -5031,6 +5034,9 @@ fi + if test ! -z "${SSHLIBS}"; then + echo " +for ssh: ${SSHLIBS}" + fi ++if test ! -z "${KEYCATLIBS}"; then ++echo " +for ssh-keycat: ${KEYCATLIBS}" ++fi + + echo "" + diff --git a/openssh-6.6p1-keyperm.patch b/openssh-6.6p1-keyperm.patch new file mode 100644 index 0000000..fbe33b0 --- /dev/null +++ b/openssh-6.6p1-keyperm.patch @@ -0,0 +1,26 @@ +diff --git a/authfile.c b/authfile.c +index e93d867..4fc5b3d 100644 +--- a/authfile.c ++++ b/authfile.c +@@ -32,6 +32,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -207,6 +208,13 @@ sshkey_perm_ok(int fd, const char *filename) + #ifdef HAVE_CYGWIN + if (check_ntsec(filename)) + #endif ++ if (st.st_mode & 040) { ++ struct group *gr; ++ ++ if ((gr = getgrnam("ssh_keys")) && (st.st_gid == gr->gr_gid)) ++ st.st_mode &= ~040; ++ } ++ + if ((st.st_uid == getuid()) && (st.st_mode & 077) != 0) { + error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + error("@ WARNING: UNPROTECTED PRIVATE KEY FILE! @"); diff --git a/openssh-6.6p1-kuserok.patch b/openssh-6.6p1-kuserok.patch new file mode 100644 index 0000000..81ec2a4 --- /dev/null +++ b/openssh-6.6p1-kuserok.patch @@ -0,0 +1,289 @@ +diff -up openssh-7.4p1/auth-krb5.c.kuserok openssh-7.4p1/auth-krb5.c +--- openssh-7.4p1/auth-krb5.c.kuserok 2016-12-23 14:36:07.640465939 +0100 ++++ openssh-7.4p1/auth-krb5.c 2016-12-23 14:36:07.644465936 +0100 +@@ -56,6 +56,21 @@ + + extern ServerOptions options; + ++int ++ssh_krb5_kuserok(krb5_context krb5_ctx, krb5_principal krb5_user, const char *client, ++ int k5login_exists) ++{ ++ if (options.use_kuserok || !k5login_exists) ++ return krb5_kuserok(krb5_ctx, krb5_user, client); ++ else { ++ char kuser[65]; ++ ++ if (krb5_aname_to_localname(krb5_ctx, krb5_user, sizeof(kuser), kuser)) ++ return 0; ++ return strcmp(kuser, client) == 0; ++ } ++} ++ + static int + krb5_init(void *context) + { +@@ -160,8 +175,9 @@ auth_krb5_password(Authctxt *authctxt, c + if (problem) + goto out; + +- if (!krb5_kuserok(authctxt->krb5_ctx, authctxt->krb5_user, +- authctxt->pw->pw_name)) { ++ /* Use !options.use_kuserok here to make ssh_krb5_kuserok() not ++ * depend on the existance of .k5login */ ++ if (!ssh_krb5_kuserok(authctxt->krb5_ctx, authctxt->krb5_user, authctxt->pw->pw_name, !options.use_kuserok)) { + problem = -1; + goto out; + } +diff -up openssh-7.4p1/gss-serv-krb5.c.kuserok openssh-7.4p1/gss-serv-krb5.c +--- openssh-7.4p1/gss-serv-krb5.c.kuserok 2016-12-23 14:36:07.640465939 +0100 ++++ openssh-7.4p1/gss-serv-krb5.c 2016-12-23 14:36:07.644465936 +0100 +@@ -67,6 +67,7 @@ static int ssh_gssapi_krb5_cmdok(krb5_pr + int); + + static krb5_context krb_context = NULL; ++extern int ssh_krb5_kuserok(krb5_context, krb5_principal, const char *, int); + + /* Initialise the krb5 library, for the stuff that GSSAPI won't do */ + +@@ -92,6 +93,103 @@ ssh_gssapi_krb5_init(void) + * Returns true if the user is OK to log in, otherwise returns 0 + */ + ++/* The purpose of the function is to find out if a Kerberos principal is ++ * allowed to log in as the given local user. This is a general problem with ++ * Kerberized services because by design the Kerberos principals are ++ * completely independent from the local user names. This is one of the ++ * reasons why Kerberos is working well on different operating systems like ++ * Windows and UNIX/Linux. Nevertheless a relationship between a Kerberos ++ * principal and a local user name must be established because otherwise every ++ * access would be granted for every principal with a valid ticket. ++ * ++ * Since it is a general issue libkrb5 provides some functions for ++ * applications to find out about the relationship between the Kerberos ++ * principal and a local user name. They are krb5_kuserok() and ++ * krb5_aname_to_localname(). ++ * ++ * krb5_kuserok() can be used to "Determine if a principal is authorized to ++ * log in as a local user" (from the MIT Kerberos documentation of this ++ * function). Which is exactly what we are looking for and should be the ++ * preferred choice. It accepts the Kerberos principal and a local user name ++ * and let libkrb5 or its plugins determine if they relate to each other or ++ * not. ++ * ++ * krb5_aname_to_localname() can use used to "Convert a principal name to a ++ * local name" (from the MIT Kerberos documentation of this function). It ++ * accepts a Kerberos principle and returns a local name and it is up to the ++ * application to do any additional checks. There are two issues using ++ * krb5_aname_to_localname(). First, since POSIX user names are case ++ * sensitive, the calling application in general has no other choice than ++ * doing a case-sensitive string comparison between the name returned by ++ * krb5_aname_to_localname() and the name used at the login prompt. When the ++ * users are provided by a case in-sensitive server, e.g. Active Directory, ++ * this might lead to login failures because the user typing the name at the ++ * login prompt might not be aware of the right case. Another issue might be ++ * caused if there are multiple alias names available for a single user. E.g. ++ * the canonical name of a user is user@group.department.example.com but there ++ * exists a shorter login name, e.g. user@example.com, to safe typing at the ++ * login prompt. Here krb5_aname_to_localname() can only return the canonical ++ * name, but if the short alias is used at the login prompt authentication ++ * will fail as well. All this can be avoided by using krb5_kuserok() and ++ * configuring krb5.conf or using a suitable plugin to meet the needs of the ++ * given environment. ++ * ++ * The Fedora and RHEL version of openssh contain two patches which modify the ++ * access control behavior: ++ * - openssh-6.6p1-kuserok.patch ++ * - openssh-6.6p1-force_krb.patch ++ * ++ * openssh-6.6p1-kuserok.patch adds a new option KerberosUseKuserok for ++ * sshd_config which controls if krb5_kuserok() is used to check if the ++ * principle is authorized or if krb5_aname_to_localname() should be used. ++ * The reason to add this patch was that krb5_kuserok() by default checks if ++ * a .k5login file exits in the users home-directory. With this the user can ++ * give access to his account for any given principal which might be ++ * in violation with company policies and it would be useful if this can be ++ * rejected. Nevertheless the patch ignores the fact that krb5_kuserok() does ++ * no only check .k5login but other sources as well and checking .k5login can ++ * be disabled for all applications in krb5.conf as well. With this new ++ * option KerberosUseKuserok set to 'no' (and this is the default for RHEL7 ++ * and Fedora 21) openssh can only use krb5_aname_to_localname() with the ++ * restrictions mentioned above. ++ * ++ * openssh-6.6p1-force_krb.patch adds a ksu like behaviour to ssh, i.e. when ++ * using GSSAPI authentication only commands configured in the .k5user can be ++ * executed. Here the wrong assumption that krb5_kuserok() only checks ++ * .k5login is made as well. In contrast ksu checks .k5login directly and ++ * does not use krb5_kuserok() which might be more useful for the given ++ * purpose. Additionally this patch is not synced with ++ * openssh-6.6p1-kuserok.patch. ++ * ++ * The current patch tries to restore the usage of krb5_kuserok() so that e.g. ++ * localauth plugins can be used. It does so by adding a forth parameter to ++ * ssh_krb5_kuserok() which indicates whether .k5login exists or not. If it ++ * does not exists krb5_kuserok() is called even if KerberosUseKuserok is set ++ * to 'no' because the intent of the option is to not check .k5login and if it ++ * does not exists krb5_kuserok() returns a result without checking .k5login. ++ * If .k5login does exists and KerberosUseKuserok is 'no' we fall back to ++ * krb5_aname_to_localname(). This is in my point of view an acceptable ++ * limitation and does not break the current behaviour. ++ * ++ * Additionally with this patch ssh_krb5_kuserok() is called in ++ * ssh_gssapi_krb5_cmdok() instead of only krb5_aname_to_localname() is ++ * neither .k5login nor .k5users exists to allow plugin evaluation via ++ * krb5_kuserok() as well. ++ * ++ * I tried to keep the patch as minimal as possible, nevertheless I see some ++ * areas for improvement which, if they make sense, have to be evaluated ++ * carefully because they might change existing behaviour and cause breaks ++ * during upgrade: ++ * - I wonder if disabling .k5login usage make sense in sshd or if it should ++ * be better disabled globally in krb5.conf ++ * - if really needed openssh-6.6p1-kuserok.patch should be fixed to really ++ * only disable checking .k5login and maybe .k5users ++ * - the ksu behaviour should be configurable and maybe check the .k5login and ++ * .k5users files directly like ksu itself does ++ * - to make krb5_aname_to_localname() more useful an option for sshd to use ++ * the canonical name (the one returned by getpwnam()) instead of the name ++ * given at the login prompt might be useful */ ++ + static int + ssh_gssapi_krb5_userok(ssh_gssapi_client *client, char *name) + { +@@ -116,7 +214,8 @@ ssh_gssapi_krb5_userok(ssh_gssapi_client + /* NOTE: .k5login and .k5users must opened as root, not the user, + * because if they are on a krb5-protected filesystem, user credentials + * to access these files aren't available yet. */ +- if (krb5_kuserok(krb_context, princ, name) && k5login_exists) { ++ if (ssh_krb5_kuserok(krb_context, princ, name, k5login_exists) ++ && k5login_exists) { + retval = 1; + logit("Authorized to %s, krb5 principal %s (krb5_kuserok)", + name, (char *)client->displayname.value); +@@ -190,9 +289,8 @@ ssh_gssapi_krb5_cmdok(krb5_principal pri + snprintf(file, sizeof(file), "%s/.k5users", pw->pw_dir); + /* If both .k5login and .k5users DNE, self-login is ok. */ + if (!k5login_exists && (access(file, F_OK) == -1)) { +- return (krb5_aname_to_localname(krb_context, principal, +- sizeof(kuser), kuser) == 0) && +- (strcmp(kuser, luser) == 0); ++ return ssh_krb5_kuserok(krb_context, principal, luser, ++ k5login_exists); + } + if ((fp = fopen(file, "r")) == NULL) { + int saved_errno = errno; +diff -up openssh-7.4p1/servconf.c.kuserok openssh-7.4p1/servconf.c +--- openssh-7.4p1/servconf.c.kuserok 2016-12-23 14:36:07.630465944 +0100 ++++ openssh-7.4p1/servconf.c 2016-12-23 15:11:52.278133344 +0100 +@@ -116,6 +116,7 @@ initialize_server_options(ServerOptions + options->gss_cleanup_creds = -1; + options->gss_strict_acceptor = -1; + options->gss_store_rekey = -1; ++ options->use_kuserok = -1; + options->password_authentication = -1; + options->kbd_interactive_authentication = -1; + options->challenge_response_authentication = -1; +@@ -278,6 +279,8 @@ fill_default_server_options(ServerOption + options->gss_strict_acceptor = 1; + if (options->gss_store_rekey == -1) + options->gss_store_rekey = 0; ++ if (options->use_kuserok == -1) ++ options->use_kuserok = 1; + if (options->password_authentication == -1) + options->password_authentication = 1; + if (options->kbd_interactive_authentication == -1) +@@ -399,7 +402,7 @@ typedef enum { + sPermitRootLogin, sLogFacility, sLogLevel, + sRhostsRSAAuthentication, sRSAAuthentication, + sKerberosAuthentication, sKerberosOrLocalPasswd, sKerberosTicketCleanup, +- sKerberosGetAFSToken, sKerberosUniqueTicket, ++ sKerberosGetAFSToken, sKerberosUniqueTicket, sKerberosUseKuserok, + sChallengeResponseAuthentication, + sPasswordAuthentication, sKbdInteractiveAuthentication, + sListenAddress, sAddressFamily, +@@ -478,12 +481,14 @@ static struct { + { "kerberosgetafstoken", sUnsupported, SSHCFG_GLOBAL }, + #endif + { "kerberosuniqueticket", sKerberosUniqueTicket, SSHCFG_GLOBAL }, ++ { "kerberosusekuserok", sKerberosUseKuserok, SSHCFG_ALL }, + #else + { "kerberosauthentication", sUnsupported, SSHCFG_ALL }, + { "kerberosorlocalpasswd", sUnsupported, SSHCFG_GLOBAL }, + { "kerberosticketcleanup", sUnsupported, SSHCFG_GLOBAL }, + { "kerberosgetafstoken", sUnsupported, SSHCFG_GLOBAL }, + { "kerberosuniqueticket", sUnsupported, SSHCFG_GLOBAL }, ++ { "kerberosusekuserok", sUnsupported, SSHCFG_ALL }, + #endif + { "kerberostgtpassing", sUnsupported, SSHCFG_GLOBAL }, + { "afstokenpassing", sUnsupported, SSHCFG_GLOBAL }, +@@ -1644,6 +1649,10 @@ process_server_config_line(ServerOptions + *activep = value; + break; + ++ case sKerberosUseKuserok: ++ intptr = &options->use_kuserok; ++ goto parse_flag; ++ + case sPermitListen: + case sPermitOpen: + if (opcode == sPermitListen) { +@@ -2016,6 +2025,7 @@ copy_set_server_options(ServerOptions *d + M_CP_INTOPT(client_alive_interval); + M_CP_INTOPT(ip_qos_interactive); + M_CP_INTOPT(ip_qos_bulk); ++ M_CP_INTOPT(use_kuserok); + M_CP_INTOPT(rekey_limit); + M_CP_INTOPT(rekey_interval); + M_CP_INTOPT(log_level); +@@ -2309,6 +2319,7 @@ dump_config(ServerOptions *o) + dump_cfg_fmtint(sKerberosGetAFSToken, o->kerberos_get_afs_token); + # endif + dump_cfg_fmtint(sKerberosUniqueTicket, o->kerberos_unique_ticket); ++ dump_cfg_fmtint(sKerberosUseKuserok, o->use_kuserok); + #endif + #ifdef GSSAPI + dump_cfg_fmtint(sGssAuthentication, o->gss_authentication); +diff -up openssh-7.4p1/servconf.h.kuserok openssh-7.4p1/servconf.h +--- openssh-7.4p1/servconf.h.kuserok 2016-12-23 14:36:07.630465944 +0100 ++++ openssh-7.4p1/servconf.h 2016-12-23 14:36:07.645465936 +0100 +@@ -118,6 +118,7 @@ typedef struct { + * authenticated with Kerberos. */ + int kerberos_unique_ticket; /* If true, the aquired ticket will + * be stored in per-session ccache */ ++ int use_kuserok; + int gss_authentication; /* If true, permit GSSAPI authentication */ + int gss_keyex; /* If true, permit GSSAPI key exchange */ + int gss_cleanup_creds; /* If true, destroy cred cache on logout */ +diff -up openssh-7.4p1/sshd_config.5.kuserok openssh-7.4p1/sshd_config.5 +--- openssh-7.4p1/sshd_config.5.kuserok 2016-12-23 14:36:07.637465940 +0100 ++++ openssh-7.4p1/sshd_config.5 2016-12-23 15:14:03.117162222 +0100 +@@ -850,6 +850,10 @@ Specifies whether to automatically destr + tickets aquired in different sessions of the same user. + The default is + .Cm no . ++.It Cm KerberosUseKuserok ++Specifies whether to look at .k5login file for user's aliases. ++The default is ++.Cm yes . + .It Cm KexAlgorithms + Specifies the available KEX (Key Exchange) algorithms. + Multiple algorithms must be comma-separated. +@@ -1078,6 +1082,7 @@ Available keywords are + .Cm IPQoS , + .Cm KbdInteractiveAuthentication , + .Cm KerberosAuthentication , ++.Cm KerberosUseKuserok , + .Cm LogLevel , + .Cm MaxAuthTries , + .Cm MaxSessions , +diff -up openssh-7.4p1/sshd_config.kuserok openssh-7.4p1/sshd_config +--- openssh-7.4p1/sshd_config.kuserok 2016-12-23 14:36:07.631465943 +0100 ++++ openssh-7.4p1/sshd_config 2016-12-23 14:36:07.646465935 +0100 +@@ -73,6 +73,7 @@ ChallengeResponseAuthentication no + #KerberosOrLocalPasswd yes + #KerberosTicketCleanup yes + #KerberosGetAFSToken no ++#KerberosUseKuserok yes + + # GSSAPI options + GSSAPIAuthentication yes diff --git a/openssh-6.6p1-privsep-selinux.patch b/openssh-6.6p1-privsep-selinux.patch new file mode 100644 index 0000000..1365506 --- /dev/null +++ b/openssh-6.6p1-privsep-selinux.patch @@ -0,0 +1,121 @@ +diff -up openssh-7.4p1/openbsd-compat/port-linux.h.privsep-selinux openssh-7.4p1/openbsd-compat/port-linux.h +--- openssh-7.4p1/openbsd-compat/port-linux.h.privsep-selinux 2016-12-23 18:58:52.972122201 +0100 ++++ openssh-7.4p1/openbsd-compat/port-linux.h 2016-12-23 18:58:52.974122201 +0100 +@@ -23,6 +23,7 @@ void ssh_selinux_setup_pty(char *, const + void ssh_selinux_change_context(const char *); + void ssh_selinux_setfscreatecon(const char *); + ++void sshd_selinux_copy_context(void); + void sshd_selinux_setup_exec_context(char *); + #endif + +diff -up openssh-7.4p1/openbsd-compat/port-linux-sshd.c.privsep-selinux openssh-7.4p1/openbsd-compat/port-linux-sshd.c +--- openssh-7.4p1/openbsd-compat/port-linux-sshd.c.privsep-selinux 2016-12-23 18:58:52.973122201 +0100 ++++ openssh-7.4p1/openbsd-compat/port-linux-sshd.c 2016-12-23 18:58:52.974122201 +0100 +@@ -419,6 +419,28 @@ sshd_selinux_setup_exec_context(char *pw + debug3("%s: done", __func__); + } + ++void ++sshd_selinux_copy_context(void) ++{ ++ security_context_t *ctx; ++ ++ if (!ssh_selinux_enabled()) ++ return; ++ ++ if (getexeccon((security_context_t *)&ctx) != 0) { ++ logit("%s: getcon failed with %s", __func__, strerror (errno)); ++ return; ++ } ++ if (ctx != NULL) { ++ /* unset exec context before we will lose this capabililty */ ++ if (setexeccon(NULL) != 0) ++ fatal("%s: setexeccon failed with %s", __func__, strerror (errno)); ++ if (setcon(ctx) != 0) ++ fatal("%s: setcon failed with %s", __func__, strerror (errno)); ++ freecon(ctx); ++ } ++} ++ + #endif + #endif + +diff -up openssh-7.4p1/session.c.privsep-selinux openssh-7.4p1/session.c +--- openssh-7.4p1/session.c.privsep-selinux 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/session.c 2016-12-23 18:58:52.974122201 +0100 +@@ -1331,7 +1331,7 @@ do_setusercontext(struct passwd *pw) + + platform_setusercontext(pw); + +- if (platform_privileged_uidswap()) { ++ if (platform_privileged_uidswap() && (!is_child || !use_privsep)) { + #ifdef HAVE_LOGIN_CAP + if (setusercontext(lc, pw, pw->pw_uid, + (LOGIN_SETALL & ~(LOGIN_SETPATH|LOGIN_SETUSER))) < 0) { +@@ -1361,6 +1361,9 @@ do_setusercontext(struct passwd *pw) + (unsigned long long)pw->pw_uid); + chroot_path = percent_expand(tmp, "h", pw->pw_dir, + "u", pw->pw_name, "U", uidstr, (char *)NULL); ++#ifdef WITH_SELINUX ++ sshd_selinux_copy_context(); ++#endif + safely_chroot(chroot_path, pw->pw_uid); + free(tmp); + free(chroot_path); +@@ -1396,6 +1399,11 @@ do_setusercontext(struct passwd *pw) + /* Permanently switch to the desired uid. */ + permanently_set_uid(pw); + #endif ++ ++#ifdef WITH_SELINUX ++ if (in_chroot == 0) ++ sshd_selinux_copy_context(); ++#endif + } else if (options.chroot_directory != NULL && + strcasecmp(options.chroot_directory, "none") != 0) { + fatal("server lacks privileges to chroot to ChrootDirectory"); +@@ -1413,9 +1421,6 @@ do_pwchange(Session *s) + if (s->ttyfd != -1) { + fprintf(stderr, + "You must change your password now and login again!\n"); +-#ifdef WITH_SELINUX +- setexeccon(NULL); +-#endif + #ifdef PASSWD_NEEDS_USERNAME + execl(_PATH_PASSWD_PROG, "passwd", s->pw->pw_name, + (char *)NULL); +@@ -1625,9 +1630,6 @@ do_child(Session *s, const char *command + argv[i] = NULL; + optind = optreset = 1; + __progname = argv[0]; +-#ifdef WITH_SELINUX +- ssh_selinux_change_context("sftpd_t"); +-#endif + exit(sftp_server_main(i, argv, s->pw)); + } + +diff -up openssh-7.4p1/sshd.c.privsep-selinux openssh-7.4p1/sshd.c +--- openssh-7.4p1/sshd.c.privsep-selinux 2016-12-23 18:58:52.973122201 +0100 ++++ openssh-7.4p1/sshd.c 2016-12-23 18:59:13.808124269 +0100 +@@ -540,6 +540,10 @@ privsep_preauth_child(void) + /* Demote the private keys to public keys. */ + demote_sensitive_data(); + ++#ifdef WITH_SELINUX ++ ssh_selinux_change_context("sshd_net_t"); ++#endif ++ + /* Demote the child */ + if (privsep_chroot) { + /* Change our root directory */ +@@ -633,6 +637,9 @@ privsep_postauth(Authctxt *authctxt) + { + #ifdef DISABLE_FD_PASSING + if (1) { ++#elif defined(WITH_SELINUX) ++ if (0) { ++ /* even root user can be confined by SELinux */ + #else + if (authctxt->pw->pw_uid == 0) { + #endif diff --git a/openssh-6.7p1-coverity.patch b/openssh-6.7p1-coverity.patch new file mode 100644 index 0000000..0d238dd --- /dev/null +++ b/openssh-6.7p1-coverity.patch @@ -0,0 +1,185 @@ +diff -up openssh-7.4p1/channels.c.coverity openssh-7.4p1/channels.c +--- openssh-7.4p1/channels.c.coverity 2016-12-23 16:40:26.881788686 +0100 ++++ openssh-7.4p1/channels.c 2016-12-23 16:42:36.244818763 +0100 +@@ -288,11 +288,11 @@ channel_register_fds(Channel *c, int rfd + + /* enable nonblocking mode */ + if (nonblock) { +- if (rfd != -1) ++ if (rfd >= 0) + set_nonblock(rfd); +- if (wfd != -1) ++ if (wfd >= 0) + set_nonblock(wfd); +- if (efd != -1) ++ if (efd >= 0) + set_nonblock(efd); + } + } +diff -up openssh-7.4p1/monitor.c.coverity openssh-7.4p1/monitor.c +--- openssh-7.4p1/monitor.c.coverity 2016-12-23 16:40:26.888788688 +0100 ++++ openssh-7.4p1/monitor.c 2016-12-23 16:40:26.900788691 +0100 +@@ -411,7 +411,7 @@ monitor_child_preauth(Authctxt *_authctx + mm_get_keystate(pmonitor); + + /* Drain any buffered messages from the child */ +- while (pmonitor->m_log_recvfd != -1 && monitor_read_log(pmonitor) == 0) ++ while (pmonitor->m_log_recvfd >= 0 && monitor_read_log(pmonitor) == 0) + ; + + if (pmonitor->m_recvfd >= 0) +diff -up openssh-7.4p1/monitor_wrap.c.coverity openssh-7.4p1/monitor_wrap.c +--- openssh-7.4p1/monitor_wrap.c.coverity 2016-12-23 16:40:26.892788689 +0100 ++++ openssh-7.4p1/monitor_wrap.c 2016-12-23 16:40:26.900788691 +0100 +@@ -525,10 +525,10 @@ mm_pty_allocate(int *ptyfd, int *ttyfd, + if ((tmp1 = dup(pmonitor->m_recvfd)) == -1 || + (tmp2 = dup(pmonitor->m_recvfd)) == -1) { + error("%s: cannot allocate fds for pty", __func__); +- if (tmp1 > 0) ++ if (tmp1 >= 0) + close(tmp1); +- if (tmp2 > 0) +- close(tmp2); ++ /*DEAD CODE if (tmp2 >= 0) ++ close(tmp2);*/ + return 0; + } + close(tmp1); +diff -up openssh-7.4p1/openbsd-compat/bindresvport.c.coverity openssh-7.4p1/openbsd-compat/bindresvport.c +--- openssh-7.4p1/openbsd-compat/bindresvport.c.coverity 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/openbsd-compat/bindresvport.c 2016-12-23 16:40:26.901788691 +0100 +@@ -58,7 +58,7 @@ bindresvport_sa(int sd, struct sockaddr + struct sockaddr_in6 *in6; + u_int16_t *portp; + u_int16_t port; +- socklen_t salen; ++ socklen_t salen = sizeof(struct sockaddr_storage); + int i; + + if (sa == NULL) { +diff -up openssh-7.4p1/scp.c.coverity openssh-7.4p1/scp.c +--- openssh-7.4p1/scp.c.coverity 2016-12-23 16:40:26.856788681 +0100 ++++ openssh-7.4p1/scp.c 2016-12-23 16:40:26.901788691 +0100 +@@ -157,7 +157,7 @@ killchild(int signo) + { + if (do_cmd_pid > 1) { + kill(do_cmd_pid, signo ? signo : SIGTERM); +- waitpid(do_cmd_pid, NULL, 0); ++ (void) waitpid(do_cmd_pid, NULL, 0); + } + + if (signo) +diff -up openssh-7.4p1/servconf.c.coverity openssh-7.4p1/servconf.c +--- openssh-7.4p1/servconf.c.coverity 2016-12-23 16:40:26.896788690 +0100 ++++ openssh-7.4p1/servconf.c 2016-12-23 16:40:26.901788691 +0100 +@@ -1547,7 +1547,7 @@ process_server_config_line(ServerOptions + fatal("%s line %d: Missing subsystem name.", + filename, linenum); + if (!*activep) { +- arg = strdelim(&cp); ++ /*arg =*/ (void) strdelim(&cp); + break; + } + for (i = 0; i < options->num_subsystems; i++) +@@ -1638,8 +1638,9 @@ process_server_config_line(ServerOptions + if (*activep && *charptr == NULL) { + *charptr = tilde_expand_filename(arg, getuid()); + /* increase optional counter */ +- if (intptr != NULL) +- *intptr = *intptr + 1; ++ /* DEAD CODE intptr is still NULL ;) ++ if (intptr != NULL) ++ *intptr = *intptr + 1; */ + } + break; + +diff -up openssh-7.4p1/serverloop.c.coverity openssh-7.4p1/serverloop.c +--- openssh-7.4p1/serverloop.c.coverity 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/serverloop.c 2016-12-23 16:40:26.902788691 +0100 +@@ -125,13 +125,13 @@ notify_setup(void) + static void + notify_parent(void) + { +- if (notify_pipe[1] != -1) ++ if (notify_pipe[1] >= 0) + (void)write(notify_pipe[1], "", 1); + } + static void + notify_prepare(fd_set *readset) + { +- if (notify_pipe[0] != -1) ++ if (notify_pipe[0] >= 0) + FD_SET(notify_pipe[0], readset); + } + static void +@@ -139,8 +139,8 @@ notify_done(fd_set *readset) + { + char c; + +- if (notify_pipe[0] != -1 && FD_ISSET(notify_pipe[0], readset)) +- while (read(notify_pipe[0], &c, 1) != -1) ++ if (notify_pipe[0] >= 0 && FD_ISSET(notify_pipe[0], readset)) ++ while (read(notify_pipe[0], &c, 1) >= 0) + debug2("%s: reading", __func__); + } + +@@ -518,7 +518,7 @@ server_request_tun(void) + } + + tun = packet_get_int(); +- if (auth_opts->force_tun_device != -1) { ++ if (auth_opts->force_tun_device >= 0) { + if (tun != SSH_TUNID_ANY && auth_opts->force_tun_device != tun) + goto done; + tun = auth_opts->force_tun_device; +diff -up openssh-7.4p1/sftp.c.coverity openssh-7.4p1/sftp.c +--- openssh-7.4p1/sftp.c.coverity 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/sftp.c 2016-12-23 16:40:26.903788691 +0100 +@@ -224,7 +224,7 @@ killchild(int signo) + { + if (sshpid > 1) { + kill(sshpid, SIGTERM); +- waitpid(sshpid, NULL, 0); ++ (void) waitpid(sshpid, NULL, 0); + } + + _exit(1); +diff -up openssh-7.4p1/ssh-agent.c.coverity openssh-7.4p1/ssh-agent.c +--- openssh-7.4p1/ssh-agent.c.coverity 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/ssh-agent.c 2016-12-23 16:40:26.903788691 +0100 +@@ -1220,8 +1220,8 @@ main(int ac, char **av) + sanitise_stdfd(); + + /* drop */ +- setegid(getgid()); +- setgid(getgid()); ++ (void) setegid(getgid()); ++ (void) setgid(getgid()); + + platform_disable_tracing(0); /* strict=no */ + +diff -up openssh-7.4p1/sshd.c.coverity openssh-7.4p1/sshd.c +--- openssh-7.4p1/sshd.c.coverity 2016-12-23 16:40:26.897788690 +0100 ++++ openssh-7.4p1/sshd.c 2016-12-23 16:40:26.904788692 +0100 +@@ -691,8 +691,10 @@ privsep_preauth(Authctxt *authctxt) + + privsep_preauth_child(); + setproctitle("%s", "[net]"); +- if (box != NULL) ++ if (box != NULL) { + ssh_sandbox_child(box); ++ free(box); ++ } + + return 0; + } +@@ -1386,6 +1388,9 @@ server_accept_loop(int *sock_in, int *so + if (num_listen_socks < 0) + break; + } ++ ++ if (fdset != NULL) ++ free(fdset); + } + + /* diff --git a/openssh-6.7p1-kdf-cavs.patch b/openssh-6.7p1-kdf-cavs.patch new file mode 100644 index 0000000..181267c --- /dev/null +++ b/openssh-6.7p1-kdf-cavs.patch @@ -0,0 +1,608 @@ +diff -up openssh-6.8p1/Makefile.in.kdf-cavs openssh-6.8p1/Makefile.in +--- openssh-6.8p1/Makefile.in.kdf-cavs 2015-03-18 11:23:46.346049359 +0100 ++++ openssh-6.8p1/Makefile.in 2015-03-18 11:24:20.395968445 +0100 +@@ -29,6 +29,7 @@ SSH_LDAP_HELPER=$(libexecdir)/ssh-ldap-h + SSH_LDAP_WRAPPER=$(libexecdir)/ssh-ldap-wrapper + SSH_KEYCAT=$(libexecdir)/ssh-keycat + CTR_CAVSTEST=$(libexecdir)/ctr-cavstest ++SSH_CAVS=$(libexecdir)/ssh-cavs + SSH_PKCS11_HELPER=$(libexecdir)/ssh-pkcs11-helper + PRIVSEP_PATH=@PRIVSEP_PATH@ + SSH_PRIVSEP_USER=@SSH_PRIVSEP_USER@ +@@ -67,7 +68,7 @@ EXEEXT=@EXEEXT@ + MKDIR_P=@MKDIR_P@ + INSTALL_SSH_LDAP_HELPER=@INSTALL_SSH_LDAP_HELPER@ + +-TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT) ssh-ldap-helper$(EXEEXT) ssh-keycat$(EXEEXT) ctr-cavstest$(EXEEXT) ++TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT) ssh-ldap-helper$(EXEEXT) ssh-keycat$(EXEEXT) ctr-cavstest$(EXEEXT) ssh-cavs$(EXEEXT) + + XMSS_OBJS=\ + ssh-xmss.o \ +@@ -198,6 +199,9 @@ ssh-keycat$(EXEEXT): $(LIBCOMPAT) $(SSHD + ctr-cavstest$(EXEEXT): $(LIBCOMPAT) libssh.a ctr-cavstest.o + $(LD) -o $@ ctr-cavstest.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lfipscheck $(LIBS) + ++ssh-cavs$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-cavs.o ++ $(LD) -o $@ ssh-cavs.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) ++ + ssh-keyscan$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keyscan.o + $(LD) -o $@ ssh-keyscan.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) + +@@ -331,6 +335,8 @@ install-files: + fi + $(INSTALL) -m 0755 $(STRIP_OPT) ssh-keycat$(EXEEXT) $(DESTDIR)$(libexecdir)/ssh-keycat$(EXEEXT) + $(INSTALL) -m 0755 $(STRIP_OPT) ctr-cavstest$(EXEEXT) $(DESTDIR)$(libexecdir)/ctr-cavstest$(EXEEXT) ++ $(INSTALL) -m 0755 $(STRIP_OPT) ssh-cavs$(EXEEXT) $(DESTDIR)$(libexecdir)/ssh-cavs$(EXEEXT) ++ $(INSTALL) -m 0755 $(STRIP_OPT) ssh-cavs_driver.pl $(DESTDIR)$(libexecdir)/ssh-cavs_driver.pl + $(INSTALL) -m 0755 $(STRIP_OPT) sftp$(EXEEXT) $(DESTDIR)$(bindir)/sftp$(EXEEXT) + $(INSTALL) -m 0755 $(STRIP_OPT) sftp-server$(EXEEXT) $(DESTDIR)$(SFTP_SERVER)$(EXEEXT) + $(INSTALL) -m 644 ssh.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh.1 +diff -up openssh-6.8p1/ssh-cavs.c.kdf-cavs openssh-6.8p1/ssh-cavs.c +--- openssh-6.8p1/ssh-cavs.c.kdf-cavs 2015-03-18 11:23:46.348049354 +0100 ++++ openssh-6.8p1/ssh-cavs.c 2015-03-18 11:23:46.348049354 +0100 +@@ -0,0 +1,377 @@ ++/* ++ * Copyright (C) 2015, Stephan Mueller ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, and the entire permission notice in its entirety, ++ * including the disclaimer of warranties. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote ++ * products derived from this software without specific prior ++ * written permission. ++ * ++ * ALTERNATIVELY, this product may be distributed under the terms of ++ * the GNU General Public License, in which case the provisions of the GPL2 ++ * are required INSTEAD OF the above restrictions. (This clause is ++ * necessary due to a potential bad interaction between the GPL and ++ * the restrictions contained in a BSD-style copyright.) ++ * ++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED ++ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF ++ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE ++ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT ++ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ++ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ++ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE ++ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH ++ * DAMAGE. ++ */ ++ ++#include "includes.h" ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "xmalloc.h" ++#include "sshbuf.h" ++#include "sshkey.h" ++#include "cipher.h" ++#include "kex.h" ++#include "packet.h" ++#include "digest.h" ++ ++static int bin_char(unsigned char hex) ++{ ++ if (48 <= hex && 57 >= hex) ++ return (hex - 48); ++ if (65 <= hex && 70 >= hex) ++ return (hex - 55); ++ if (97 <= hex && 102 >= hex) ++ return (hex - 87); ++ return 0; ++} ++ ++/* ++ * Convert hex representation into binary string ++ * @hex input buffer with hex representation ++ * @hexlen length of hex ++ * @bin output buffer with binary data ++ * @binlen length of already allocated bin buffer (should be at least ++ * half of hexlen -- if not, only a fraction of hexlen is converted) ++ */ ++static void hex2bin(const char *hex, size_t hexlen, ++ unsigned char *bin, size_t binlen) ++{ ++ size_t i = 0; ++ size_t chars = (binlen > (hexlen / 2)) ? (hexlen / 2) : binlen; ++ ++ for (i = 0; i < chars; i++) { ++ bin[i] = bin_char(hex[(i*2)]) << 4; ++ bin[i] |= bin_char(hex[((i*2)+1)]); ++ } ++} ++ ++/* ++ * Allocate sufficient space for binary representation of hex ++ * and convert hex into bin ++ * ++ * Caller must free bin ++ * @hex input buffer with hex representation ++ * @hexlen length of hex ++ * @bin return value holding the pointer to the newly allocated buffer ++ * @binlen return value holding the allocated size of bin ++ * ++ * return: 0 on success, !0 otherwise ++ */ ++static int hex2bin_alloc(const char *hex, size_t hexlen, ++ unsigned char **bin, size_t *binlen) ++{ ++ unsigned char *out = NULL; ++ size_t outlen = 0; ++ ++ if (!hexlen) ++ return -EINVAL; ++ ++ outlen = (hexlen + 1) / 2; ++ ++ out = calloc(1, outlen); ++ if (!out) ++ return -errno; ++ ++ hex2bin(hex, hexlen, out, outlen); ++ *bin = out; ++ *binlen = outlen; ++ return 0; ++} ++ ++static char hex_char_map_l[] = { '0', '1', '2', '3', '4', '5', '6', '7', ++ '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; ++static char hex_char_map_u[] = { '0', '1', '2', '3', '4', '5', '6', '7', ++ '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; ++static char hex_char(unsigned int bin, int u) ++{ ++ if (bin < sizeof(hex_char_map_l)) ++ return (u) ? hex_char_map_u[bin] : hex_char_map_l[bin]; ++ return 'X'; ++} ++ ++/* ++ * Convert binary string into hex representation ++ * @bin input buffer with binary data ++ * @binlen length of bin ++ * @hex output buffer to store hex data ++ * @hexlen length of already allocated hex buffer (should be at least ++ * twice binlen -- if not, only a fraction of binlen is converted) ++ * @u case of hex characters (0=>lower case, 1=>upper case) ++ */ ++static void bin2hex(const unsigned char *bin, size_t binlen, ++ char *hex, size_t hexlen, int u) ++{ ++ size_t i = 0; ++ size_t chars = (binlen > (hexlen / 2)) ? (hexlen / 2) : binlen; ++ ++ for (i = 0; i < chars; i++) { ++ hex[(i*2)] = hex_char((bin[i] >> 4), u); ++ hex[((i*2)+1)] = hex_char((bin[i] & 0x0f), u); ++ } ++} ++ ++struct kdf_cavs { ++ unsigned char *K; ++ size_t Klen; ++ unsigned char *H; ++ size_t Hlen; ++ unsigned char *session_id; ++ size_t session_id_len; ++ ++ unsigned int iv_len; ++ unsigned int ek_len; ++ unsigned int ik_len; ++}; ++ ++static int sshkdf_cavs(struct kdf_cavs *test) ++{ ++ int ret = 0; ++ struct kex kex; ++ BIGNUM *Kbn = NULL; ++ int mode = 0; ++ struct newkeys *ctoskeys; ++ struct newkeys *stockeys; ++ struct ssh *ssh = NULL; ++ ++#define HEXOUTLEN 500 ++ char hex[HEXOUTLEN]; ++ ++ memset(&kex, 0, sizeof(struct kex)); ++ ++ Kbn = BN_new(); ++ BN_bin2bn(test->K, test->Klen, Kbn); ++ if (!Kbn) { ++ printf("cannot convert K into BIGNUM\n"); ++ ret = 1; ++ goto out; ++ } ++ ++ kex.session_id = test->session_id; ++ kex.session_id_len = test->session_id_len; ++ ++ /* setup kex */ ++ ++ /* select the right hash based on struct ssh_digest digests */ ++ switch (test->ik_len) { ++ case 20: ++ kex.hash_alg = SSH_DIGEST_SHA1; ++ break; ++ case 32: ++ kex.hash_alg = SSH_DIGEST_SHA256; ++ break; ++ case 48: ++ kex.hash_alg = SSH_DIGEST_SHA384; ++ break; ++ case 64: ++ kex.hash_alg = SSH_DIGEST_SHA512; ++ break; ++ default: ++ printf("Wrong hash type %u\n", test->ik_len); ++ ret = 1; ++ goto out; ++ } ++ ++ /* implement choose_enc */ ++ for (mode = 0; mode < 2; mode++) { ++ kex.newkeys[mode] = calloc(1, sizeof(struct newkeys)); ++ if (!kex.newkeys[mode]) { ++ printf("allocation of newkeys failed\n"); ++ ret = 1; ++ goto out; ++ } ++ kex.newkeys[mode]->enc.iv_len = test->iv_len; ++ kex.newkeys[mode]->enc.key_len = test->ek_len; ++ kex.newkeys[mode]->enc.block_size = (test->iv_len == 64) ? 8 : 16; ++ kex.newkeys[mode]->mac.key_len = test->ik_len; ++ } ++ ++ /* implement kex_choose_conf */ ++ kex.we_need = kex.newkeys[0]->enc.key_len; ++ if (kex.we_need < kex.newkeys[0]->enc.block_size) ++ kex.we_need = kex.newkeys[0]->enc.block_size; ++ if (kex.we_need < kex.newkeys[0]->enc.iv_len) ++ kex.we_need = kex.newkeys[0]->enc.iv_len; ++ if (kex.we_need < kex.newkeys[0]->mac.key_len) ++ kex.we_need = kex.newkeys[0]->mac.key_len; ++ ++ /* MODE_OUT (1) -> server to client ++ * MODE_IN (0) -> client to server */ ++ kex.server = 1; ++ ++ /* do it */ ++ if ((ssh = ssh_packet_set_connection(NULL, -1, -1)) == NULL){ ++ printf("Allocation error\n"); ++ goto out; ++ } ++ ssh->kex = &kex; ++ kex_derive_keys_bn(ssh, test->H, test->Hlen, Kbn); ++ ++ ctoskeys = kex.newkeys[0]; ++ stockeys = kex.newkeys[1]; ++ ++ /* get data */ ++ memset(hex, 0, HEXOUTLEN); ++ bin2hex(ctoskeys->enc.iv, (size_t)ctoskeys->enc.iv_len, ++ hex, HEXOUTLEN, 0); ++ printf("Initial IV (client to server) = %s\n", hex); ++ memset(hex, 0, HEXOUTLEN); ++ bin2hex(stockeys->enc.iv, (size_t)stockeys->enc.iv_len, ++ hex, HEXOUTLEN, 0); ++ printf("Initial IV (server to client) = %s\n", hex); ++ ++ memset(hex, 0, HEXOUTLEN); ++ bin2hex(ctoskeys->enc.key, (size_t)ctoskeys->enc.key_len, ++ hex, HEXOUTLEN, 0); ++ printf("Encryption key (client to server) = %s\n", hex); ++ memset(hex, 0, HEXOUTLEN); ++ bin2hex(stockeys->enc.key, (size_t)stockeys->enc.key_len, ++ hex, HEXOUTLEN, 0); ++ printf("Encryption key (server to client) = %s\n", hex); ++ ++ memset(hex, 0, HEXOUTLEN); ++ bin2hex(ctoskeys->mac.key, (size_t)ctoskeys->mac.key_len, ++ hex, HEXOUTLEN, 0); ++ printf("Integrity key (client to server) = %s\n", hex); ++ memset(hex, 0, HEXOUTLEN); ++ bin2hex(stockeys->mac.key, (size_t)stockeys->mac.key_len, ++ hex, HEXOUTLEN, 0); ++ printf("Integrity key (server to client) = %s\n", hex); ++ ++out: ++ if (Kbn) ++ BN_free(Kbn); ++ if (ssh) ++ ssh_packet_close(ssh); ++ return ret; ++} ++ ++static void usage(void) ++{ ++ fprintf(stderr, "\nOpenSSH KDF CAVS Test\n\n"); ++ fprintf(stderr, "Usage:\n"); ++ fprintf(stderr, "\t-K\tShared secret string\n"); ++ fprintf(stderr, "\t-H\tHash string\n"); ++ fprintf(stderr, "\t-s\tSession ID string\n"); ++ fprintf(stderr, "\t-i\tIV length to be generated\n"); ++ fprintf(stderr, "\t-e\tEncryption key length to be generated\n"); ++ fprintf(stderr, "\t-m\tMAC key length to be generated\n"); ++} ++ ++/* ++ * Test command example: ++ * ./ssh-cavs -K 0055d50f2d163cc07cd8a93cc7c3430c30ce786b572c01ad29fec7597000cf8618d664e2ec3dcbc8bb7a1a7eb7ef67f61cdaf291625da879186ac0a5cb27af571b59612d6a6e0627344d846271959fda61c78354aa498773d59762f8ca2d0215ec590d8633de921f920d41e47b3de6ab9a3d0869e1c826d0e4adebf8e3fb646a15dea20a410b44e969f4b791ed6a67f13f1b74234004d5fa5e87eff7abc32d49bbdf44d7b0107e8f10609233b7e2b7eff74a4daf25641de7553975dac6ac1e5117df6f6dbaa1c263d23a6c3e5a3d7d49ae8a828c1e333ac3f85fbbf57b5c1a45be45e43a7be1a4707eac779b8285522d1f531fe23f890fd38a004339932b93eda4 -H d3ab91a850febb417a25d892ec48ed5952c7a5de -s d3ab91a850febb417a25d892ec48ed5952c7a5de -i 8 -e 24 -m 20 ++ * ++ * Initial IV (client to server) = 4bb320d1679dfd3a ++ * Initial IV (server to client) = 43dea6fdf263a308 ++ * Encryption key (client to server) = 13048cc600b9d3cf9095aa6cf8e2ff9cf1c54ca0520c89ed ++ * Encryption key (server to client) = 1e483c5134e901aa11fc4e0a524e7ec7b75556148a222bb0 ++ * Integrity key (client to server) = ecef63a092b0dcc585bdc757e01b2740af57d640 ++ * Integrity key (server to client) = 7424b05f3c44a72b4ebd281fb71f9cbe7b64d479 ++ */ ++int main(int argc, char *argv[]) ++{ ++ struct kdf_cavs test; ++ int ret = 1; ++ int opt = 0; ++ ++ memset(&test, 0, sizeof(struct kdf_cavs)); ++ while((opt = getopt(argc, argv, "K:H:s:i:e:m:")) != -1) ++ { ++ size_t len = 0; ++ switch(opt) ++ { ++ /* ++ * CAVS K is MPINT ++ * we want a hex (i.e. the caller must ensure the ++ * following transformations already happened): ++ * 1. cut off first four bytes ++ * 2. if most significant bit of value is ++ * 1, prepend 0 byte ++ */ ++ case 'K': ++ len = strlen(optarg); ++ ret = hex2bin_alloc(optarg, len, ++ &test.K, &test.Klen); ++ if (ret) ++ goto out; ++ break; ++ case 'H': ++ len = strlen(optarg); ++ ret = hex2bin_alloc(optarg, len, ++ &test.H, &test.Hlen); ++ if (ret) ++ goto out; ++ break; ++ case 's': ++ len = strlen(optarg); ++ ret = hex2bin_alloc(optarg, len, ++ &test.session_id, ++ &test.session_id_len); ++ if (ret) ++ goto out; ++ break; ++ case 'i': ++ test.iv_len = strtoul(optarg, NULL, 10); ++ break; ++ case 'e': ++ test.ek_len = strtoul(optarg, NULL, 10); ++ break; ++ case 'm': ++ test.ik_len = strtoul(optarg, NULL, 10); ++ break; ++ default: ++ usage(); ++ goto out; ++ } ++ } ++ ++ ret = sshkdf_cavs(&test); ++ ++out: ++ if (test.session_id) ++ free(test.session_id); ++ if (test.K) ++ free(test.K); ++ if (test.H) ++ free(test.H); ++ return ret; ++ ++} +diff -up openssh-6.8p1/ssh-cavs_driver.pl.kdf-cavs openssh-6.8p1/ssh-cavs_driver.pl +--- openssh-6.8p1/ssh-cavs_driver.pl.kdf-cavs 2015-03-18 11:23:46.348049354 +0100 ++++ openssh-6.8p1/ssh-cavs_driver.pl 2015-03-18 11:23:46.348049354 +0100 +@@ -0,0 +1,184 @@ ++#!/usr/bin/env perl ++# ++# CAVS test driver for OpenSSH ++# ++# Copyright (C) 2015, Stephan Mueller ++# ++# Permission is hereby granted, free of charge, to any person obtaining a copy ++# of this software and associated documentation files (the "Software"), to deal ++# in the Software without restriction, including without limitation the rights ++# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++# copies of the Software, and to permit persons to whom the Software is ++# furnished to do so, subject to the following conditions: ++# ++# The above copyright notice and this permission notice shall be included in ++# all copies or substantial portions of the Software. ++# ++# NO WARRANTY ++# ++# BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY ++# FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN ++# OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES ++# PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED ++# OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ++# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS ++# TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE ++# PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, ++# REPAIR OR CORRECTION. ++# ++# IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING ++# WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR ++# REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, ++# INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING ++# OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED ++# TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY ++# YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER ++# PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE ++# POSSIBILITY OF SUCH DAMAGES. ++# ++use strict; ++use warnings; ++use IPC::Open2; ++ ++# Executing a program by feeding STDIN and retrieving ++# STDOUT ++# $1: data string to be piped to the app on STDIN ++# rest: program and args ++# returns: STDOUT of program as string ++sub pipe_through_program($@) { ++ my $in = shift; ++ my @args = @_; ++ ++ my ($CO, $CI); ++ my $pid = open2($CO, $CI, @args); ++ ++ my $out = ""; ++ my $len = length($in); ++ my $first = 1; ++ while (1) { ++ my $rin = ""; ++ my $win = ""; ++ # Output of prog is FD that we read ++ vec($rin,fileno($CO),1) = 1; ++ # Input of prog is FD that we write ++ # check for $first is needed because we can have NULL input ++ # that is to be written to the app ++ if ( $len > 0 || $first) { ++ (vec($win,fileno($CI),1) = 1); ++ $first=0; ++ } ++ # Let us wait for 100ms ++ my $nfound = select(my $rout=$rin, my $wout=$win, undef, 0.1); ++ if ( $wout ) { ++ my $written = syswrite($CI, $in, $len); ++ die "broken pipe" if !defined $written; ++ $len -= $written; ++ substr($in, 0, $written) = ""; ++ if ($len <= 0) { ++ close $CI or die "broken pipe: $!"; ++ } ++ } ++ if ( $rout ) { ++ my $tmp_out = ""; ++ my $bytes_read = sysread($CO, $tmp_out, 4096); ++ $out .= $tmp_out; ++ last if ($bytes_read == 0); ++ } ++ } ++ close $CO or die "broken pipe: $!"; ++ waitpid $pid, 0; ++ ++ return $out; ++} ++ ++# Parser of CAVS test vector file ++# $1: Test vector file ++# $2: Output file for test results ++# return: nothing ++sub parse($$) { ++ my $infile = shift; ++ my $outfile = shift; ++ ++ my $out = ""; ++ ++ my $K = ""; ++ my $H = ""; ++ my $session_id = ""; ++ my $ivlen = 0; ++ my $eklen = ""; ++ my $iklen = ""; ++ ++ open(IN, "<$infile"); ++ while() { ++ ++ my $line = $_; ++ chomp($line); ++ $line =~ s/\r//; ++ ++ if ($line =~ /\[SHA-1\]/) { ++ $iklen = 20; ++ } elsif ($line =~ /\[SHA-256\]/) { ++ $iklen = 32; ++ } elsif ($line =~ /\[SHA-384\]/) { ++ $iklen = 48; ++ } elsif ($line =~ /\[SHA-512\]/) { ++ $iklen = 64; ++ } elsif ($line =~ /^\[IV length\s*=\s*(.*)\]/) { ++ $ivlen = $1; ++ $ivlen = $ivlen / 8; ++ } elsif ($line =~ /^\[encryption key length\s*=\s*(.*)\]/) { ++ $eklen = $1; ++ $eklen = $eklen / 8; ++ } elsif ($line =~ /^K\s*=\s*(.*)/) { ++ $K = $1; ++ $K = substr($K, 8); ++ $K = "00" . $K; ++ } elsif ($line =~ /^H\s*=\s*(.*)/) { ++ $H = $1; ++ } elsif ($line =~ /^session_id\s*=\s*(.*)/) { ++ $session_id = $1; ++ } ++ $out .= $line . "\n"; ++ ++ if ($K ne "" && $H ne "" && $session_id ne "" && ++ $ivlen ne "" && $eklen ne "" && $iklen > 0) { ++ $out .= pipe_through_program("", "./ssh-cavs -H $H -K $K -s $session_id -i $ivlen -e $eklen -m $iklen"); ++ ++ $K = ""; ++ $H = ""; ++ $session_id = ""; ++ } ++ } ++ close IN; ++ $out =~ s/\n/\r\n/g; # make it a dos file ++ open(OUT, ">$outfile") or die "Cannot create output file $outfile: $?"; ++ print OUT $out; ++ close OUT; ++} ++ ++############################################################ ++# ++# let us pretend to be C :-) ++sub main() { ++ ++ my $infile=$ARGV[0]; ++ die "Error: Test vector file $infile not found" if (! -f $infile); ++ ++ my $outfile = $infile; ++ # let us add .rsp regardless whether we could strip .req ++ $outfile =~ s/\.req$//; ++ $outfile .= ".rsp"; ++ if (-f $outfile) { ++ die "Output file $outfile could not be removed: $?" ++ unless unlink($outfile); ++ } ++ print STDERR "Performing tests from source file $infile with results stored in destination file $outfile\n"; ++ ++ # Do the job ++ parse($infile, $outfile); ++} ++ ++########################################### ++# Call it ++main(); ++1; diff --git a/openssh-6.7p1-ldap.patch b/openssh-6.7p1-ldap.patch new file mode 100644 index 0000000..ee44fdb --- /dev/null +++ b/openssh-6.7p1-ldap.patch @@ -0,0 +1,2742 @@ +diff -up openssh-6.8p1/HOWTO.ldap-keys.ldap openssh-6.8p1/HOWTO.ldap-keys +--- openssh-6.8p1/HOWTO.ldap-keys.ldap 2015-03-18 11:11:29.029801467 +0100 ++++ openssh-6.8p1/HOWTO.ldap-keys 2015-03-18 11:11:29.029801467 +0100 +@@ -0,0 +1,122 @@ ++ ++HOW TO START ++ ++1) configure LDAP server ++ * Use LDAP server documentation ++2) add appropriate LDAP schema ++ * For OpenLDAP or SunONE Use attached schema, otherwise you have to create it. ++ * LDAP user entry ++ User entry: ++ - attached to the 'ldapPublicKey' objectclass ++ - attached to the 'posixAccount' objectclass ++ - with a filled 'sshPublicKey' attribute ++3) insert users into LDAP ++ * Use LDAP Tree management tool as useful ++ * Entry in the LDAP server must respect 'posixAccount' and 'ldapPublicKey' which are defined in core.schema and the additionnal lpk.schema. ++ * Example: ++ dn: uid=captain,ou=commanders,dc=enterprise,dc=universe ++ objectclass: top ++ objectclass: person ++ objectclass: organizationalPerson ++ objectclass: posixAccount ++ objectclass: ldapPublicKey ++ description: Jonathan Archer ++ userPassword: Porthos ++ cn: onathan Archer ++ sn: onathan Archer ++ uid: captain ++ uidNumber: 1001 ++ gidNumber: 1001 ++ homeDirectory: /home/captain ++ sshPublicKey: ssh-rss AAAAB3.... =captain@universe ++ sshPublicKey: command="kill -9 1" ssh-rss AAAAM5... ++4) on the ssh side set in sshd_config ++ * Set up the backend ++ AuthorizedKeysCommand /usr/libexec/openssh/ssh-ldap-wrapper ++ AuthorizedKeysCommandUser ++ * Do not forget to set ++ PubkeyAuthentication yes ++ * Swith off unnecessary auth methods ++5) confugure ldap.conf ++ * Default ldap.conf is placed in /etc/ssh ++ * The configuration style is the same as other ldap based aplications ++6) if necessary edit ssh-ldap-wrapper ++ * There is a possibility to change ldap.conf location ++ * There are some debug options ++ * Example ++ /usr/libexec/openssh -s -f /etc/ldap.conf -w -d >> /tmp/ldapdebuglog.txt ++7) Configure SELinux boolean which allows ldap-helper to bind ldap server ++ Run this command ++ # setsebool -P authlogin_nsswitch_use_ldap on ++ ++HOW TO MIGRATE FROM LPK ++ ++1) goto HOW TO START 4) .... the ldap schema is the same ++ ++2) convert the group requests to the appropriate LDAP requests ++ ++HOW TO SOLVE PROBLEMS ++ ++1) use debug in sshd ++ * /usr/sbin/sshd -d -d -d -d ++2) use debug in ssh-ldap-helper ++ * ssh-ldap-helper -d -d -d -d -s ++3) use tcpdump ... other ldap client etc. ++ ++HOW TO CONFIGURE SSH FOR OTHER LDAP CONFIGURATION / SERVER /SCHEMA ++ ++You can adjust search format string in /etc/ldap.conf using ++ 1) SSH_Filter option to limit results for only specified users ++ (this appends search condition after original query) ++ 2) Search_Format option to define your own search string using expansion ++ characters %u for username, %c for objectclass and %f for above mentioned filter. ++ ++Example: ++Search_Format (&(objectclass=posixAccount)(objectclass=ldapPublicKey)(uid=%u)%f) ++ ++ADVANTAGES ++ ++1) Blocking an user account can be done directly from LDAP (if sshd is using PubkeyAuthentication + AuthorizedKeysCommand with ldap only). ++ ++DISADVANTAGES ++ ++1) LDAP must be well configured, getting the public key of some user is not a problem, but if anonymous LDAP ++ allows write to users dn, somebody could replace some user's public key by his own and impersonate some ++ of your users in all your server farm -- be VERY CAREFUL. ++2) With incomplete PKI the MITM attack when sshd is requesting the public key, could lead to a compromise of your servers allowing login ++ as the impersonated user. ++3) If LDAP server is down there may be no fallback on passwd auth. ++ ++MISC. ++ ++1) todo ++ * Possibility to reuse the ssh-ldap-helper. ++ * Tune the LDAP part to accept all possible LDAP configurations. ++ ++2) differences from original lpk ++ * No LDAP code in sshd. ++ * Support for various LDAP platforms and configurations. ++ * LDAP is configured in separate ldap.conf file. ++ ++3) docs/link ++ * http://pacsec.jp/core05/psj05-barisani-en.pdf ++ * http://fritz.potsdam.edu/projects/openssh-lpk/ ++ * http://fritz.potsdam.edu/projects/sshgate/ ++ * http://dev.inversepath.com/trac/openssh-lpk ++ * http://lam.sf.net/ ( http://lam.sourceforge.net/documentation/supportedSchemas.htm ) ++ ++4) contributors/ideas/greets ++ - Eric AUGE ++ - Andrea Barisani ++ - Falk Siemonsmeier. ++ - Jacob Rief. ++ - Michael Durchgraf. ++ - frederic peters. ++ - Finlay dobbie. ++ - Stefan Fisher. ++ - Robin H. Johnson. ++ - Adrian Bridgett. ++ ++5) Author ++ Jan F. Chadima ++ +diff -up openssh-6.8p1/Makefile.in.ldap openssh-6.8p1/Makefile.in +--- openssh-6.8p1/Makefile.in.ldap 2015-03-17 06:49:20.000000000 +0100 ++++ openssh-6.8p1/Makefile.in 2015-03-18 11:13:10.147561177 +0100 +@@ -25,6 +25,8 @@ SSH_PROGRAM=@bindir@/ssh + ASKPASS_PROGRAM=$(libexecdir)/ssh-askpass + SFTP_SERVER=$(libexecdir)/sftp-server + SSH_KEYSIGN=$(libexecdir)/ssh-keysign ++SSH_LDAP_HELPER=$(libexecdir)/ssh-ldap-helper ++SSH_LDAP_WRAPPER=$(libexecdir)/ssh-ldap-wrapper + SSH_PKCS11_HELPER=$(libexecdir)/ssh-pkcs11-helper + PRIVSEP_PATH=@PRIVSEP_PATH@ + SSH_PRIVSEP_USER=@SSH_PRIVSEP_USER@ +@@ -50,6 +50,7 @@ + CFLAGS=@CFLAGS@ + CPPFLAGS=-I. -I$(srcdir) @CPPFLAGS@ $(PATHS) @DEFS@ + LIBS=@LIBS@ ++LDAPLIBS=@LDAPLIBS@ + K5LIBS=@K5LIBS@ + GSSLIBS=@GSSLIBS@ + SSHLIBS=@SSHLIBS@ +@@ -61,8 +63,9 @@ XAUTH_PATH=@XAUTH_PATH@ + EXEEXT=@EXEEXT@ + MANFMT=@MANFMT@ + MKDIR_P=@MKDIR_P@ ++INSTALL_SSH_LDAP_HELPER=@INSTALL_SSH_LDAP_HELPER@ + +-TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT) ++TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT) ssh-ldap-helper$(EXEEXT) + + XMSS_OBJS=\ + ssh-xmss.o \ +@@ -112,8 +115,8 @@ SSHDOBJS=sshd.o auth-rhosts.o auth-passw + sandbox-seccomp-filter.o sandbox-capsicum.o sandbox-pledge.o \ + sandbox-solaris.o uidswap.o + +-MANPAGES = moduli.5.out scp.1.out ssh-add.1.out ssh-agent.1.out ssh-keygen.1.out ssh-keyscan.1.out ssh.1.out sshd.8.out sftp-server.8.out sftp.1.out ssh-keysign.8.out ssh-pkcs11-helper.8.out sshd_config.5.out ssh_config.5.out +-MANPAGES_IN = moduli.5 scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh-keyscan.1 ssh.1 sshd.8 sftp-server.8 sftp.1 ssh-keysign.8 ssh-pkcs11-helper.8 sshd_config.5 ssh_config.5 ++MANPAGES = moduli.5.out scp.1.out ssh-add.1.out ssh-agent.1.out ssh-keygen.1.out ssh-keyscan.1.out ssh.1.out sshd.8.out sftp-server.8.out sftp.1.out ssh-keysign.8.out ssh-pkcs11-helper.8.out sshd_config.5.out ssh_config.5.out ssh-ldap-helper.8.out ssh-ldap.conf.5.out ++MANPAGES_IN = moduli.5 scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh-keyscan.1 ssh.1 sshd.8 sftp-server.8 sftp.1 ssh-keysign.8 ssh-pkcs11-helper.8 sshd_config.5 ssh_config.5 ssh-ldap-helper.8 ssh-ldap.conf.5 + MANTYPE = @MANTYPE@ + + CONFIGFILES=sshd_config.out ssh_config.out moduli.out +@@ -184,6 +187,9 @@ ssh-keysign$(EXEEXT): $(LIBCOMPAT) libss + ssh-pkcs11-helper$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-pkcs11-helper.o ssh-pkcs11.o + $(LD) -o $@ ssh-pkcs11-helper.o ssh-pkcs11.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) + ++ssh-ldap-helper$(EXEEXT): $(LIBCOMPAT) libssh.a ldapconf.o ldapbody.o ldapmisc.o ldap-helper.o ++ $(LD) -o $@ ldapconf.o ldapbody.o ldapmisc.o ldap-helper.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat -lfipscheck $(LIBS) $(LDAPLIBS) ++ + ssh-keyscan$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keyscan.o + $(LD) -o $@ ssh-keyscan.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) + +@@ -311,6 +317,10 @@ install-files: + $(INSTALL) -m 0755 $(STRIP_OPT) sshd$(EXEEXT) $(DESTDIR)$(sbindir)/sshd$(EXEEXT) + $(INSTALL) -m 4711 $(STRIP_OPT) ssh-keysign$(EXEEXT) $(DESTDIR)$(SSH_KEYSIGN)$(EXEEXT) + $(INSTALL) -m 0755 $(STRIP_OPT) ssh-pkcs11-helper$(EXEEXT) $(DESTDIR)$(SSH_PKCS11_HELPER)$(EXEEXT) ++ if test ! -z "$(INSTALL_SSH_LDAP_HELPER)" ; then \ ++ $(INSTALL) -m 0700 $(STRIP_OPT) ssh-ldap-helper $(DESTDIR)$(SSH_LDAP_HELPER) ; \ ++ $(INSTALL) -m 0700 ssh-ldap-wrapper $(DESTDIR)$(SSH_LDAP_WRAPPER) ; \ ++ fi + $(INSTALL) -m 0755 $(STRIP_OPT) sftp$(EXEEXT) $(DESTDIR)$(bindir)/sftp$(EXEEXT) + $(INSTALL) -m 0755 $(STRIP_OPT) sftp-server$(EXEEXT) $(DESTDIR)$(SFTP_SERVER)$(EXEEXT) + $(INSTALL) -m 644 ssh.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh.1 +@@ -327,6 +337,10 @@ install-files: + $(INSTALL) -m 644 sftp-server.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/sftp-server.8 + $(INSTALL) -m 644 ssh-keysign.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-keysign.8 + $(INSTALL) -m 644 ssh-pkcs11-helper.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-pkcs11-helper.8 ++ if test ! -z "$(INSTALL_SSH_LDAP_HELPER)" ; then \ ++ $(INSTALL) -m 644 ssh-ldap-helper.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-ldap-helper.8 ; \ ++ $(INSTALL) -m 644 ssh-ldap.conf.5.out $(DESTDIR)$(mandir)/$(mansubdir)5/ssh-ldap.conf.5 ; \ ++ fi + + install-sysconf: + $(MKDIR_P) $(DESTDIR)$(sysconfdir) +@@ -356,6 +370,13 @@ install-sysconf: + else \ + echo "$(DESTDIR)$(sysconfdir)/moduli already exists, install will not overwrite"; \ + fi ++ if test ! -z "$(INSTALL_SSH_LDAP_HELPER)" ; then \ ++ if [ ! -f $(DESTDIR)$(sysconfdir)/ldap.conf ]; then \ ++ $(INSTALL) -m 644 ldap.conf $(DESTDIR)$(sysconfdir)/ldap.conf; \ ++ else \ ++ echo "$(DESTDIR)$(sysconfdir)/ldap.conf already exists, install will not overwrite"; \ ++ fi ; \ ++ fi + + host-key: ssh-keygen$(EXEEXT) + @if [ -z "$(DESTDIR)" ] ; then \ +@@ -419,6 +440,8 @@ uninstall: + -rm -r $(DESTDIR)$(SFTP_SERVER)$(EXEEXT) + -rm -f $(DESTDIR)$(SSH_KEYSIGN)$(EXEEXT) + -rm -f $(DESTDIR)$(SSH_PKCS11_HELPER)$(EXEEXT) ++ -rm -f $(DESTDIR)$(SSH_LDAP_HELPER)$(EXEEXT) ++ -rm -f $(DESTDIR)$(SSH_LDAP_WRAPPER)$(EXEEXT) + -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh.1 + -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/scp.1 + -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-add.1 +@@ -430,6 +453,7 @@ uninstall: + -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/sftp-server.8 + -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-keysign.8 + -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-pkcs11-helper.8 ++ -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-ldap-helper.8 + + regress-prep: + $(MKDIR_P) `pwd`/regress/unittests/test_helper +diff -up openssh-6.8p1/configure.ac.ldap openssh-6.8p1/configure.ac +--- openssh-6.8p1/configure.ac.ldap 2015-03-17 06:49:20.000000000 +0100 ++++ openssh-6.8p1/configure.ac 2015-03-18 11:11:29.030801464 +0100 +@@ -1605,6 +1605,110 @@ if test "x$use_pie" != "xno"; then + fi + fi + ++# Check whether user wants LDAP support ++LDAP_MSG="no" ++INSTALL_SSH_LDAP_HELPER="" ++AC_ARG_WITH(ldap, ++ [ --with-ldap[[=PATH]] Enable LDAP pubkey support (optionally in PATH)], ++ [ ++ if test "x$withval" != "xno" ; then ++ ++ INSTALL_SSH_LDAP_HELPER="yes" ++ CPPFLAGS="$CPPFLAGS -DLDAP_DEPRECATED" ++ ++ if test "x$withval" != "xyes" ; then ++ CPPFLAGS="$CPPFLAGS -I${withval}/include" ++ LDFLAGS="$LDFLAGS -L${withval}/lib" ++ fi ++ ++ AC_DEFINE([WITH_LDAP_PUBKEY], 1, [Enable LDAP pubkey support]) ++ LDAP_MSG="yes" ++ ++ AC_CHECK_HEADERS(lber.h) ++ AC_CHECK_HEADERS(ldap.h, , AC_MSG_ERROR(could not locate )) ++ AC_CHECK_HEADERS(ldap_ssl.h) ++ ++ AC_ARG_WITH(ldap-lib, ++ [ --with-ldap-lib=type select ldap library [auto|netscape5|netscape4|netscape3|umich|openldap]]) ++ ++ if test -z "$with_ldap_lib"; then ++ with_ldap_lib=auto ++ fi ++ ++ if test -z "$found_ldap_lib" -a \( $with_ldap_lib = auto -o $with_ldap_lib = umich -o $with_ldap_lib = openldap \); then ++ AC_CHECK_LIB(lber, main, LDAPLIBS="-llber $LDAPLIBS" found_ldap_lib=yes) ++ AC_CHECK_LIB(ldap, main, LDAPLIBS="-lldap $LDAPLIBS" found_ldap_lib=yes) ++ fi ++ ++ if test -z "$found_ldap_lib" -a \( $with_ldap_lib = auto -o $with_ldap_lib = netscape5 \); then ++ AC_CHECK_LIB(ldap50, main, LDAPLIBS="-lldap50 -lssldap50 -lssl3 -lnss3 -lnspr4 -lprldap50 -lplc4 -lplds4 $LDAPLIBS" found_ldap_lib=yes) ++ fi ++ ++ if test -z "$found_ldap_lib" -a \( $with_ldap_lib = auto -o $with_ldap_lib = netscape4 \); then ++ AC_CHECK_LIB(ldapssl41, main, LDAPLIBS="-lldapssl41 -lplc3 -lplds3 -lnspr3 $LDAPLIBS" found_ldap_lib=yes) ++ if test -z "$found_ldap_lib"; then ++ AC_CHECK_LIB(ldapssl40, main, LDAPLIBS="-lldapssl40 $LDAPLIBS" found_ldap_lib=yes) ++ fi ++ if test -z "$found_ldap_lib"; then ++ AC_CHECK_LIB(ldap41, main, LDAPLIBS="-lldap41 $LDAPLIBS" found_ldap_lib=yes) ++ fi ++ if test -z "$found_ldap_lib"; then ++ AC_CHECK_LIB(ldap40, main, LDAPLIBS="-lldap40 $LDAPLIBS" found_ldap_lib=yes) ++ fi ++ fi ++ ++ if test -z "$found_ldap_lib" -a \( $with_ldap_lib = auto -o $with_ldap_lib = netscape3 \); then ++ AC_CHECK_LIB(ldapssl30, main, LDAPLIBS="-lldapssl30 $LDAPLIBS" found_ldap_lib=yes) ++ fi ++ ++ if test -z "$found_ldap_lib"; then ++ AC_MSG_ERROR(could not locate a valid LDAP library) ++ fi ++ ++ saved_LIBS="$LIBS" ++ LIBS="$LIBS $LDAPLIBS" ++ AC_MSG_CHECKING([for working LDAP support]) ++ AC_TRY_COMPILE( ++ [#include ++ #include ], ++ [(void)ldap_init(0, 0);], ++ [AC_MSG_RESULT(yes)], ++ [ ++ AC_MSG_RESULT(no) ++ AC_MSG_ERROR([** Incomplete or missing ldap libraries **]) ++ ]) ++ AC_CHECK_FUNCS( \ ++ ldap_init \ ++ ldap_get_lderrno \ ++ ldap_set_lderrno \ ++ ldap_parse_result \ ++ ldap_memfree \ ++ ldap_controls_free \ ++ ldap_set_option \ ++ ldap_get_option \ ++ ldapssl_init \ ++ ldap_start_tls_s \ ++ ldap_pvt_tls_set_option \ ++ ldap_initialize \ ++ ) ++ AC_CHECK_FUNCS(ldap_set_rebind_proc, ++ AC_MSG_CHECKING([number arguments of ldap_set_rebind_proc]) ++ AC_TRY_COMPILE( ++ [#include ++ #include ], ++ [ldap_set_rebind_proc(0, 0, 0);], ++ [ac_cv_ldap_set_rebind_proc=3], ++ [ac_cv_ldap_set_rebind_proc=2]) ++ AC_MSG_RESULT($ac_cv_ldap_set_rebind_proc) ++ AC_DEFINE(LDAP_SET_REBIND_PROC_ARGS, $ac_cv_ldap_set_rebind_proc, [number arguments of ldap_set_rebind_proc]) ++ ) ++ LIBS="$saved_LIBS" ++ fi ++ ] ++) ++AC_SUBST(INSTALL_SSH_LDAP_HELPER) ++AC_SUBST(LDAPLIBS) ++ + dnl Checks for library functions. Please keep in alphabetical order + AC_CHECK_FUNCS([ \ + Blowfish_initstate \ +@@ -5227,6 +5352,9 @@ + echo "Preprocessor flags: ${CPPFLAGS}" + echo " Linker flags: ${LDFLAGS}" + echo " Libraries: ${LIBS}" ++if test ! -z "${LDAPLIBS}"; then ++echo " +for ldap: ${LDAPLIBS}" ++fi + if test ! -z "${SSHDLIBS}"; then + echo " +for sshd: ${SSHDLIBS}" + fi +diff -up openssh-6.8p1/ldap-helper.c.ldap openssh-6.8p1/ldap-helper.c +--- openssh-6.8p1/ldap-helper.c.ldap 2015-03-18 11:11:29.030801464 +0100 ++++ openssh-6.8p1/ldap-helper.c 2015-03-18 11:11:29.030801464 +0100 +@@ -0,0 +1,151 @@ ++/* $OpenBSD: ssh-pka-ldap.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ ++/* ++ * Copyright (c) 2009 Jan F. Chadima. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "ldapincludes.h" ++#include "log.h" ++#include "misc.h" ++#include "xmalloc.h" ++#include "ldapconf.h" ++#include "ldapbody.h" ++#include ++#include ++#include ++ ++static int config_debug = 0; ++int config_exclusive_config_file = 0; ++static char *config_file_name = "/etc/ssh/ldap.conf"; ++static char *config_single_user = NULL; ++static int config_verbose = SYSLOG_LEVEL_VERBOSE; ++int config_warning_config_file = 0; ++extern char *__progname; ++ ++static void ++usage(void) ++{ ++ fprintf(stderr, "usage: %s [options]\n", ++ __progname); ++ fprintf(stderr, "Options:\n"); ++ fprintf(stderr, " -d Output the log messages to stderr.\n"); ++ fprintf(stderr, " -e Check the config file for unknown commands.\n"); ++ fprintf(stderr, " -f file Use alternate config file (default is /etc/ssh/ldap.conf).\n"); ++ fprintf(stderr, " -s user Do not demonize, send the user's key to stdout.\n"); ++ fprintf(stderr, " -v Increase verbosity of the debug output (implies -d).\n"); ++ fprintf(stderr, " -w Warn on unknown commands in the config file.\n"); ++ exit(1); ++} ++ ++/* ++ * Main program for the ssh pka ldap agent. ++ */ ++ ++int ++main(int ac, char **av) ++{ ++ int opt; ++ FILE *outfile = NULL; ++ ++ __progname = ssh_get_progname(av[0]); ++ ++ log_init(__progname, SYSLOG_LEVEL_DEBUG3, SYSLOG_FACILITY_AUTH, 0); ++ ++ /* ++ * Initialize option structure to indicate that no values have been ++ * set. ++ */ ++ initialize_options(); ++ ++ /* Parse command-line arguments. */ ++ while ((opt = getopt(ac, av, "def:s:vw")) != -1) { ++ switch (opt) { ++ case 'd': ++ config_debug = 1; ++ break; ++ ++ case 'e': ++ config_exclusive_config_file = 1; ++ config_warning_config_file = 1; ++ break; ++ ++ case 'f': ++ config_file_name = optarg; ++ break; ++ ++ case 's': ++ config_single_user = optarg; ++ outfile = fdopen (dup (fileno (stdout)), "w"); ++ break; ++ ++ case 'v': ++ config_debug = 1; ++ if (config_verbose < SYSLOG_LEVEL_DEBUG3) ++ config_verbose++; ++ break; ++ ++ case 'w': ++ config_warning_config_file = 1; ++ break; ++ ++ case '?': ++ default: ++ usage(); ++ break; ++ } ++ } ++ ++ /* Initialize loging */ ++ log_init(__progname, config_verbose, SYSLOG_FACILITY_AUTH, config_debug); ++ ++ if (ac != optind) ++ fatal ("illegal extra parameter %s", av[1]); ++ ++ /* Ensure that fds 0 and 2 are open or directed to /dev/null */ ++ if (config_debug == 0) ++ sanitise_stdfd(); ++ ++ /* Read config file */ ++ read_config_file(config_file_name); ++ fill_default_options(); ++ if (config_verbose == SYSLOG_LEVEL_DEBUG3) { ++ debug3 ("=== Configuration ==="); ++ dump_config(); ++ debug3 ("=== *** ==="); ++ } ++ ++ ldap_checkconfig(); ++ ldap_do_connect(); ++ ++ if (config_single_user) { ++ process_user (config_single_user, outfile); ++ } else { ++ usage(); ++ fatal ("Not yet implemented"); ++/* TODO ++ * open unix socket a run the loop on it ++ */ ++ } ++ ++ ldap_do_close(); ++ return 0; ++} +diff -up openssh-6.8p1/ldap-helper.h.ldap openssh-6.8p1/ldap-helper.h +--- openssh-6.8p1/ldap-helper.h.ldap 2015-03-18 11:11:29.031801462 +0100 ++++ openssh-6.8p1/ldap-helper.h 2015-03-18 11:11:29.031801462 +0100 +@@ -0,0 +1,32 @@ ++/* $OpenBSD: ldap-helper.h,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ ++/* ++ * Copyright (c) 2009 Jan F. Chadima. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#ifndef LDAP_HELPER_H ++#define LDAP_HELPER_H ++ ++extern int config_exclusive_config_file; ++extern int config_warning_config_file; ++ ++#endif /* LDAP_HELPER_H */ +diff -up openssh-6.8p1/ldap.conf.ldap openssh-6.8p1/ldap.conf +--- openssh-6.8p1/ldap.conf.ldap 2015-03-18 11:11:29.031801462 +0100 ++++ openssh-6.8p1/ldap.conf 2015-03-18 11:11:29.031801462 +0100 +@@ -0,0 +1,95 @@ ++# $Id: openssh-5.5p1-ldap.patch,v 1.3 2010/07/07 13:48:36 jfch2222 Exp $ ++# ++# This is the example configuration file for the OpenSSH ++# LDAP backend ++# ++# see ssh-ldap.conf(5) ++# ++ ++# URI with your LDAP server name. This allows to use ++# Unix Domain Sockets to connect to a local LDAP Server. ++#uri ldap://127.0.0.1/ ++#uri ldaps://127.0.0.1/ ++#uri ldapi://%2fvar%2frun%2fldapi_sock/ ++# Note: %2f encodes the '/' used as directory separator ++ ++# Another way to specify your LDAP server is to provide an ++# host name and the port of our LDAP server. Host name ++# must be resolvable without using LDAP. ++# Multiple hosts may be specified, each separated by a ++# space. How long nss_ldap takes to failover depends on ++# whether your LDAP client library supports configurable ++# network or connect timeouts (see bind_timelimit). ++#host 127.0.0.1 ++ ++# The port. ++# Optional: default is 389. ++#port 389 ++ ++# The distinguished name to bind to the server with. ++# Optional: default is to bind anonymously. ++#binddn cn=openssh_keys,dc=example,dc=org ++ ++# The credentials to bind with. ++# Optional: default is no credential. ++#bindpw TopSecret ++ ++# The distinguished name of the search base. ++#base dc=example,dc=org ++ ++# The LDAP version to use (defaults to 3 ++# if supported by client library) ++#ldap_version 3 ++ ++# The search scope. ++#scope sub ++#scope one ++#scope base ++ ++# Search timelimit ++#timelimit 30 ++ ++# Bind/connect timelimit ++#bind_timelimit 30 ++ ++# Reconnect policy: hard (default) will retry connecting to ++# the software with exponential backoff, soft will fail ++# immediately. ++#bind_policy hard ++ ++# SSL setup, may be implied by URI also. ++#ssl no ++#ssl on ++#ssl start_tls ++ ++# OpenLDAP SSL options ++# Require and verify server certificate (yes/no) ++# Default is to use libldap's default behavior, which can be configured in ++# /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for ++# OpenLDAP 2.0 and earlier is "no", for 2.1 and later is "yes". ++#tls_checkpeer hard ++ ++# CA certificates for server certificate verification ++# At least one of these are required if tls_checkpeer is "yes" ++#tls_cacertfile /etc/ssl/ca.cert ++#tls_cacertdir /etc/pki/tls/certs ++ ++# Seed the PRNG if /dev/urandom is not provided ++#tls_randfile /var/run/egd-pool ++ ++# SSL cipher suite ++# See man ciphers for syntax ++#tls_ciphers TLSv1 ++ ++# Client certificate and key ++# Use these, if your server requires client authentication. ++#tls_cert ++#tls_key ++ ++# OpenLDAP search_format ++# format used to search for users in LDAP directory using substitution ++# for %u for user name and %f for SSH_Filter option (optional, empty by default) ++#search_format (&(objectclass=%c)(objectclass=ldapPublicKey)(uid=%u)%f) ++ ++#AccountClass posixAccount ++ +diff -up openssh-6.8p1/ldapbody.c.ldap openssh-6.8p1/ldapbody.c +--- openssh-6.8p1/ldapbody.c.ldap 2015-03-18 11:11:29.031801462 +0100 ++++ openssh-6.8p1/ldapbody.c 2015-03-18 11:11:29.031801462 +0100 +@@ -0,0 +1,494 @@ ++/* $OpenBSD: ldapbody.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ ++/* ++ * Copyright (c) 2009 Jan F. Chadima. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "ldapincludes.h" ++#include "log.h" ++#include "xmalloc.h" ++#include "ldapconf.h" ++#include "ldapmisc.h" ++#include "ldapbody.h" ++#include ++#include ++#include ++#include "misc.h" ++ ++#define LDAPSEARCH_FORMAT "(&(objectclass=%c)(objectclass=ldapPublicKey)(uid=%u)%f)" ++#define PUBKEYATTR "sshPublicKey" ++#define LDAP_LOGFILE "%s/ldap.%d" ++ ++static FILE *logfile = NULL; ++static LDAP *ld; ++ ++static char *attrs[] = { ++ PUBKEYATTR, ++ NULL ++}; ++ ++void ++ldap_checkconfig (void) ++{ ++#ifdef HAVE_LDAP_INITIALIZE ++ if (options.host == NULL && options.uri == NULL) ++#else ++ if (options.host == NULL) ++#endif ++ fatal ("missing \"host\" in config file"); ++} ++ ++#if defined(LDAP_API_FEATURE_X_OPENLDAP) && (LDAP_API_VERSION > 2000) ++static int ++_rebind_proc (LDAP * ld, LDAP_CONST char *url, int request, ber_int_t msgid) ++{ ++ struct timeval timeout; ++ int rc; ++#if defined(HAVE_LDAP_PARSE_RESULT) && defined(HAVE_LDAP_CONTROLS_FREE) ++ LDAPMessage *result; ++#endif /* HAVE_LDAP_PARSE_RESULT && HAVE_LDAP_CONTROLS_FREE */ ++ ++ debug2 ("Doing LDAP rebind to %s", options.binddn); ++ if (options.ssl == SSL_START_TLS) { ++ if ((rc = ldap_start_tls_s (ld, NULL, NULL)) != LDAP_SUCCESS) { ++ error ("ldap_starttls_s: %s", ldap_err2string (rc)); ++ return LDAP_OPERATIONS_ERROR; ++ } ++ } ++ ++#if !defined(HAVE_LDAP_PARSE_RESULT) || !defined(HAVE_LDAP_CONTROLS_FREE) ++ return ldap_simple_bind_s (ld, options.binddn, options.bindpw); ++#else ++ if (ldap_simple_bind(ld, options.binddn, options.bindpw) < 0) ++ fatal ("ldap_simple_bind %s", ldap_err2string (ldap_get_lderrno (ld, 0, 0))); ++ ++ timeout.tv_sec = options.bind_timelimit; ++ timeout.tv_usec = 0; ++ result = NULL; ++ if ((rc = ldap_result (ld, msgid, 0, &timeout, &result)) < 1) { ++ error ("ldap_result %s", ldap_err2string (ldap_get_lderrno (ld, 0, 0))); ++ ldap_msgfree (result); ++ return LDAP_OPERATIONS_ERROR; ++ } ++ debug3 ("LDAP rebind to %s succesfull", options.binddn); ++ return rc; ++#endif ++} ++#else ++ ++static int ++_rebind_proc (LDAP * ld, char **whop, char **credp, int *methodp, int freeit) ++{ ++ if (freeit) ++ return LDAP_SUCCESS; ++ ++ *whop = strdup (options.binddn); ++ *credp = strdup (options.bindpw); ++ *methodp = LDAP_AUTH_SIMPLE; ++ debug2 ("Doing LDAP rebind for %s", *whop); ++ return LDAP_SUCCESS; ++} ++#endif ++ ++void ++ldap_do_connect(void) ++{ ++ int rc, msgid, ld_errno = 0; ++ struct timeval timeout; ++#if defined(HAVE_LDAP_PARSE_RESULT) && defined(HAVE_LDAP_CONTROLS_FREE) ++ int parserc; ++ LDAPMessage *result; ++ LDAPControl **controls; ++ int reconnect = 0; ++#endif /* HAVE_LDAP_PARSE_RESULT && HAVE_LDAP_CONTROLS_FREE */ ++ ++ debug ("LDAP do connect"); ++ ++retry: ++ if (reconnect) { ++ debug3 ("Reconnecting with ld_errno %d", ld_errno); ++ if (options.bind_policy == 0 || ++ (ld_errno != LDAP_SERVER_DOWN && ld_errno != LDAP_TIMEOUT) || ++ reconnect > 5) ++ fatal ("Cannot connect to LDAP server"); ++ ++ if (reconnect > 1) ++ sleep (reconnect - 1); ++ ++ if (ld != NULL) { ++ ldap_unbind (ld); ++ ld = NULL; ++ } ++ logit("reconnecting to LDAP server..."); ++ } ++ ++ if (ld == NULL) { ++ int rc; ++ struct timeval tv; ++ ++#ifdef HAVE_LDAP_SET_OPTION ++ if (options.debug > 0) { ++#ifdef LBER_OPT_LOG_PRINT_FILE ++ if (options.logdir) { ++ char *logfilename; ++ int logfilenamelen; ++ ++ logfilenamelen = strlen(LDAP_LOGFILE) ++ + strlen("000000") + strlen (options.logdir); ++ logfilename = xmalloc (logfilenamelen); ++ snprintf (logfilename, logfilenamelen, LDAP_LOGFILE, options.logdir, (int) getpid ()); ++ logfilename[logfilenamelen - 1] = 0; ++ if ((logfile = fopen (logfilename, "a")) == NULL) ++ fatal ("cannot append to %s: %s", logfilename, strerror (errno)); ++ debug3 ("LDAP debug into %s", logfilename); ++ free (logfilename); ++ ber_set_option (NULL, LBER_OPT_LOG_PRINT_FILE, logfile); ++ } ++#endif ++ if (options.debug) { ++#ifdef LBER_OPT_DEBUG_LEVEL ++ ber_set_option (NULL, LBER_OPT_DEBUG_LEVEL, &options.debug); ++#endif /* LBER_OPT_DEBUG_LEVEL */ ++#ifdef LDAP_OPT_DEBUG_LEVEL ++ (void) ldap_set_option (NULL, LDAP_OPT_DEBUG_LEVEL, &options.debug); ++#endif /* LDAP_OPT_DEBUG_LEVEL */ ++ debug3 ("Set LDAP debug to %d", options.debug); ++ } ++ } ++#endif /* HAVE_LDAP_SET_OPTION */ ++ ++ ld = NULL; ++#ifdef HAVE_LDAPSSL_INIT ++ if (options.host != NULL) { ++ if (options.ssl_on == SSL_LDAPS) { ++ if ((rc = ldapssl_client_init (options.sslpath, NULL)) != LDAP_SUCCESS) ++ fatal ("ldapssl_client_init %s", ldap_err2string (rc)); ++ debug3 ("LDAPssl client init"); ++ } ++ ++ if (options.ssl_on != SSL_OFF) { ++ if ((ld = ldapssl_init (options.host, options.port, 1)) == NULL) ++ fatal ("ldapssl_init failed"); ++ debug3 ("LDAPssl init"); ++ } ++ } ++#endif /* HAVE_LDAPSSL_INIT */ ++ ++ /* continue with opening */ ++ if (ld == NULL) { ++#if defined (HAVE_LDAP_START_TLS_S) || (defined(HAVE_LDAP_SET_OPTION) && defined(LDAP_OPT_X_TLS)) ++ /* Some global TLS-specific options need to be set before we create our ++ * session context, so we set them here. */ ++ ++#ifdef LDAP_OPT_X_TLS_RANDOM_FILE ++ /* rand file */ ++ if (options.tls_randfile != NULL) { ++ if ((rc = ldap_set_option (NULL, LDAP_OPT_X_TLS_RANDOM_FILE, ++ options.tls_randfile)) != LDAP_SUCCESS) ++ fatal ("ldap_set_option(LDAP_OPT_X_TLS_RANDOM_FILE): %s", ++ ldap_err2string (rc)); ++ debug3 ("Set TLS random file %s", options.tls_randfile); ++ } ++#endif /* LDAP_OPT_X_TLS_RANDOM_FILE */ ++ ++ /* ca cert file */ ++ if (options.tls_cacertfile != NULL) { ++ if ((rc = ldap_set_option (NULL, LDAP_OPT_X_TLS_CACERTFILE, ++ options.tls_cacertfile)) != LDAP_SUCCESS) ++ error ("ldap_set_option(LDAP_OPT_X_TLS_CACERTFILE): %s", ++ ldap_err2string (rc)); ++ debug3 ("Set TLS CA cert file %s ", options.tls_cacertfile); ++ } ++ ++ /* ca cert directory */ ++ if (options.tls_cacertdir != NULL) { ++ if ((rc = ldap_set_option (NULL, LDAP_OPT_X_TLS_CACERTDIR, ++ options.tls_cacertdir)) != LDAP_SUCCESS) ++ fatal ("ldap_set_option(LDAP_OPT_X_TLS_CACERTDIR): %s", ++ ldap_err2string (rc)); ++ debug3 ("Set TLS CA cert dir %s ", options.tls_cacertdir); ++ } ++ ++ /* require cert? */ ++ if ((rc = ldap_set_option (NULL, LDAP_OPT_X_TLS_REQUIRE_CERT, ++ &options.tls_checkpeer)) != LDAP_SUCCESS) ++ fatal ("ldap_set_option(LDAP_OPT_X_TLS_REQUIRE_CERT): %s", ++ ldap_err2string (rc)); ++ debug3 ("Set TLS check peer to %d ", options.tls_checkpeer); ++ ++ /* set cipher suite, certificate and private key: */ ++ if (options.tls_ciphers != NULL) { ++ if ((rc = ldap_set_option (NULL, LDAP_OPT_X_TLS_CIPHER_SUITE, ++ options.tls_ciphers)) != LDAP_SUCCESS) ++ fatal ("ldap_set_option(LDAP_OPT_X_TLS_CIPHER_SUITE): %s", ++ ldap_err2string (rc)); ++ debug3 ("Set TLS ciphers to %s ", options.tls_ciphers); ++ } ++ ++ /* cert file */ ++ if (options.tls_cert != NULL) { ++ if ((rc = ldap_set_option (NULL, LDAP_OPT_X_TLS_CERTFILE, ++ options.tls_cert)) != LDAP_SUCCESS) ++ fatal ("ldap_set_option(LDAP_OPT_X_TLS_CERTFILE): %s", ++ ldap_err2string (rc)); ++ debug3 ("Set TLS cert file %s ", options.tls_cert); ++ } ++ ++ /* key file */ ++ if (options.tls_key != NULL) { ++ if ((rc = ldap_set_option (NULL, LDAP_OPT_X_TLS_KEYFILE, ++ options.tls_key)) != LDAP_SUCCESS) ++ fatal ("ldap_set_option(LDAP_OPT_X_TLS_KEYFILE): %s", ++ ldap_err2string (rc)); ++ debug3 ("Set TLS key file %s ", options.tls_key); ++ } ++#endif ++#ifdef HAVE_LDAP_INITIALIZE ++ if (options.uri != NULL) { ++ if ((rc = ldap_initialize (&ld, options.uri)) != LDAP_SUCCESS) ++ fatal ("ldap_initialize %s", ldap_err2string (rc)); ++ debug3 ("LDAP initialize %s", options.uri); ++ } ++ } ++#endif /* HAVE_LDAP_INTITIALIZE */ ++ ++ /* continue with opening */ ++ if ((ld == NULL) && (options.host != NULL)) { ++#ifdef HAVE_LDAP_INIT ++ if ((ld = ldap_init (options.host, options.port)) == NULL) ++ fatal ("ldap_init failed"); ++ debug3 ("LDAP init %s:%d", options.host, options.port); ++#else ++ if ((ld = ldap_open (options.host, options.port)) == NULL) ++ fatal ("ldap_open failed"); ++ debug3 ("LDAP open %s:%d", options.host, options.port); ++#endif /* HAVE_LDAP_INIT */ ++ } ++ ++ if (ld == NULL) ++ fatal ("no way to open ldap"); ++ ++#if defined(HAVE_LDAP_SET_OPTION) && defined(LDAP_OPT_X_TLS) ++ if (options.ssl == SSL_LDAPS) { ++ if ((rc = ldap_set_option (ld, LDAP_OPT_X_TLS, &options.tls_checkpeer)) != LDAP_SUCCESS) ++ fatal ("ldap_set_option(LDAP_OPT_X_TLS) %s", ldap_err2string (rc)); ++ debug3 ("LDAP set LDAP_OPT_X_TLS_%d", options.tls_checkpeer); ++ } ++#endif /* LDAP_OPT_X_TLS */ ++ ++#if defined(HAVE_LDAP_SET_OPTION) && defined(LDAP_OPT_PROTOCOL_VERSION) ++ (void) ldap_set_option (ld, LDAP_OPT_PROTOCOL_VERSION, ++ &options.ldap_version); ++#else ++ ld->ld_version = options.ldap_version; ++#endif ++ debug3 ("LDAP set version to %d", options.ldap_version); ++ ++#if LDAP_SET_REBIND_PROC_ARGS == 3 ++ ldap_set_rebind_proc (ld, _rebind_proc, NULL); ++#elif LDAP_SET_REBIND_PROC_ARGS == 2 ++ ldap_set_rebind_proc (ld, _rebind_proc); ++#else ++#warning unknown LDAP_SET_REBIND_PROC_ARGS ++#endif ++ debug3 ("LDAP set rebind proc"); ++ ++#if defined(HAVE_LDAP_SET_OPTION) && defined(LDAP_OPT_DEREF) ++ (void) ldap_set_option (ld, LDAP_OPT_DEREF, &options.deref); ++#else ++ ld->ld_deref = options.deref; ++#endif ++ debug3 ("LDAP set deref to %d", options.deref); ++ ++#if defined(HAVE_LDAP_SET_OPTION) && defined(LDAP_OPT_TIMELIMIT) ++ (void) ldap_set_option (ld, LDAP_OPT_TIMELIMIT, ++ &options.timelimit); ++#else ++ ld->ld_timelimit = options.timelimit; ++#endif ++ debug3 ("LDAP set timelimit to %d", options.timelimit); ++ ++#if defined(HAVE_LDAP_SET_OPTION) && defined(LDAP_X_OPT_CONNECT_TIMEOUT) ++ /* ++ * This is a new option in the Netscape SDK which sets ++ * the TCP connect timeout. For want of a better value, ++ * we use the bind_timelimit to control this. ++ */ ++ timeout = options.bind_timelimit * 1000; ++ (void) ldap_set_option (ld, LDAP_X_OPT_CONNECT_TIMEOUT, &timeout); ++ debug3 ("LDAP set opt connect timeout to %d", timeout); ++#endif ++ ++#if defined(HAVE_LDAP_SET_OPTION) && defined(LDAP_OPT_NETWORK_TIMEOUT) ++ tv.tv_sec = options.bind_timelimit; ++ tv.tv_usec = 0; ++ (void) ldap_set_option (ld, LDAP_OPT_NETWORK_TIMEOUT, &tv); ++ debug3 ("LDAP set opt network timeout to %ld.0", tv.tv_sec); ++#endif ++ ++#if defined(HAVE_LDAP_SET_OPTION) && defined(LDAP_OPT_REFERRALS) ++ (void) ldap_set_option (ld, LDAP_OPT_REFERRALS, ++ options.referrals ? LDAP_OPT_ON : LDAP_OPT_OFF); ++ debug3 ("LDAP set referrals to %d", options.referrals); ++#endif ++ ++#if defined(HAVE_LDAP_SET_OPTION) && defined(LDAP_OPT_RESTART) ++ (void) ldap_set_option (ld, LDAP_OPT_RESTART, ++ options.restart ? LDAP_OPT_ON : LDAP_OPT_OFF); ++ debug3 ("LDAP set restart to %d", options.restart); ++#endif ++ ++#ifdef HAVE_LDAP_START_TLS_S ++ if (options.ssl == SSL_START_TLS) { ++ int version; ++ ++ if (ldap_get_option (ld, LDAP_OPT_PROTOCOL_VERSION, &version) ++ == LDAP_SUCCESS) { ++ if (version < LDAP_VERSION3) { ++ version = LDAP_VERSION3; ++ (void) ldap_set_option (ld, LDAP_OPT_PROTOCOL_VERSION, ++ &version); ++ debug3 ("LDAP set version to %d", version); ++ } ++ } ++ ++ if ((rc = ldap_start_tls_s (ld, NULL, NULL)) != LDAP_SUCCESS) ++ fatal ("ldap_starttls_s: %s", ldap_err2string (rc)); ++ debug3 ("LDAP start TLS"); ++ } ++#endif /* HAVE_LDAP_START_TLS_S */ ++ } ++ ++ if ((msgid = ldap_simple_bind (ld, options.binddn, ++ options.bindpw)) == -1) { ++ ld_errno = ldap_get_lderrno (ld, 0, 0); ++ ++ error ("ldap_simple_bind %s", ldap_err2string (ld_errno)); ++ reconnect++; ++ goto retry; ++ } ++ debug3 ("LDAP simple bind (%s)", options.binddn); ++ ++ timeout.tv_sec = options.bind_timelimit; ++ timeout.tv_usec = 0; ++ if ((rc = ldap_result (ld, msgid, 0, &timeout, &result)) < 1) { ++ ld_errno = ldap_get_lderrno (ld, 0, 0); ++ ++ error ("ldap_result %s", ldap_err2string (ld_errno)); ++ reconnect++; ++ goto retry; ++ } ++ debug3 ("LDAP result in time"); ++ ++#if defined(HAVE_LDAP_PARSE_RESULT) && defined(HAVE_LDAP_CONTROLS_FREE) ++ controls = NULL; ++ if ((parserc = ldap_parse_result (ld, result, &rc, 0, 0, 0, &controls, 1)) != LDAP_SUCCESS) ++ fatal ("ldap_parse_result %s", ldap_err2string (parserc)); ++ debug3 ("LDAP parse result OK"); ++ ++ if (controls != NULL) { ++ ldap_controls_free (controls); ++ } ++#else ++ rc = ldap_result2error (session->ld, result, 1); ++#endif ++ if (rc != LDAP_SUCCESS) ++ fatal ("error trying to bind as user \"%s\" (%s)", ++ options.binddn, ldap_err2string (rc)); ++ ++ debug2 ("LDAP do connect OK"); ++} ++ ++void ++process_user (const char *user, FILE *output) ++{ ++ LDAPMessage *res, *e; ++ char *buffer, *format; ++ int rc, i; ++ struct timeval timeout; ++ ++ debug ("LDAP process user"); ++ ++ /* quick check for attempts to be evil */ ++ if ((strchr(user, '(') != NULL) || (strchr(user, ')') != NULL) || ++ (strchr(user, '*') != NULL) || (strchr(user, '\\') != NULL)) { ++ logit ("illegal user name %s not processed", user); ++ return; ++ } ++ ++ /* build filter for LDAP request */ ++ format = LDAPSEARCH_FORMAT; ++ if (options.search_format != NULL) ++ format = options.search_format; ++ buffer = percent_expand(format, "c", options.account_class, "u", user, "f", options.ssh_filter, (char *)NULL); ++ ++ debug3 ("LDAP search scope = %d %s", options.scope, buffer); ++ ++ timeout.tv_sec = options.timelimit; ++ timeout.tv_usec = 0; ++ if ((rc = ldap_search_st(ld, options.base, options.scope, buffer, attrs, 0, &timeout, &res)) != LDAP_SUCCESS) { ++ error ("ldap_search_st(): %s", ldap_err2string (rc)); ++ free (buffer); ++ return; ++ } ++ ++ /* free */ ++ free (buffer); ++ ++ for (e = ldap_first_entry(ld, res); e != NULL; e = ldap_next_entry(ld, e)) { ++ int num; ++ struct berval **keys; ++ ++ keys = ldap_get_values_len(ld, e, PUBKEYATTR); ++ num = ldap_count_values_len(keys); ++ for (i = 0 ; i < num ; i++) { ++ char *cp; //, *options = NULL; ++ ++ for (cp = keys[i]->bv_val; *cp == ' ' || *cp == '\t'; cp++); ++ if (!*cp || *cp == '\n' || *cp == '#') ++ continue; ++ ++ /* We have found the desired key. */ ++ fprintf (output, "%s\n", keys[i]->bv_val); ++ } ++ ++ ldap_value_free_len(keys); ++ } ++ ++ ldap_msgfree(res); ++ debug2 ("LDAP process user finished"); ++} ++ ++void ++ldap_do_close(void) ++{ ++ int rc; ++ ++ debug ("LDAP do close"); ++ if ((rc = ldap_unbind_ext(ld, NULL, NULL)) != LDAP_SUCCESS) ++ fatal ("ldap_unbind_ext: %s", ++ ldap_err2string (rc)); ++ ++ ld = NULL; ++ debug2 ("LDAP do close OK"); ++ return; ++} ++ +diff -up openssh-6.8p1/ldapbody.h.ldap openssh-6.8p1/ldapbody.h +--- openssh-6.8p1/ldapbody.h.ldap 2015-03-18 11:11:29.031801462 +0100 ++++ openssh-6.8p1/ldapbody.h 2015-03-18 11:11:29.031801462 +0100 +@@ -0,0 +1,37 @@ ++/* $OpenBSD: ldapbody.h,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ ++/* ++ * Copyright (c) 2009 Jan F. Chadima. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#ifndef LDAPBODY_H ++#define LDAPBODY_H ++ ++#include ++ ++void ldap_checkconfig(void); ++void ldap_do_connect(void); ++void process_user(const char *, FILE *); ++void ldap_do_close(void); ++ ++#endif /* LDAPBODY_H */ ++ +diff -up openssh-6.8p1/ldapconf.c.ldap openssh-6.8p1/ldapconf.c +--- openssh-6.8p1/ldapconf.c.ldap 2015-03-18 11:11:29.032801460 +0100 ++++ openssh-6.8p1/ldapconf.c 2015-03-18 11:11:29.032801460 +0100 +@@ -0,0 +1,729 @@ ++/* $OpenBSD: ldapconf.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ ++/* ++ * Copyright (c) 2009 Jan F. Chadima. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "ldapincludes.h" ++#include "ldap-helper.h" ++#include "log.h" ++#include "misc.h" ++#include "xmalloc.h" ++#include "ldapconf.h" ++#include ++#include ++#include ++ ++/* Keyword tokens. */ ++ ++typedef enum { ++ lBadOption, ++ lHost, lURI, lBase, lBindDN, lBindPW, lRootBindDN, ++ lScope, lDeref, lPort, lTimeLimit, lBind_TimeLimit, ++ lLdap_Version, lBind_Policy, lSSLPath, lSSL, lReferrals, ++ lRestart, lTLS_CheckPeer, lTLS_CaCertFile, ++ lTLS_CaCertDir, lTLS_Ciphers, lTLS_Cert, lTLS_Key, ++ lTLS_RandFile, lLogDir, lDebug, lSSH_Filter, lSearch_Format, ++ lAccountClass, lDeprecated, lUnsupported ++} OpCodes; ++ ++/* Textual representations of the tokens. */ ++ ++static struct { ++ const char *name; ++ OpCodes opcode; ++} keywords[] = { ++ { "URI", lURI }, ++ { "Base", lBase }, ++ { "BindDN", lBindDN }, ++ { "BindPW", lBindPW }, ++ { "RootBindDN", lRootBindDN }, ++ { "Host", lHost }, ++ { "Port", lPort }, ++ { "Scope", lScope }, ++ { "Deref", lDeref }, ++ { "TimeLimit", lTimeLimit }, ++ { "TimeOut", lTimeLimit }, ++ { "Bind_Timelimit", lBind_TimeLimit }, ++ { "Network_TimeOut", lBind_TimeLimit }, ++/* ++ * Todo ++ * SIZELIMIT ++ */ ++ { "Ldap_Version", lLdap_Version }, ++ { "Version", lLdap_Version }, ++ { "Bind_Policy", lBind_Policy }, ++ { "SSLPath", lSSLPath }, ++ { "SSL", lSSL }, ++ { "Referrals", lReferrals }, ++ { "Restart", lRestart }, ++ { "TLS_CheckPeer", lTLS_CheckPeer }, ++ { "TLS_ReqCert", lTLS_CheckPeer }, ++ { "TLS_CaCertFile", lTLS_CaCertFile }, ++ { "TLS_CaCert", lTLS_CaCertFile }, ++ { "TLS_CaCertDir", lTLS_CaCertDir }, ++ { "TLS_Ciphers", lTLS_Ciphers }, ++ { "TLS_Cipher_Suite", lTLS_Ciphers }, ++ { "TLS_Cert", lTLS_Cert }, ++ { "TLS_Certificate", lTLS_Cert }, ++ { "TLS_Key", lTLS_Key }, ++ { "TLS_RandFile", lTLS_RandFile }, ++/* ++ * Todo ++ * TLS_CRLCHECK ++ * TLS_CRLFILE ++ */ ++ { "LogDir", lLogDir }, ++ { "Debug", lDebug }, ++ { "SSH_Filter", lSSH_Filter }, ++ { "search_format", lSearch_Format }, ++ { "AccountClass", lAccountClass }, ++ { NULL, lBadOption } ++}; ++ ++/* Configuration ptions. */ ++ ++Options options; ++ ++/* ++ * Returns the number of the token pointed to by cp or oBadOption. ++ */ ++ ++static OpCodes ++parse_token(const char *cp, const char *filename, int linenum) ++{ ++ u_int i; ++ ++ for (i = 0; keywords[i].name; i++) ++ if (strcasecmp(cp, keywords[i].name) == 0) ++ return keywords[i].opcode; ++ ++ if (config_warning_config_file) ++ logit("%s: line %d: Bad configuration option: %s", ++ filename, linenum, cp); ++ return lBadOption; ++} ++ ++/* Characters considered whitespace in strsep calls. */ ++#define WHITESPACE " \t\r\n" ++ ++/* return next token in configuration line */ ++static char * ++ldap_strdelim(char **s) ++{ ++ char *old; ++ int wspace = 0; ++ ++ if (*s == NULL) ++ return NULL; ++ ++ old = *s; ++ ++ *s = strpbrk(*s, WHITESPACE); ++ if (*s == NULL) ++ return (old); ++ ++ *s[0] = '\0'; ++ ++ /* Skip any extra whitespace after first token */ ++ *s += strspn(*s + 1, WHITESPACE) + 1; ++ if (*s[0] == '=' && !wspace) ++ *s += strspn(*s + 1, WHITESPACE) + 1; ++ ++ return (old); ++} ++ ++/* ++ * Processes a single option line as used in the configuration files. This ++ * only sets those values that have not already been set. ++ */ ++#define WHITESPACE " \t\r\n" ++ ++static int ++process_config_line(char *line, const char *filename, int linenum) ++{ ++ char *s, **charptr, **xstringptr, *endofnumber, *keyword, *arg; ++ char *rootbinddn = NULL; ++ int opcode, *intptr, value; ++ size_t len; ++ ++ /* Strip trailing whitespace */ ++ for (len = strlen(line) - 1; len > 0; len--) { ++ if (strchr(WHITESPACE, line[len]) == NULL) ++ break; ++ line[len] = '\0'; ++ } ++ ++ s = line; ++ /* Get the keyword. (Each line is supposed to begin with a keyword). */ ++ if ((keyword = ldap_strdelim(&s)) == NULL) ++ return 0; ++ /* Ignore leading whitespace. */ ++ if (*keyword == '\0') ++ keyword = ldap_strdelim(&s); ++ if (keyword == NULL || !*keyword || *keyword == '\n' || *keyword == '#') ++ return 0; ++ ++ opcode = parse_token(keyword, filename, linenum); ++ ++ switch (opcode) { ++ case lBadOption: ++ /* don't panic, but count bad options */ ++ return -1; ++ /* NOTREACHED */ ++ ++ case lHost: ++ xstringptr = &options.host; ++parse_xstring: ++ if (!s || *s == '\0') ++ fatal("%s line %d: missing dn",filename,linenum); ++ if (*xstringptr == NULL) ++ *xstringptr = xstrdup(s); ++ return 0; ++ ++ case lURI: ++ xstringptr = &options.uri; ++ goto parse_xstring; ++ ++ case lBase: ++ xstringptr = &options.base; ++ goto parse_xstring; ++ ++ case lBindDN: ++ xstringptr = &options.binddn; ++ goto parse_xstring; ++ ++ case lBindPW: ++ charptr = &options.bindpw; ++parse_string: ++ arg = ldap_strdelim(&s); ++ if (!arg || *arg == '\0') ++ fatal("%.200s line %d: Missing argument.", filename, linenum); ++ if (*charptr == NULL) ++ *charptr = xstrdup(arg); ++ break; ++ ++ case lRootBindDN: ++ xstringptr = &rootbinddn; ++ goto parse_xstring; ++ ++ case lScope: ++ intptr = &options.scope; ++ arg = ldap_strdelim(&s); ++ if (!arg || *arg == '\0') ++ fatal("%.200s line %d: Missing sub/one/base argument.", filename, linenum); ++ value = 0; /* To avoid compiler warning... */ ++ if (strcasecmp (arg, "sub") == 0 || strcasecmp (arg, "subtree") == 0) ++ value = LDAP_SCOPE_SUBTREE; ++ else if (strcasecmp (arg, "one") == 0) ++ value = LDAP_SCOPE_ONELEVEL; ++ else if (strcasecmp (arg, "base") == 0) ++ value = LDAP_SCOPE_BASE; ++ else ++ fatal("%.200s line %d: Bad sub/one/base argument.", filename, linenum); ++ if (*intptr == -1) ++ *intptr = value; ++ break; ++ ++ case lDeref: ++ intptr = &options.scope; ++ arg = ldap_strdelim(&s); ++ if (!arg || *arg == '\0') ++ fatal("%.200s line %d: Missing never/searching/finding/always argument.", filename, linenum); ++ value = 0; /* To avoid compiler warning... */ ++ if (!strcasecmp (arg, "never")) ++ value = LDAP_DEREF_NEVER; ++ else if (!strcasecmp (arg, "searching")) ++ value = LDAP_DEREF_SEARCHING; ++ else if (!strcasecmp (arg, "finding")) ++ value = LDAP_DEREF_FINDING; ++ else if (!strcasecmp (arg, "always")) ++ value = LDAP_DEREF_ALWAYS; ++ else ++ fatal("%.200s line %d: Bad never/searching/finding/always argument.", filename, linenum); ++ if (*intptr == -1) ++ *intptr = value; ++ break; ++ ++ case lPort: ++ intptr = &options.port; ++parse_int: ++ arg = ldap_strdelim(&s); ++ if (!arg || *arg == '\0') ++ fatal("%.200s line %d: Missing argument.", filename, linenum); ++ if (arg[0] < '0' || arg[0] > '9') ++ fatal("%.200s line %d: Bad number.", filename, linenum); ++ ++ /* Octal, decimal, or hex format? */ ++ value = strtol(arg, &endofnumber, 0); ++ if (arg == endofnumber) ++ fatal("%.200s line %d: Bad number.", filename, linenum); ++ if (*intptr == -1) ++ *intptr = value; ++ break; ++ ++ case lTimeLimit: ++ intptr = &options.timelimit; ++parse_time: ++ arg = ldap_strdelim(&s); ++ if (!arg || *arg == '\0') ++ fatal("%s line %d: missing time value.", ++ filename, linenum); ++ if ((value = convtime(arg)) == -1) ++ fatal("%s line %d: invalid time value.", ++ filename, linenum); ++ if (*intptr == -1) ++ *intptr = value; ++ break; ++ ++ case lBind_TimeLimit: ++ intptr = &options.bind_timelimit; ++ goto parse_time; ++ ++ case lLdap_Version: ++ intptr = &options.ldap_version; ++ goto parse_int; ++ ++ case lBind_Policy: ++ intptr = &options.bind_policy; ++ arg = ldap_strdelim(&s); ++ if (!arg || *arg == '\0') ++ fatal("%.200s line %d: Missing soft/hard argument.", filename, linenum); ++ value = 0; /* To avoid compiler warning... */ ++ if (strcasecmp(arg, "hard") == 0 || strcasecmp(arg, "hard_open") == 0 || strcasecmp(arg, "hard_init") == 0) ++ value = 1; ++ else if (strcasecmp(arg, "soft") == 0) ++ value = 0; ++ else ++ fatal("%.200s line %d: Bad soft/hard argument.", filename, linenum); ++ if (*intptr == -1) ++ *intptr = value; ++ break; ++ ++ case lSSLPath: ++ charptr = &options.sslpath; ++ goto parse_string; ++ ++ case lSSL: ++ intptr = &options.ssl; ++ arg = ldap_strdelim(&s); ++ if (!arg || *arg == '\0') ++ fatal("%.200s line %d: Missing yes/no/start_tls argument.", filename, linenum); ++ value = 0; /* To avoid compiler warning... */ ++ if (strcasecmp(arg, "yes") == 0 || strcasecmp(arg, "true") == 0 || strcasecmp(arg, "on") == 0) ++ value = SSL_LDAPS; ++ else if (strcasecmp(arg, "no") == 0 || strcasecmp(arg, "false") == 0 || strcasecmp(arg, "off") == 0) ++ value = SSL_OFF; ++ else if (!strcasecmp (arg, "start_tls")) ++ value = SSL_START_TLS; ++ else ++ fatal("%.200s line %d: Bad yes/no/start_tls argument.", filename, linenum); ++ if (*intptr == -1) ++ *intptr = value; ++ break; ++ ++ case lReferrals: ++ intptr = &options.referrals; ++parse_flag: ++ arg = ldap_strdelim(&s); ++ if (!arg || *arg == '\0') ++ fatal("%.200s line %d: Missing yes/no argument.", filename, linenum); ++ value = 0; /* To avoid compiler warning... */ ++ if (strcasecmp(arg, "yes") == 0 || strcasecmp(arg, "true") == 0 || strcasecmp(arg, "on") == 0) ++ value = 1; ++ else if (strcasecmp(arg, "no") == 0 || strcasecmp(arg, "false") == 0 || strcasecmp(arg, "off") == 0) ++ value = 0; ++ else ++ fatal("%.200s line %d: Bad yes/no argument.", filename, linenum); ++ if (*intptr == -1) ++ *intptr = value; ++ break; ++ ++ case lRestart: ++ intptr = &options.restart; ++ goto parse_flag; ++ ++ case lTLS_CheckPeer: ++ intptr = &options.tls_checkpeer; ++ arg = ldap_strdelim(&s); ++ if (!arg || *arg == '\0') ++ fatal("%.200s line %d: Missing never/hard/demand/alow/try argument.", filename, linenum); ++ value = 0; /* To avoid compiler warning... */ ++ if (strcasecmp(arg, "never") == 0 || strcasecmp(arg, "no") == 0 || strcasecmp(arg, "false") == 0 || strcasecmp(arg, "off") == 0) ++ value = LDAP_OPT_X_TLS_NEVER; ++ else if (strcasecmp(arg, "hard") == 0 || strcasecmp(arg, "yes") == 0 || strcasecmp(arg, "true") == 0 || strcasecmp(arg, "on") == 0) ++ value = LDAP_OPT_X_TLS_HARD; ++ else if (strcasecmp(arg, "demand") == 0) ++ value = LDAP_OPT_X_TLS_DEMAND; ++ else if (strcasecmp(arg, "allow") == 0) ++ value = LDAP_OPT_X_TLS_ALLOW; ++ else if (strcasecmp(arg, "try") == 0) ++ value = LDAP_OPT_X_TLS_TRY; ++ else ++ fatal("%.200s line %d: Bad never/hard/demand/alow/try argument.", filename, linenum); ++ if (*intptr == -1) ++ *intptr = value; ++ break; ++ ++ case lTLS_CaCertFile: ++ charptr = &options.tls_cacertfile; ++ goto parse_string; ++ ++ case lTLS_CaCertDir: ++ charptr = &options.tls_cacertdir; ++ goto parse_string; ++ ++ case lTLS_Ciphers: ++ xstringptr = &options.tls_ciphers; ++ goto parse_xstring; ++ ++ case lTLS_Cert: ++ charptr = &options.tls_cert; ++ goto parse_string; ++ ++ case lTLS_Key: ++ charptr = &options.tls_key; ++ goto parse_string; ++ ++ case lTLS_RandFile: ++ charptr = &options.tls_randfile; ++ goto parse_string; ++ ++ case lLogDir: ++ charptr = &options.logdir; ++ goto parse_string; ++ ++ case lDebug: ++ intptr = &options.debug; ++ goto parse_int; ++ ++ case lSSH_Filter: ++ xstringptr = &options.ssh_filter; ++ goto parse_xstring; ++ ++ case lSearch_Format: ++ charptr = &options.search_format; ++ goto parse_string; ++ ++ case lAccountClass: ++ charptr = &options.account_class; ++ goto parse_string; ++ ++ case lDeprecated: ++ debug("%s line %d: Deprecated option \"%s\"", ++ filename, linenum, keyword); ++ return 0; ++ ++ case lUnsupported: ++ error("%s line %d: Unsupported option \"%s\"", ++ filename, linenum, keyword); ++ return 0; ++ ++ default: ++ fatal("process_config_line: Unimplemented opcode %d", opcode); ++ } ++ ++ /* Check that there is no garbage at end of line. */ ++ if ((arg = ldap_strdelim(&s)) != NULL && *arg != '\0') { ++ fatal("%.200s line %d: garbage at end of line; \"%.200s\".", ++ filename, linenum, arg); ++ } ++ return 0; ++} ++ ++/* ++ * Reads the config file and modifies the options accordingly. Options ++ * should already be initialized before this call. This never returns if ++ * there is an error. If the file does not exist, this returns 0. ++ */ ++ ++void ++read_config_file(const char *filename) ++{ ++ FILE *f; ++ char line[1024]; ++ int linenum; ++ int bad_options = 0; ++ struct stat sb; ++ ++ if ((f = fopen(filename, "r")) == NULL) ++ fatal("fopen %s: %s", filename, strerror(errno)); ++ ++ if (fstat(fileno(f), &sb) == -1) ++ fatal("fstat %s: %s", filename, strerror(errno)); ++ if (((sb.st_uid != 0 && sb.st_uid != getuid()) || ++ (sb.st_mode & 022) != 0)) ++ fatal("Bad owner or permissions on %s", filename); ++ ++ debug("Reading configuration data %.200s", filename); ++ ++ /* ++ * Mark that we are now processing the options. This flag is turned ++ * on/off by Host specifications. ++ */ ++ linenum = 0; ++ while (fgets(line, sizeof(line), f)) { ++ /* Update line number counter. */ ++ linenum++; ++ if (process_config_line(line, filename, linenum) != 0) ++ bad_options++; ++ } ++ fclose(f); ++ if ((bad_options > 0) && config_exclusive_config_file) ++ fatal("%s: terminating, %d bad configuration options", ++ filename, bad_options); ++} ++ ++/* ++ * Initializes options to special values that indicate that they have not yet ++ * been set. Read_config_file will only set options with this value. Options ++ * are processed in the following order: command line, user config file, ++ * system config file. Last, fill_default_options is called. ++ */ ++ ++void ++initialize_options(void) ++{ ++ memset(&options, 'X', sizeof(options)); ++ options.host = NULL; ++ options.uri = NULL; ++ options.base = NULL; ++ options.binddn = NULL; ++ options.bindpw = NULL; ++ options.scope = -1; ++ options.deref = -1; ++ options.port = -1; ++ options.timelimit = -1; ++ options.bind_timelimit = -1; ++ options.ldap_version = -1; ++ options.bind_policy = -1; ++ options.sslpath = NULL; ++ options.ssl = -1; ++ options.referrals = -1; ++ options.restart = -1; ++ options.tls_checkpeer = -1; ++ options.tls_cacertfile = NULL; ++ options.tls_cacertdir = NULL; ++ options.tls_ciphers = NULL; ++ options.tls_cert = NULL; ++ options.tls_key = NULL; ++ options.tls_randfile = NULL; ++ options.logdir = NULL; ++ options.debug = -1; ++ options.ssh_filter = NULL; ++ options.search_format = NULL; ++ options.account_class = NULL; ++} ++ ++/* ++ * Called after processing other sources of option data, this fills those ++ * options for which no value has been specified with their default values. ++ */ ++ ++void ++fill_default_options(void) ++{ ++ if (options.uri != NULL) { ++ LDAPURLDesc *ludp; ++ ++ if (ldap_url_parse(options.uri, &ludp) == LDAP_SUCCESS) { ++ if (options.ssl == -1) { ++ if (strcmp (ludp->lud_scheme, "ldap") == 0) ++ options.ssl = 2; ++ if (strcmp (ludp->lud_scheme, "ldapi") == 0) ++ options.ssl = 0; ++ else if (strcmp (ludp->lud_scheme, "ldaps") == 0) ++ options.ssl = 1; ++ } ++ if (options.host == NULL) ++ options.host = xstrdup (ludp->lud_host); ++ if (options.port == -1) ++ options.port = ludp->lud_port; ++ ++ ldap_free_urldesc (ludp); ++ } ++ } ++ if (options.ssl == -1) ++ options.ssl = SSL_START_TLS; ++ if (options.port == -1) ++ options.port = (options.ssl == 0) ? 389 : 636; ++ if (options.uri == NULL) { ++ int len; ++#define MAXURILEN 4096 ++ ++ options.uri = xmalloc (MAXURILEN); ++ len = snprintf (options.uri, MAXURILEN, "ldap%s://%s:%d", ++ (options.ssl == 0) ? "" : "s", options.host, options.port); ++ options.uri[MAXURILEN - 1] = 0; ++ options.uri = xreallocarray(options.uri, len + 1, 1); ++ } ++ if (options.binddn == NULL) ++ options.binddn = ""; ++ if (options.bindpw == NULL) ++ options.bindpw = ""; ++ if (options.scope == -1) ++ options.scope = LDAP_SCOPE_SUBTREE; ++ if (options.deref == -1) ++ options.deref = LDAP_DEREF_NEVER; ++ if (options.timelimit == -1) ++ options.timelimit = 10; ++ if (options.bind_timelimit == -1) ++ options.bind_timelimit = 10; ++ if (options.ldap_version == -1) ++ options.ldap_version = 3; ++ if (options.bind_policy == -1) ++ options.bind_policy = 1; ++ if (options.referrals == -1) ++ options.referrals = 1; ++ if (options.restart == -1) ++ options.restart = 1; ++ if (options.tls_checkpeer == -1) ++ options.tls_checkpeer = LDAP_OPT_X_TLS_HARD; ++ if (options.debug == -1) ++ options.debug = 0; ++ if (options.ssh_filter == NULL) ++ options.ssh_filter = ""; ++ if (options.account_class == NULL) ++ options.account_class = "posixAccount"; ++} ++ ++static const char * ++lookup_opcode_name(OpCodes code) ++{ ++ u_int i; ++ ++ for (i = 0; keywords[i].name != NULL; i++) ++ if (keywords[i].opcode == code) ++ return(keywords[i].name); ++ return "UNKNOWN"; ++} ++ ++static void ++dump_cfg_string(OpCodes code, const char *val) ++{ ++ if (val == NULL) ++ debug3("%s ", lookup_opcode_name(code)); ++ else ++ debug3("%s %s", lookup_opcode_name(code), val); ++} ++ ++static void ++dump_cfg_int(OpCodes code, int val) ++{ ++ if (val == -1) ++ debug3("%s ", lookup_opcode_name(code)); ++ else ++ debug3("%s %d", lookup_opcode_name(code), val); ++} ++ ++struct names { ++ int value; ++ char *name; ++}; ++ ++static void ++dump_cfg_namedint(OpCodes code, int val, struct names *names) ++{ ++ u_int i; ++ ++ if (val == -1) ++ debug3("%s ", lookup_opcode_name(code)); ++ else { ++ for (i = 0; names[i].value != -1; i++) ++ if (names[i].value == val) { ++ debug3("%s %s", lookup_opcode_name(code), names[i].name); ++ return; ++ } ++ debug3("%s unknown: %d", lookup_opcode_name(code), val); ++ } ++} ++ ++static struct names _yesnotls[] = { ++ { 0, "No" }, ++ { 1, "Yes" }, ++ { 2, "Start_TLS" }, ++ { -1, NULL }}; ++ ++static struct names _scope[] = { ++ { LDAP_SCOPE_BASE, "Base" }, ++ { LDAP_SCOPE_ONELEVEL, "One" }, ++ { LDAP_SCOPE_SUBTREE, "Sub"}, ++ { -1, NULL }}; ++ ++static struct names _deref[] = { ++ { LDAP_DEREF_NEVER, "Never" }, ++ { LDAP_DEREF_SEARCHING, "Searching" }, ++ { LDAP_DEREF_FINDING, "Finding" }, ++ { LDAP_DEREF_ALWAYS, "Always" }, ++ { -1, NULL }}; ++ ++static struct names _yesno[] = { ++ { 0, "No" }, ++ { 1, "Yes" }, ++ { -1, NULL }}; ++ ++static struct names _bindpolicy[] = { ++ { 0, "Soft" }, ++ { 1, "Hard" }, ++ { -1, NULL }}; ++ ++static struct names _checkpeer[] = { ++ { LDAP_OPT_X_TLS_NEVER, "Never" }, ++ { LDAP_OPT_X_TLS_HARD, "Hard" }, ++ { LDAP_OPT_X_TLS_DEMAND, "Demand" }, ++ { LDAP_OPT_X_TLS_ALLOW, "Allow" }, ++ { LDAP_OPT_X_TLS_TRY, "TRY" }, ++ { -1, NULL }}; ++ ++void ++dump_config(void) ++{ ++ dump_cfg_string(lURI, options.uri); ++ dump_cfg_string(lHost, options.host); ++ dump_cfg_int(lPort, options.port); ++ dump_cfg_namedint(lSSL, options.ssl, _yesnotls); ++ dump_cfg_int(lLdap_Version, options.ldap_version); ++ dump_cfg_int(lTimeLimit, options.timelimit); ++ dump_cfg_int(lBind_TimeLimit, options.bind_timelimit); ++ dump_cfg_string(lBase, options.base); ++ dump_cfg_string(lBindDN, options.binddn); ++ dump_cfg_string(lBindPW, options.bindpw); ++ dump_cfg_namedint(lScope, options.scope, _scope); ++ dump_cfg_namedint(lDeref, options.deref, _deref); ++ dump_cfg_namedint(lReferrals, options.referrals, _yesno); ++ dump_cfg_namedint(lRestart, options.restart, _yesno); ++ dump_cfg_namedint(lBind_Policy, options.bind_policy, _bindpolicy); ++ dump_cfg_string(lSSLPath, options.sslpath); ++ dump_cfg_namedint(lTLS_CheckPeer, options.tls_checkpeer, _checkpeer); ++ dump_cfg_string(lTLS_CaCertFile, options.tls_cacertfile); ++ dump_cfg_string(lTLS_CaCertDir, options.tls_cacertdir); ++ dump_cfg_string(lTLS_Ciphers, options.tls_ciphers); ++ dump_cfg_string(lTLS_Cert, options.tls_cert); ++ dump_cfg_string(lTLS_Key, options.tls_key); ++ dump_cfg_string(lTLS_RandFile, options.tls_randfile); ++ dump_cfg_string(lLogDir, options.logdir); ++ dump_cfg_int(lDebug, options.debug); ++ dump_cfg_string(lSSH_Filter, options.ssh_filter); ++ dump_cfg_string(lSearch_Format, options.search_format); ++ dump_cfg_string(lAccountClass, options.account_class); ++} ++ +diff -up openssh-6.8p1/ldapconf.h.ldap openssh-6.8p1/ldapconf.h +--- openssh-6.8p1/ldapconf.h.ldap 2015-03-18 11:11:29.032801460 +0100 ++++ openssh-6.8p1/ldapconf.h 2015-03-18 11:11:29.032801460 +0100 +@@ -0,0 +1,73 @@ ++/* $OpenBSD: ldapconf.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ ++/* ++ * Copyright (c) 2009 Jan F. Chadima. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#ifndef LDAPCONF_H ++#define LDAPCONF_H ++ ++#define SSL_OFF 0 ++#define SSL_LDAPS 1 ++#define SSL_START_TLS 2 ++ ++/* Data structure for representing option data. */ ++ ++typedef struct { ++ char *host; ++ char *uri; ++ char *base; ++ char *binddn; ++ char *bindpw; ++ int scope; ++ int deref; ++ int port; ++ int timelimit; ++ int bind_timelimit; ++ int ldap_version; ++ int bind_policy; ++ char *sslpath; ++ int ssl; ++ int referrals; ++ int restart; ++ int tls_checkpeer; ++ char *tls_cacertfile; ++ char *tls_cacertdir; ++ char *tls_ciphers; ++ char *tls_cert; ++ char *tls_key; ++ char *tls_randfile; ++ char *logdir; ++ int debug; ++ char *ssh_filter; ++ char *search_format; ++ char *account_class; ++} Options; ++ ++extern Options options; ++ ++void read_config_file(const char *); ++void initialize_options(void); ++void fill_default_options(void); ++void dump_config(void); ++ ++#endif /* LDAPCONF_H */ +diff -up openssh-6.8p1/ldapincludes.h.ldap openssh-6.8p1/ldapincludes.h +--- openssh-6.8p1/ldapincludes.h.ldap 2015-03-18 11:11:29.032801460 +0100 ++++ openssh-6.8p1/ldapincludes.h 2015-03-18 11:11:29.032801460 +0100 +@@ -0,0 +1,41 @@ ++/* $OpenBSD: ldapconf.c,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ ++/* ++ * Copyright (c) 2009 Jan F. Chadima. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#ifndef LDAPINCLUDES_H ++#define LDAPINCLUDES_H ++ ++#include "includes.h" ++ ++#ifdef HAVE_LBER_H ++#include ++#endif ++#ifdef HAVE_LDAP_H ++#include ++#endif ++#ifdef HAVE_LDAP_SSL_H ++#include ++#endif ++ ++#endif /* LDAPINCLUDES_H */ +diff -up openssh-6.8p1/ldapmisc.c.ldap openssh-6.8p1/ldapmisc.c +--- openssh-6.8p1/ldapmisc.c.ldap 2015-03-18 11:11:29.032801460 +0100 ++++ openssh-6.8p1/ldapmisc.c 2015-03-18 11:11:29.032801460 +0100 +@@ -0,0 +1,79 @@ ++ ++#include "ldapincludes.h" ++#include "ldapmisc.h" ++ ++#ifndef HAVE_LDAP_GET_LDERRNO ++int ++ldap_get_lderrno (LDAP * ld, char **m, char **s) ++{ ++#ifdef HAVE_LDAP_GET_OPTION ++ int rc; ++#endif ++ int lderrno; ++ ++#if defined(HAVE_LDAP_GET_OPTION) && defined(LDAP_OPT_ERROR_NUMBER) ++ if ((rc = ldap_get_option (ld, LDAP_OPT_ERROR_NUMBER, &lderrno)) != LDAP_SUCCESS) ++ return rc; ++#else ++ lderrno = ld->ld_errno; ++#endif ++ ++ if (s != NULL) { ++#if defined(HAVE_LDAP_GET_OPTION) && defined(LDAP_OPT_ERROR_STRING) ++ if ((rc = ldap_get_option (ld, LDAP_OPT_ERROR_STRING, s)) != LDAP_SUCCESS) ++ return rc; ++#else ++ *s = ld->ld_error; ++#endif ++ } ++ ++ if (m != NULL) { ++#if defined(HAVE_LDAP_GET_OPTION) && defined(LDAP_OPT_MATCHED_DN) ++ if ((rc = ldap_get_option (ld, LDAP_OPT_MATCHED_DN, m)) != LDAP_SUCCESS) ++ return rc; ++#else ++ *m = ld->ld_matched; ++#endif ++ } ++ ++ return lderrno; ++} ++#endif ++ ++#ifndef HAVE_LDAP_SET_LDERRNO ++int ++ldap_set_lderrno (LDAP * ld, int lderrno, const char *m, const char *s) ++{ ++#ifdef HAVE_LDAP_SET_OPTION ++ int rc; ++#endif ++ ++#if defined(HAVE_LDAP_SET_OPTION) && defined(LDAP_OPT_ERROR_NUMBER) ++ if ((rc = ldap_set_option (ld, LDAP_OPT_ERROR_NUMBER, &lderrno)) != LDAP_SUCCESS) ++ return rc; ++#else ++ ld->ld_errno = lderrno; ++#endif ++ ++ if (s != NULL) { ++#if defined(HAVE_LDAP_SET_OPTION) && defined(LDAP_OPT_ERROR_STRING) ++ if ((rc = ldap_set_option (ld, LDAP_OPT_ERROR_STRING, s)) != LDAP_SUCCESS) ++ return rc; ++#else ++ ld->ld_error = s; ++#endif ++ } ++ ++ if (m != NULL) { ++#if defined(HAVE_LDAP_SET_OPTION) && defined(LDAP_OPT_MATCHED_DN) ++ if ((rc = ldap_set_option (ld, LDAP_OPT_MATCHED_DN, m)) != LDAP_SUCCESS) ++ return rc; ++#else ++ ld->ld_matched = m; ++#endif ++ } ++ ++ return LDAP_SUCCESS; ++} ++#endif ++ +diff -up openssh-6.8p1/ldapmisc.h.ldap openssh-6.8p1/ldapmisc.h +--- openssh-6.8p1/ldapmisc.h.ldap 2015-03-18 11:11:29.032801460 +0100 ++++ openssh-6.8p1/ldapmisc.h 2015-03-18 11:11:29.032801460 +0100 +@@ -0,0 +1,35 @@ ++/* $OpenBSD: ldapbody.h,v 1.1 2009/12/03 03:34:42 jfch Exp $ */ ++/* ++ * Copyright (c) 2009 Jan F. Chadima. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#ifndef LDAPMISC_H ++#define LDAPMISC_H ++ ++#include "ldapincludes.h" ++ ++int ldap_get_lderrno (LDAP *, char **, char **); ++int ldap_set_lderrno (LDAP *, int, const char *, const char *); ++ ++#endif /* LDAPMISC_H */ ++ +diff -up openssh-6.8p1/openssh-lpk-openldap.schema.ldap openssh-6.8p1/openssh-lpk-openldap.schema +--- openssh-6.8p1/openssh-lpk-openldap.schema.ldap 2015-03-18 11:11:29.033801457 +0100 ++++ openssh-6.8p1/openssh-lpk-openldap.schema 2015-03-18 11:11:29.033801457 +0100 +@@ -0,0 +1,21 @@ ++# ++# LDAP Public Key Patch schema for use with openssh-ldappubkey ++# useful with PKA-LDAP also ++# ++# Author: Eric AUGE ++# ++# Based on the proposal of : Mark Ruijter ++# ++ ++ ++# octetString SYNTAX ++attributetype ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey' ++ DESC 'MANDATORY: OpenSSH Public key' ++ EQUALITY octetStringMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) ++ ++# printableString SYNTAX yes|no ++objectclass ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY ++ DESC 'MANDATORY: OpenSSH LPK objectclass' ++ MUST ( sshPublicKey $ uid ) ++ ) +diff -up openssh-6.8p1/openssh-lpk-sun.schema.ldap openssh-6.8p1/openssh-lpk-sun.schema +--- openssh-6.8p1/openssh-lpk-sun.schema.ldap 2015-03-18 11:11:29.033801457 +0100 ++++ openssh-6.8p1/openssh-lpk-sun.schema 2015-03-18 11:11:29.033801457 +0100 +@@ -0,0 +1,23 @@ ++# ++# LDAP Public Key Patch schema for use with openssh-ldappubkey ++# useful with PKA-LDAP also ++# ++# Author: Eric AUGE ++# ++# Schema for Sun Directory Server. ++# Based on the original schema, modified by Stefan Fischer. ++# ++ ++dn: cn=schema ++ ++# octetString SYNTAX ++attributeTypes: ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey' ++ DESC 'MANDATORY: OpenSSH Public key' ++ EQUALITY octetStringMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) ++ ++# printableString SYNTAX yes|no ++objectClasses: ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY ++ DESC 'MANDATORY: OpenSSH LPK objectclass' ++ MUST ( sshPublicKey $ uid ) ++ ) +diff -up openssh-6.8p1/ssh-ldap-helper.8.ldap openssh-6.8p1/ssh-ldap-helper.8 +--- openssh-6.8p1/ssh-ldap-helper.8.ldap 2015-03-18 11:11:29.033801457 +0100 ++++ openssh-6.8p1/ssh-ldap-helper.8 2015-03-18 11:11:29.033801457 +0100 +@@ -0,0 +1,79 @@ ++.\" $OpenBSD: ssh-ldap-helper.8,v 1.1 2010/02/10 23:20:38 markus Exp $ ++.\" ++.\" Copyright (c) 2010 Jan F. Chadima. All rights reserved. ++.\" ++.\" Permission to use, copy, modify, and distribute this software for any ++.\" purpose with or without fee is hereby granted, provided that the above ++.\" copyright notice and this permission notice appear in all copies. ++.\" ++.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ++.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++.\" ++.Dd $Mdocdate: April 29 2010 $ ++.Dt SSH-LDAP-HELPER 8 ++.Os ++.Sh NAME ++.Nm ssh-ldap-helper ++.Nd sshd helper program for ldap support ++.Sh SYNOPSIS ++.Nm ssh-ldap-helper ++.Op Fl devw ++.Op Fl f Ar file ++.Op Fl s Ar user ++.Sh DESCRIPTION ++.Nm ++is used by ++.Xr sshd 1 ++to access keys provided by an LDAP. ++.Nm ++is disabled by default and can only be enabled in the ++sshd configuration file ++.Pa /etc/ssh/sshd_config ++by setting ++.Cm AuthorizedKeysCommand ++to ++.Dq /usr/libexec/ssh-ldap-wrapper . ++.Pp ++.Nm ++is not intended to be invoked by the user, but from ++.Xr sshd 8 via ++.Xr ssh-ldap-wrapper . ++.Pp ++The options are as follows: ++.Bl -tag -width Ds ++.It Fl d ++Set the debug mode; ++.Nm ++prints all logs to stderr instead of syslog. ++.It Fl e ++Implies \-w; ++.Nm ++halts if it encounters an unknown item in the ldap.conf file. ++.It Fl f ++.Nm ++uses this file as the ldap configuration file instead of /etc/ssh/ldap.conf (default). ++.It Fl s ++.Nm ++prints out the user's keys to stdout and exits. ++.It Fl v ++Implies \-d; ++increases verbosity. ++.It Fl w ++.Nm ++writes warnings about unknown items in the ldap.conf configuration file. ++.El ++.Sh SEE ALSO ++.Xr sshd 8 , ++.Xr sshd_config 5 , ++.Xr ssh-ldap.conf 5 , ++.Sh HISTORY ++.Nm ++first appeared in ++OpenSSH 5.5 + PKA-LDAP . ++.Sh AUTHORS ++.An Jan F. Chadima Aq jchadima@redhat.com +diff -up openssh-6.8p1/ssh-ldap-wrapper.ldap openssh-6.8p1/ssh-ldap-wrapper +--- openssh-6.8p1/ssh-ldap-wrapper.ldap 2015-03-18 11:11:29.033801457 +0100 ++++ openssh-6.8p1/ssh-ldap-wrapper 2015-03-18 11:11:29.033801457 +0100 +@@ -0,0 +1,4 @@ ++#!/bin/sh ++ ++exec /usr/libexec/openssh/ssh-ldap-helper -s "$1" ++ +diff -up openssh-6.8p1/ssh-ldap.conf.5.ldap openssh-6.8p1/ssh-ldap.conf.5 +--- openssh-6.8p1/ssh-ldap.conf.5.ldap 2015-03-18 11:11:29.033801457 +0100 ++++ openssh-6.8p1/ssh-ldap.conf.5 2015-03-18 11:11:29.033801457 +0100 +@@ -0,0 +1,385 @@ ++.\" $OpenBSD: ssh-ldap.conf.5,v 1.1 2010/02/10 23:20:38 markus Exp $ ++.\" ++.\" Copyright (c) 2010 Jan F. Chadima. All rights reserved. ++.\" ++.\" Permission to use, copy, modify, and distribute this software for any ++.\" purpose with or without fee is hereby granted, provided that the above ++.\" copyright notice and this permission notice appear in all copies. ++.\" ++.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ++.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++.\" ++.Dd $Mdocdate: may 12 2010 $ ++.Dt SSH-LDAP.CONF 5 ++.Os ++.Sh NAME ++.Nm ssh-ldap.conf ++.Nd configuration file for ssh-ldap-helper ++.Sh SYNOPSIS ++.Nm /etc/ssh/ldap.conf ++.Sh DESCRIPTION ++.Xr ssh-ldap-helper 8 ++reads configuration data from ++.Pa /etc/ssh/ldap.conf ++(or the file specified with ++.Fl f ++on the command line). ++The file contains keyword-argument pairs, one per line. ++Lines starting with ++.Ql # ++and empty lines are interpreted as comments. ++.Pp ++The value starts with the first non-blank character after ++the keyword's name, and terminates at the end of the line, ++or at the last sequence of blanks before the end of the line. ++Quoting values that contain blanks ++may be incorrect, as the quotes would become part of the value. ++The possible keywords and their meanings are as follows (note that ++keywords are case-insensitive, and arguments, on a case by case basis, may be case-sensitive). ++.Bl -tag -width Ds ++.It Cm URI ++The argument(s) are in the form ++.Pa ldap[si]://[name[:port]] ++and specify the URI(s) of an LDAP server(s) to which the ++.Xr ssh-ldap-helper 8 ++should connect. The URI scheme may be any of ++.Dq ldap , ++.Dq ldaps ++or ++.Dq ldapi , ++which refer to LDAP over TCP, LDAP over SSL (TLS) and LDAP ++over IPC (UNIX domain sockets), respectively. ++Each server's name can be specified as a ++domain-style name or an IP address literal. Optionally, the ++server's name can followed by a ':' and the port number the LDAP ++server is listening on. If no port number is provided, the default ++port for the scheme is used (389 for ldap://, 636 for ldaps://). ++For LDAP over IPC, name is the name of the socket, and no port ++is required, nor allowed; note that directory separators must be ++URL-encoded, like any other characters that are special to URLs; ++A space separated list of URIs may be provided. ++There is no default. ++.It Cm Base ++Specifies the default base Distinguished Name (DN) to use when performing ldap operations. ++The base must be specified as a DN in LDAP format. ++There is no default. ++.It Cm BindDN ++Specifies the default BIND DN to use when connecting to the ldap server. ++The bind DN must be specified as a Distinguished Name in LDAP format. ++There is no default. ++.It Cm BindPW ++Specifies the default password to use when connecting to the ldap server via ++.Cm BindDN . ++There is no default. ++.It Cm RootBindDN ++Intentionaly does nothing. Recognized for compatibility reasons. ++.It Cm Host ++The argument(s) specifies the name(s) of an LDAP server(s) to which the ++.Xr ssh-ldap-helper 8 ++should connect. Each server's name can be specified as a ++domain-style name or an IP address and optionally followed by a ':' and ++the port number the ldap server is listening on. A space-separated ++list of hosts may be provided. ++There is no default. ++.Cm Host ++is deprecated in favor of ++.Cm URI . ++.It Cm Port ++Specifies the default port used when connecting to LDAP servers(s). ++The port may be specified as a number. ++The default port is 389 for ldap:// or 636 for ldaps:// respectively. ++.Cm Port ++is deprecated in favor of ++.Cm URI . ++.It Cm Scope ++Specifies the starting point of an LDAP search and the depth from the base DN to which the search should descend. ++There are three options (values) that can be assigned to the ++.Cm Scope parameter: ++.Dq base , ++.Dq one ++and ++.Dq subtree . ++Alias for the subtree is ++.Dq sub . ++The value ++.Dq base ++is used to indicate searching only the entry at the base DN, resulting in only that entry being returned (keeping in mind that it also has to meet the search filter criteria!). ++The value ++.Dq one ++is used to indicate searching all entries one level under the base DN, but not including the base DN and not including any entries under that one level under the base DN. ++The value ++.Dq subtree ++is used to indicate searching of all entries at all levels under and including the specified base DN. ++The default is ++.Dq subtree . ++.It Cm Deref ++Specifies how alias dereferencing is done when performing a search. There are four ++possible values that can be assigned to the ++.Cm Deref ++parameter: ++.Dq never , ++.Dq searching , ++.Dq finding , ++and ++.Dq always . ++The value ++.Dq never ++means that the aliases are never dereferenced. ++The value ++.Dq searching ++means that the aliases are dereferenced in subordinates of the base object, but ++not in locating the base object of the search. ++The value ++.Dq finding ++means that the aliases are only dereferenced when locating the base object of the search. ++The value ++.Dq always ++means that the aliases are dereferenced both in searching and in locating the base object ++of the search. ++The default is ++.Dq never . ++.It Cm TimeLimit ++Specifies a time limit (in seconds) to use when performing searches. ++The number should be a non-negative integer. A ++.Cm TimeLimit ++of zero (0) specifies that the search time is unlimited. Please note that the server ++may still apply any server-side limit on the duration of a search operation. ++The default value is 10. ++.It Cm TimeOut ++Is an aliast to ++.Cm TimeLimit . ++.It Cm Bind_TimeLimit ++Specifies the timeout (in seconds) after which the poll(2)/select(2) ++following a connect(2) returns in case of no activity. ++The default value is 10. ++.It Cm Network_TimeOut ++Is an alias to ++.Cm Bind_TimeLimit . ++.It Cm Ldap_Version ++Specifies what version of the LDAP protocol should be used. ++The allowed values are 2 or 3. The default is 3. ++.It Cm Version ++Is an alias to ++.Cm Ldap_Version . ++.It Cm Bind_Policy ++Specifies the policy to use for reconnecting to an unavailable LDAP server. There are 2 available values: ++.Dq hard ++and ++.Dq soft. ++.Dq hard has 2 aliases ++.Dq hard_open ++and ++.Dq hard_init . ++The value ++.Dq hard ++means that reconects that the ++.Xr ssh-ldap-helper 8 ++tries to reconnect to the LDAP server 5 times before failure. There is exponential backoff before retrying. ++The value ++.Dq soft ++means that ++.Xr ssh-ldap-helper 8 ++fails immediately when it cannot connect to the LDAP seerver. ++The deault is ++.Dq hard . ++.It Cm SSLPath ++Specifies the path to the X.509 certificate database. ++There is no default. ++.It Cm SSL ++Specifies whether to use SSL/TLS or not. ++There are three allowed values: ++.Dq yes , ++.Dq no ++and ++.Dq start_tls ++Both ++.Dq true ++and ++.Dq on ++are the aliases for ++.Dq yes . ++.Dq false ++and ++.Dq off ++are the aliases for ++.Dq no . ++If ++.Dq start_tls ++is specified then StartTLS is used rather than raw LDAP over SSL. ++The default for ldap:// is ++.Dq start_tls , ++for ldaps:// ++.Dq yes ++and ++.Dq no ++for the ldapi:// . ++In case of host based configuration the default is ++.Dq start_tls . ++.It Cm Referrals ++Specifies if the client should automatically follow referrals returned ++by LDAP servers. ++The value can be or ++.Dq yes ++or ++.Dq no . ++.Dq true ++and ++.Dq on ++are the aliases for ++.Dq yes . ++.Dq false ++and ++.Dq off ++are the aliases for ++.Dq no . ++The default is yes. ++.It Cm Restart ++Specifies whether the LDAP client library should restart the select(2) system call when interrupted. ++The value can be or ++.Dq yes ++or ++.Dq no . ++.Dq true ++and ++.Dq on ++are the aliases for ++.Dq yes . ++.Dq false ++and ++.Dq off ++are the aliases for ++.Dq no . ++The default is yes. ++.It Cm TLS_CheckPeer ++Specifies what checks to perform on server certificates in a TLS session, ++if any. The value ++can be specified as one of the following keywords: ++.Dq never , ++.Dq hard , ++.Dq demand , ++.Dq allow ++and ++.Dq try . ++.Dq true , ++.Dq on ++and ++.Dq yes ++are aliases for ++.Dq hard . ++.Dq false , ++.Dq off ++and ++.Dq no ++are the aliases for ++.Dq never . ++The value ++.Dq never ++means that the client will not request or check any server certificate. ++The value ++.Dq allow ++means that the server certificate is requested. If no certificate is provided, ++the session proceeds normally. If a bad certificate is provided, it will ++be ignored and the session proceeds normally. ++The value ++.Dq try ++means that the server certificate is requested. If no certificate is provided, ++the session proceeds normally. If a bad certificate is provided, ++the session is immediately terminated. ++The value ++.Dq demand ++means that the server certificate is requested. If no ++certificate is provided, or a bad certificate is provided, the session ++is immediately terminated. ++The value ++.Dq hard ++is the same as ++.Dq demand . ++It requires an SSL connection. In the case of the plain conection the ++session is immediately terminated. ++The default is ++.Dq hard . ++.It Cm TLS_ReqCert ++Is an alias for ++.Cm TLS_CheckPeer . ++.It Cm TLS_CACertFile ++Specifies the file that contains certificates for all of the Certificate ++Authorities the client will recognize. ++There is no default. ++.It Cm TLS_CACert ++Is an alias for ++.Cm TLS_CACertFile . ++.It Cm TLS_CACertDIR ++Specifies the path of a directory that contains Certificate Authority ++certificates in separate individual files. The ++.Cm TLS_CACert ++is always used before ++.Cm TLS_CACertDir . ++The specified directory must be managed with the OpenSSL c_rehash utility. ++There is no default. ++.It Cm TLS_Ciphers ++Specifies acceptable cipher suite and preference order. ++The value should be a cipher specification for OpenSSL, ++e.g., ++.Dq HIGH:MEDIUM:+SSLv2 . ++The default is ++.Dq ALL . ++.It Cm TLS_Cipher_Suite ++Is an alias for ++.Cm TLS_Ciphers . ++.It Cm TLS_Cert ++Specifies the file that contains the client certificate. ++There is no default. ++.It Cm TLS_Certificate ++Is an alias for ++.Cm TLS_Cert . ++.It Cm TLS_Key ++Specifies the file that contains the private key that matches the certificate ++stored in the ++.Cm TLS_Cert ++file. Currently, the private key must not be protected with a password, so ++it is of critical importance that the key file is protected carefully. ++There is no default. ++.It Cm TLS_RandFile ++Specifies the file to obtain random bits from when /dev/[u]random is ++not available. Generally set to the name of the EGD/PRNGD socket. ++The environment variable RANDFILE can also be used to specify the filename. ++There is no default. ++.It Cm LogDir ++Specifies the directory used for logging by the LDAP client library. ++There is no default. ++.It Cm Debug ++Specifies the debug level used for logging by the LDAP client library. ++There is no default. ++.It Cm SSH_Filter ++Specifies the user filter applied on the LDAP search. ++The default is no filter. ++.It Cm AccountClass ++Specifies the LDAP class used to find user accounts. ++The default is posixAccount. ++.It Cm search_format ++Specifies the user format of search string in LDAP substituting %u for user name ++and %f for additional ssh filter ++.Cm SSH_Filter ++(optional). ++The default value is (&(objectclass=%c)(objectclass=ldapPublicKey)(uid=%u)%f) ++.El ++.Sh FILES ++.Bl -tag -width Ds ++.It Pa /etc/ssh/ldap.conf ++Ldap configuration file for ++.Xr ssh-ldap-helper 8 . ++.El ++.Sh "SEE ALSO" ++.Xr ldap.conf 5 , ++.Xr ssh-ldap-helper 8 ++.Sh HISTORY ++.Nm ++first appeared in ++OpenSSH 5.5 + PKA-LDAP . ++.Sh AUTHORS ++.An Jan F. Chadima Aq jchadima@redhat.com +diff --git a/openssh-lpk-openldap.ldif b/openssh-lpk-openldap.ldif +new file mode 100644 +index 0000000..9adf4b8 +--- /dev/null ++++ b/openssh-lpk-openldap.ldif +@@ -0,0 +1,19 @@ ++# ++# LDAP Public Key Patch schema for use with openssh-ldappubkey ++# useful with PKA-LDAP also ++# ++# Author: Eric AUGE ++# ++# LDIF for openLDAP Directory Server. ++# Based on the original schema, modified by Jakub Jelen. ++# ++ ++dn: cn=openssh-lpk,cn=schema,cn=config ++objectClass: olcSchemaConfig ++cn: openssh-lpk ++olcAttributeTypes: {0}( 1.3.6.1.4.1.24552.500.1.1.1.13 ++ NAME 'sshPublicKey' DESC 'MANDATORY: OpenSSH Public key' ++ EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) ++olcObjectClasses: {0}( 1.3.6.1.4.1.24552.500.1.1.2.0 ++ NAME 'ldapPublicKey' DESC 'MANDATORY: OpenSSH LPK objectclass' ++ SUP top AUXILIARY MUST ( sshPublicKey $ uid ) ) +diff --git a/openssh-lpk-sun.ldif b/openssh-lpk-sun.ldif +new file mode 100644 +index 0000000..9adf4b8 +--- /dev/null ++++ b/openssh-lpk-sun.ldif +@@ -0,0 +1,17 @@ ++# ++# LDAP Public Key Patch schema for use with openssh-ldappubkey ++# useful with PKA-LDAP also ++# ++# Author: Eric AUGE ++# ++# LDIF for Sun Directory Server. ++# Based on the original schema, modified by Jakub Jelen. ++# ++ ++dn: cn=schema ++attributeTypes: ( 1.3.6.1.4.1.24552.500.1.1.1.13 ++ NAME 'sshPublicKey' DESC 'MANDATORY: OpenSSH Public key' ++ EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) ++objectClasses: ( 1.3.6.1.4.1.24552.500.1.1.2.0 ++ NAME 'ldapPublicKey' DESC 'MANDATORY: OpenSSH LPK objectclass' ++ SUP top AUXILIARY MUST ( sshPublicKey $ uid ) ) diff --git a/openssh-6.7p1-sftp-force-permission.patch b/openssh-6.7p1-sftp-force-permission.patch new file mode 100644 index 0000000..2d6e730 --- /dev/null +++ b/openssh-6.7p1-sftp-force-permission.patch @@ -0,0 +1,98 @@ +diff -up openssh-7.2p2/sftp-server.8.sftp-force-mode openssh-7.2p2/sftp-server.8 +--- openssh-7.2p2/sftp-server.8.sftp-force-mode 2016-03-09 19:04:48.000000000 +0100 ++++ openssh-7.2p2/sftp-server.8 2016-06-23 16:18:20.463854117 +0200 +@@ -38,6 +38,7 @@ + .Op Fl P Ar blacklisted_requests + .Op Fl p Ar whitelisted_requests + .Op Fl u Ar umask ++.Op Fl m Ar force_file_perms + .Ek + .Nm + .Fl Q Ar protocol_feature +@@ -138,6 +139,10 @@ Sets an explicit + .Xr umask 2 + to be applied to newly-created files and directories, instead of the + user's default mask. ++.It Fl m Ar force_file_perms ++Sets explicit file permissions to be applied to newly-created files instead ++of the default or client requested mode. Numeric values include: ++777, 755, 750, 666, 644, 640, etc. Option -u is ineffective if -m is set. + .El + .Pp + On some systems, +diff -up openssh-7.2p2/sftp-server.c.sftp-force-mode openssh-7.2p2/sftp-server.c +--- openssh-7.2p2/sftp-server.c.sftp-force-mode 2016-06-23 16:18:20.446854128 +0200 ++++ openssh-7.2p2/sftp-server.c 2016-06-23 16:20:37.950766082 +0200 +@@ -69,6 +69,10 @@ struct sshbuf *oqueue; + /* Version of client */ + static u_int version; + ++/* Force file permissions */ ++int permforce = 0; ++long permforcemode; ++ + /* SSH2_FXP_INIT received */ + static int init_done; + +@@ -683,6 +687,7 @@ process_open(u_int32_t id) + Attrib a; + char *name; + int r, handle, fd, flags, mode, status = SSH2_FX_FAILURE; ++ mode_t old_umask = 0; + + if ((r = sshbuf_get_cstring(iqueue, &name, NULL)) != 0 || + (r = sshbuf_get_u32(iqueue, &pflags)) != 0 || /* portable flags */ +@@ -692,6 +697,10 @@ process_open(u_int32_t id) + debug3("request %u: open flags %d", id, pflags); + flags = flags_from_portable(pflags); + mode = (a.flags & SSH2_FILEXFER_ATTR_PERMISSIONS) ? a.perm : 0666; ++ if (permforce == 1) { /* Force perm if -m is set */ ++ mode = permforcemode; ++ old_umask = umask(0); /* so umask does not interfere */ ++ } + logit("open \"%s\" flags %s mode 0%o", + name, string_from_portable(pflags), mode); + if (readonly && +@@ -713,6 +722,8 @@ process_open(u_int32_t id) + } + } + } ++ if (permforce == 1) ++ (void) umask(old_umask); /* restore umask to something sane */ + if (status != SSH2_FX_OK) + send_status(id, status); + free(name); +@@ -1494,7 +1505,7 @@ sftp_server_usage(void) + fprintf(stderr, + "usage: %s [-ehR] [-d start_directory] [-f log_facility] " + "[-l log_level]\n\t[-P blacklisted_requests] " +- "[-p whitelisted_requests] [-u umask]\n" ++ "[-p whitelisted_requests] [-u umask] [-m force_file_perms]\n" + " %s -Q protocol_feature\n", + __progname, __progname); + exit(1); +@@ -1520,7 +1531,7 @@ sftp_server_main(int argc, char **argv, + pw = pwcopy(user_pw); + + while (!skipargs && (ch = getopt(argc, argv, +- "d:f:l:P:p:Q:u:cehR")) != -1) { ++ "d:f:l:P:p:Q:u:m:cehR")) != -1) { + switch (ch) { + case 'Q': + if (strcasecmp(optarg, "requests") != 0) { +@@ -1580,6 +1591,15 @@ sftp_server_main(int argc, char **argv, + fatal("Invalid umask \"%s\"", optarg); + (void)umask((mode_t)mask); + break; ++ case 'm': ++ /* Force permissions on file received via sftp */ ++ permforce = 1; ++ permforcemode = strtol(optarg, &cp, 8); ++ if (permforcemode < 0 || permforcemode > 0777 || ++ *cp != '\0' || (permforcemode == 0 && ++ errno != 0)) ++ fatal("Invalid file mode \"%s\"", optarg); ++ break; + case 'h': + default: + sftp_server_usage(); diff --git a/openssh-6.8p1-sshdT-output.patch b/openssh-6.8p1-sshdT-output.patch new file mode 100644 index 0000000..7a843e7 --- /dev/null +++ b/openssh-6.8p1-sshdT-output.patch @@ -0,0 +1,27 @@ +diff -up openssh/servconf.c.sshdt openssh/servconf.c +--- openssh/servconf.c.sshdt 2015-06-24 11:42:29.041078704 +0200 ++++ openssh/servconf.c 2015-06-24 11:44:39.734745802 +0200 +@@ -2317,7 +2317,7 @@ dump_config(ServerOptions *o) + dump_cfg_string(sXAuthLocation, o->xauth_location); + dump_cfg_string(sCiphers, o->ciphers ? o->ciphers : KEX_SERVER_ENCRYPT); + dump_cfg_string(sMacs, o->macs ? o->macs : KEX_SERVER_MAC); +- dump_cfg_string(sBanner, o->banner); ++ dump_cfg_string(sBanner, o->banner != NULL ? o->banner : "none"); + dump_cfg_string(sForceCommand, o->adm_forced_command); + dump_cfg_string(sChrootDirectory, o->chroot_directory); + dump_cfg_string(sTrustedUserCAKeys, o->trusted_user_ca_keys); +diff -up openssh/ssh.1.sshdt openssh/ssh.1 +--- openssh/ssh.1.sshdt 2015-06-24 11:42:19.565102807 +0200 ++++ openssh/ssh.1 2015-06-24 11:42:29.042078701 +0200 +@@ -441,7 +441,11 @@ For full details of the options listed b + .It GatewayPorts + .It GlobalKnownHostsFile + .It GSSAPIAuthentication ++.It GSSAPIKeyExchange ++.It GSSAPIClientIdentity + .It GSSAPIDelegateCredentials ++.It GSSAPIRenewalForcesRekey ++.It GSSAPITrustDNS + .It HashKnownHosts + .It Host + .It HostbasedAuthentication diff --git a/openssh-6.9p1-permit-root-login.patch b/openssh-6.9p1-permit-root-login.patch new file mode 100644 index 0000000..6b4c4da --- /dev/null +++ b/openssh-6.9p1-permit-root-login.patch @@ -0,0 +1,12 @@ +diff -up openssh-7.0p1/sshd_config.root-login openssh-7.0p1/sshd_config +--- openssh-7.0p1/sshd_config.root-login 2015-08-12 11:29:12.919269245 +0200 ++++ openssh-7.0p1/sshd_config 2015-08-12 11:31:03.653096466 +0200 +@@ -46,7 +46,7 @@ SyslogFacility AUTHPRIV + # Authentication: + + #LoginGraceTime 2m +-#PermitRootLogin prohibit-password ++PermitRootLogin yes + #StrictModes yes + #MaxAuthTries 6 + #MaxSessions 10 diff --git a/openssh-7.0p1-gssKexAlgorithms.patch b/openssh-7.0p1-gssKexAlgorithms.patch new file mode 100644 index 0000000..2ba360e --- /dev/null +++ b/openssh-7.0p1-gssKexAlgorithms.patch @@ -0,0 +1,422 @@ +diff -up openssh-7.0p1/gss-genr.c.gsskexalg openssh-7.0p1/gss-genr.c +--- openssh-7.0p1/gss-genr.c.gsskexalg 2015-08-19 12:28:38.024518959 +0200 ++++ openssh-7.0p1/gss-genr.c 2015-08-19 12:28:38.078518839 +0200 +@@ -78,7 +78,8 @@ ssh_gssapi_oid_table_ok() { + */ + + char * +-ssh_gssapi_client_mechanisms(const char *host, const char *client) { ++ssh_gssapi_client_mechanisms(const char *host, const char *client, ++ const char *kex) { + gss_OID_set gss_supported; + OM_uint32 min_status; + +@@ -86,12 +87,12 @@ ssh_gssapi_client_mechanisms(const char + return NULL; + + return(ssh_gssapi_kex_mechs(gss_supported, ssh_gssapi_check_mechanism, +- host, client)); ++ host, client, kex)); + } + + char * + ssh_gssapi_kex_mechs(gss_OID_set gss_supported, ssh_gssapi_check_fn *check, +- const char *host, const char *client) { ++ const char *host, const char *client, const char *kex) { + struct sshbuf *buf; + size_t i; + int oidpos, enclen, r; +@@ -100,6 +101,7 @@ ssh_gssapi_kex_mechs(gss_OID_set gss_sup + char deroid[2]; + const EVP_MD *evp_md = EVP_md5(); + EVP_MD_CTX md; ++ char *s, *cp, *p; + + if (gss_enc2oid != NULL) { + for (i = 0; gss_enc2oid[i].encoded != NULL; i++) +@@ -113,6 +115,7 @@ ssh_gssapi_kex_mechs(gss_OID_set gss_sup + fatal("%s: sshbuf_new failed", __func__); + + oidpos = 0; ++ s = cp = xstrdup(kex); + for (i = 0; i < gss_supported->count; i++) { + if (gss_supported->elements[i].length < 128 && + (*check)(NULL, &(gss_supported->elements[i]), host, client)) { +@@ -131,28 +134,25 @@ ssh_gssapi_kex_mechs(gss_OID_set gss_sup + enclen = __b64_ntop(digest, EVP_MD_size(evp_md), + encoded, EVP_MD_size(evp_md) * 2); + +- if (oidpos != 0) +- if ((r = sshbuf_put_u8(buf, ',')) != 0) +- fatal("%s: buffer error: %s", __func__, ssh_err(r)); +- +- if ((r = sshbuf_put(buf, KEX_GSS_GEX_SHA1_ID, +- sizeof(KEX_GSS_GEX_SHA1_ID) - 1)) != 0 || +- (r = sshbuf_put(buf, encoded, enclen)) != 0 || +- (r = sshbuf_put_u8(buf, ',')) != 0 || +- (r = sshbuf_put(buf, KEX_GSS_GRP1_SHA1_ID, +- sizeof(KEX_GSS_GRP1_SHA1_ID) - 1)) != 0 || +- (r = sshbuf_put(buf, encoded, enclen)) != 0 || +- (r = sshbuf_put_u8(buf, ',')) != 0 || +- (r = sshbuf_put(buf, KEX_GSS_GRP14_SHA1_ID, +- sizeof(KEX_GSS_GRP14_SHA1_ID) - 1)) != 0 || +- (r = sshbuf_put(buf, encoded, enclen)) != 0) +- fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ cp = strncpy(s, kex, strlen(kex)); ++ for ((p = strsep(&cp, ",")); p && *p != '\0'; ++ (p = strsep(&cp, ","))) { ++ if (sshbuf_len(buf) != 0) ++ if ((r = sshbuf_put_u8(buf, ',')) != 0) ++ fatal("%s: buffer error: %s", ++ __func__, ssh_err(r)); ++ if ((r = sshbuf_put(buf, p, strlen(p))) != 0 || ++ (r = sshbuf_put(buf, encoded, enclen)) != 0) ++ fatal("%s: buffer error: %s", ++ __func__, ssh_err(r)); ++ } + + gss_enc2oid[oidpos].oid = &(gss_supported->elements[i]); + gss_enc2oid[oidpos].encoded = encoded; + oidpos++; + } + } ++ free(s); + gss_enc2oid[oidpos].oid = NULL; + gss_enc2oid[oidpos].encoded = NULL; + +diff -up openssh-7.0p1/gss-serv.c.gsskexalg openssh-7.0p1/gss-serv.c +--- openssh-7.0p1/gss-serv.c.gsskexalg 2015-08-19 12:28:38.024518959 +0200 ++++ openssh-7.0p1/gss-serv.c 2015-08-19 12:28:38.078518839 +0200 +@@ -149,7 +149,8 @@ ssh_gssapi_server_mechanisms() { + if (supported_oids == NULL) + ssh_gssapi_prepare_supported_oids(); + return (ssh_gssapi_kex_mechs(supported_oids, +- &ssh_gssapi_server_check_mech, NULL, NULL)); ++ &ssh_gssapi_server_check_mech, NULL, NULL, ++ options.gss_kex_algorithms)); + } + + /* Unprivileged */ +diff -up openssh-7.0p1/kex.c.gsskexalg openssh-7.0p1/kex.c +--- openssh-7.0p1/kex.c.gsskexalg 2015-08-19 12:28:38.078518839 +0200 ++++ openssh-7.0p1/kex.c 2015-08-19 12:30:13.249306371 +0200 +@@ -50,6 +50,7 @@ + #include "misc.h" + #include "dispatch.h" + #include "monitor.h" ++#include "xmalloc.h" + + #include "ssherr.h" + #include "sshbuf.h" +@@ -232,6 +232,29 @@ kex_assemble_names(const char *def, char + return r; + } + ++/* Validate GSS KEX method name list */ ++int ++gss_kex_names_valid(const char *names) ++{ ++ char *s, *cp, *p; ++ ++ if (names == NULL || *names == '\0') ++ return 0; ++ s = cp = xstrdup(names); ++ for ((p = strsep(&cp, ",")); p && *p != '\0'; ++ (p = strsep(&cp, ","))) { ++ if (strncmp(p, "gss-", 4) != 0 ++ || kex_alg_by_name(p) == NULL) { ++ error("Unsupported KEX algorithm \"%.100s\"", p); ++ free(s); ++ return 0; ++ } ++ } ++ debug3("gss kex names ok: [%s]", names); ++ free(s); ++ return 1; ++} ++ + /* put algorithm proposal into buffer */ + int + kex_prop2buf(struct sshbuf *b, char *proposal[PROPOSAL_MAX]) +diff -up openssh-7.0p1/kex.h.gsskexalg openssh-7.0p1/kex.h +--- openssh-7.0p1/kex.h.gsskexalg 2015-08-19 12:28:38.078518839 +0200 ++++ openssh-7.0p1/kex.h 2015-08-19 12:30:52.404218958 +0200 +@@ -173,6 +173,7 @@ int kex_names_valid(const char *); + char *kex_alg_list(char); + char *kex_names_cat(const char *, const char *); + int kex_assemble_names(char **, const char *, const char *); ++int gss_kex_names_valid(const char *); + + int kex_new(struct ssh *, char *[PROPOSAL_MAX], struct kex **); + int kex_setup(struct ssh *, char *[PROPOSAL_MAX]); +diff -up openssh-7.0p1/readconf.c.gsskexalg openssh-7.0p1/readconf.c +--- openssh-7.0p1/readconf.c.gsskexalg 2015-08-19 12:28:38.026518955 +0200 ++++ openssh-7.0p1/readconf.c 2015-08-19 12:31:28.333138747 +0200 +@@ -61,6 +61,7 @@ + #include "uidswap.h" + #include "myproposal.h" + #include "digest.h" ++#include "ssh-gss.h" + + /* Format of the configuration file: + +@@ -148,7 +149,7 @@ typedef enum { + oEnableSSHKeysign, oRekeyLimit, oVerifyHostKeyDNS, oConnectTimeout, + oAddressFamily, oGssAuthentication, oGssDelegateCreds, + oGssTrustDns, oGssKeyEx, oGssClientIdentity, oGssRenewalRekey, +- oGssServerIdentity, ++ oGssServerIdentity, oGssKexAlgorithms, + oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly, + oSendEnv, oSetEnv, oControlPath, oControlMaster, oControlPersist, + oHashKnownHosts, +@@ -200,6 +201,7 @@ static struct { + { "gssapiclientidentity", oGssClientIdentity }, + { "gssapiserveridentity", oGssServerIdentity }, + { "gssapirenewalforcesrekey", oGssRenewalRekey }, ++ { "gssapikexalgorithms", oGssKexAlgorithms }, + # else + { "gssapiauthentication", oUnsupported }, + { "gssapikeyexchange", oUnsupported }, +@@ -207,6 +209,7 @@ static struct { + { "gssapitrustdns", oUnsupported }, + { "gssapiclientidentity", oUnsupported }, + { "gssapirenewalforcesrekey", oUnsupported }, ++ { "gssapikexalgorithms", oUnsupported }, + #endif + #ifdef ENABLE_PKCS11 + { "smartcarddevice", oPKCS11Provider }, +@@ -929,6 +932,18 @@ parse_time: + intptr = &options->gss_renewal_rekey; + goto parse_flag; + ++ case oGssKexAlgorithms: ++ arg = strdelim(&s); ++ if (!arg || *arg == '\0') ++ fatal("%.200s line %d: Missing argument.", ++ filename, linenum); ++ if (!gss_kex_names_valid(arg)) ++ fatal("%.200s line %d: Bad GSSAPI KexAlgorithms '%s'.", ++ filename, linenum, arg ? arg : ""); ++ if (*activep && options->gss_kex_algorithms == NULL) ++ options->gss_kex_algorithms = xstrdup(arg); ++ break; ++ + case oBatchMode: + intptr = &options->batch_mode; + goto parse_flag; +@@ -1638,6 +1653,7 @@ initialize_options(Options * options) + options->gss_renewal_rekey = -1; + options->gss_client_identity = NULL; + options->gss_server_identity = NULL; ++ options->gss_kex_algorithms = NULL; + options->password_authentication = -1; + options->kbd_interactive_authentication = -1; + options->kbd_interactive_devices = NULL; +@@ -1773,6 +1789,10 @@ fill_default_options(Options * options) + options->gss_trust_dns = 0; + if (options->gss_renewal_rekey == -1) + options->gss_renewal_rekey = 0; ++#ifdef GSSAPI ++ if (options->gss_kex_algorithms == NULL) ++ options->gss_kex_algorithms = strdup(GSS_KEX_DEFAULT_KEX); ++#endif + if (options->password_authentication == -1) + options->password_authentication = 1; + if (options->kbd_interactive_authentication == -1) +diff -up openssh-7.0p1/readconf.h.gsskexalg openssh-7.0p1/readconf.h +--- openssh-7.0p1/readconf.h.gsskexalg 2015-08-19 12:28:38.026518955 +0200 ++++ openssh-7.0p1/readconf.h 2015-08-19 12:28:38.079518836 +0200 +@@ -51,6 +51,7 @@ typedef struct { + int gss_renewal_rekey; /* Credential renewal forces rekey */ + char *gss_client_identity; /* Principal to initiate GSSAPI with */ + char *gss_server_identity; /* GSSAPI target principal */ ++ char *gss_kex_algorithms; /* GSSAPI kex methods to be offered by client. */ + int password_authentication; /* Try password + * authentication. */ + int kbd_interactive_authentication; /* Try keyboard-interactive auth. */ +diff -up openssh-7.0p1/servconf.c.gsskexalg openssh-7.0p1/servconf.c +--- openssh-7.0p1/servconf.c.gsskexalg 2015-08-19 12:28:38.074518847 +0200 ++++ openssh-7.0p1/servconf.c 2015-08-19 12:33:13.599902732 +0200 +@@ -57,6 +57,7 @@ + #include "auth.h" + #include "myproposal.h" + #include "digest.h" ++#include "ssh-gss.h" + + static void add_listen_addr(ServerOptions *, const char *, + const char *, int); +@@ -121,6 +122,7 @@ initialize_server_options(ServerOptions + options->gss_cleanup_creds = -1; + options->gss_strict_acceptor = -1; + options->gss_store_rekey = -1; ++ options->gss_kex_algorithms = NULL; + options->use_kuserok = -1; + options->enable_k5users = -1; + options->password_authentication = -1; +@@ -288,6 +290,10 @@ fill_default_server_options(ServerOption + options->gss_strict_acceptor = 1; + if (options->gss_store_rekey == -1) + options->gss_store_rekey = 0; ++#ifdef GSSAPI ++ if (options->gss_kex_algorithms == NULL) ++ options->gss_kex_algorithms = strdup(GSS_KEX_DEFAULT_KEX); ++#endif + if (options->use_kuserok == -1) + options->use_kuserok = 1; + if (options->enable_k5users == -1) +@@ -427,7 +431,7 @@ typedef enum { + sHostKeyAlgorithms, + sClientAliveInterval, sClientAliveCountMax, sAuthorizedKeysFile, + sGssAuthentication, sGssCleanupCreds, sGssEnablek5users, sGssStrictAcceptor, +- sGssKeyEx, sGssStoreRekey, sAcceptEnv, sSetEnv, sPermitTunnel, ++ sGssKeyEx, sGssStoreRekey, sGssKexAlgorithms, sAcceptEnv, sSetEnv, sPermitTunnel, + sMatch, sPermitOpen, sPermitListen, sForceCommand, sChrootDirectory, + sUsePrivilegeSeparation, sAllowAgentForwarding, + sHostCertificate, +@@ -506,6 +510,7 @@ static struct { + { "gssapikeyexchange", sGssKeyEx, SSHCFG_GLOBAL }, + { "gssapistorecredentialsonrekey", sGssStoreRekey, SSHCFG_GLOBAL }, + { "gssapienablek5users", sGssEnablek5users, SSHCFG_ALL }, ++ { "gssapikexalgorithms", sGssKexAlgorithms, SSHCFG_GLOBAL }, + #else + { "gssapiauthentication", sUnsupported, SSHCFG_ALL }, + { "gssapicleanupcredentials", sUnsupported, SSHCFG_GLOBAL }, +@@ -513,6 +518,7 @@ static struct { + { "gssapikeyexchange", sUnsupported, SSHCFG_GLOBAL }, + { "gssapistorecredentialsonrekey", sUnsupported, SSHCFG_GLOBAL }, + { "gssapienablek5users", sUnsupported, SSHCFG_ALL }, ++ { "gssapikexalgorithms", sUnsupported, SSHCFG_GLOBAL }, + #endif + { "gssusesessionccache", sUnsupported, SSHCFG_GLOBAL }, + { "gssapiusesessioncredcache", sUnsupported, SSHCFG_GLOBAL }, +@@ -1273,6 +1279,18 @@ process_server_config_line(ServerOptions + intptr = &options->gss_store_rekey; + goto parse_flag; + ++ case sGssKexAlgorithms: ++ arg = strdelim(&cp); ++ if (!arg || *arg == '\0') ++ fatal("%.200s line %d: Missing argument.", ++ filename, linenum); ++ if (!gss_kex_names_valid(arg)) ++ fatal("%.200s line %d: Bad GSSAPI KexAlgorithms '%s'.", ++ filename, linenum, arg ? arg : ""); ++ if (*activep && options->gss_kex_algorithms == NULL) ++ options->gss_kex_algorithms = xstrdup(arg); ++ break; ++ + case sPasswordAuthentication: + intptr = &options->password_authentication; + goto parse_flag; +@@ -2304,6 +2322,7 @@ dump_config(ServerOptions *o) + dump_cfg_fmtint(sGssKeyEx, o->gss_keyex); + dump_cfg_fmtint(sGssStrictAcceptor, o->gss_strict_acceptor); + dump_cfg_fmtint(sGssStoreRekey, o->gss_store_rekey); ++ dump_cfg_string(sGssKexAlgorithms, o->gss_kex_algorithms); + #endif + dump_cfg_fmtint(sPasswordAuthentication, o->password_authentication); + dump_cfg_fmtint(sKbdInteractiveAuthentication, +diff -up openssh-7.0p1/servconf.h.gsskexalg openssh-7.0p1/servconf.h +--- openssh-7.0p1/servconf.h.gsskexalg 2015-08-19 12:28:38.080518834 +0200 ++++ openssh-7.0p1/servconf.h 2015-08-19 12:34:46.328693944 +0200 +@@ -122,6 +122,7 @@ typedef struct { + int gss_cleanup_creds; /* If true, destroy cred cache on logout */ + int gss_strict_acceptor; /* If true, restrict the GSSAPI acceptor name */ + int gss_store_rekey; ++ char *gss_kex_algorithms; /* GSSAPI kex methods to be offered by client. */ + int password_authentication; /* If true, permit password + * authentication. */ + int kbd_interactive_authentication; /* If true, permit */ +diff -up openssh-7.0p1/ssh.1.gsskexalg openssh-7.0p1/ssh.1 +--- openssh-7.0p1/ssh.1.gsskexalg 2015-08-19 12:28:38.081518832 +0200 ++++ openssh-7.0p1/ssh.1 2015-08-19 12:35:31.741591692 +0200 +@@ -496,6 +496,7 @@ For full details of the options listed b + .It GSSAPIDelegateCredentials + .It GSSAPIRenewalForcesRekey + .It GSSAPITrustDNS ++.It GSSAPIKexAlgorithms + .It HashKnownHosts + .It Host + .It HostbasedAuthentication +diff -up openssh-7.0p1/ssh_config.5.gsskexalg openssh-7.0p1/ssh_config.5 +--- openssh-7.0p1/ssh_config.5.gsskexalg 2015-08-19 12:28:38.028518950 +0200 ++++ openssh-7.0p1/ssh_config.5 2015-08-19 12:28:38.082518830 +0200 +@@ -786,6 +786,18 @@ command line will be passed untouched to + command line will be passed untouched to the GSSAPI library. + The default is + .Dq no . ++.It Cm GSSAPIKexAlgorithms ++The list of key exchange algorithms that are offered for GSSAPI ++key exchange. Possible values are ++.Bd -literal -offset 3n ++gss-gex-sha1-, ++gss-group1-sha1-, ++gss-group14-sha1- ++.Ed ++.Pp ++The default is ++.Dq gss-gex-sha1-,gss-group14-sha1- . ++This option only applies to protocol version 2 connections using GSSAPI. + .It Cm HashKnownHosts + Indicates that + .Xr ssh 1 +diff -up openssh-7.0p1/sshconnect2.c.gsskexalg openssh-7.0p1/sshconnect2.c +--- openssh-7.0p1/sshconnect2.c.gsskexalg 2015-08-19 12:28:38.045518912 +0200 ++++ openssh-7.0p1/sshconnect2.c 2015-08-19 12:28:38.081518832 +0200 +@@ -179,7 +179,8 @@ ssh_kex2(char *host, struct sockaddr *ho + else + gss_host = host; + +- gss = ssh_gssapi_client_mechanisms(gss_host, options.gss_client_identity); ++ gss = ssh_gssapi_client_mechanisms(gss_host, ++ options.gss_client_identity, options.gss_kex_algorithms); + if (gss) { + debug("Offering GSSAPI proposal: %s", gss); + xasprintf(&options.kex_algorithms, +--- openssh-7.1p1/sshd_config.5.gsskexalg 2015-12-10 15:32:48.105418092 +0100 ++++ openssh-7.1p1/sshd_config.5 2015-12-10 15:33:47.771279548 +0100 +@@ -663,6 +663,18 @@ or updated credentials from a compatible + For this to work + .Cm GSSAPIKeyExchange + needs to be enabled in the server and also used by the client. ++.It Cm GSSAPIKexAlgorithms ++The list of key exchange algorithms that are accepted by GSSAPI ++key exchange. Possible values are ++.Bd -literal -offset 3n ++gss-gex-sha1-, ++gss-group1-sha1-, ++gss-group14-sha1- ++.Ed ++.Pp ++The default is ++.Dq gss-gex-sha1-,gss-group14-sha1- . ++This option only applies to protocol version 2 connections using GSSAPI. + .It Cm HostbasedAcceptedKeyTypes + Specifies the key types that will be accepted for hostbased authentication + as a list of comma-separated patterns. +diff -up openssh-7.0p1/ssh-gss.h.gsskexalg openssh-7.0p1/ssh-gss.h +--- openssh-7.0p1/ssh-gss.h.gsskexalg 2015-08-19 12:28:38.031518944 +0200 ++++ openssh-7.0p1/ssh-gss.h 2015-08-19 12:28:38.081518832 +0200 +@@ -76,6 +76,10 @@ extern char **k5users_allowed_cmds; + #define KEX_GSS_GRP14_SHA1_ID "gss-group14-sha1-" + #define KEX_GSS_GEX_SHA1_ID "gss-gex-sha1-" + ++#define GSS_KEX_DEFAULT_KEX \ ++ KEX_GSS_GEX_SHA1_ID "," \ ++ KEX_GSS_GRP14_SHA1_ID ++ + typedef struct { + char *envvar; + char *envval; +@@ -147,9 +151,9 @@ int ssh_gssapi_credentials_updated(Gssct + /* In the server */ + typedef int ssh_gssapi_check_fn(Gssctxt **, gss_OID, const char *, + const char *); +-char *ssh_gssapi_client_mechanisms(const char *, const char *); ++char *ssh_gssapi_client_mechanisms(const char *, const char *, const char *); + char *ssh_gssapi_kex_mechs(gss_OID_set, ssh_gssapi_check_fn *, const char *, +- const char *); ++ const char *, const char *); + gss_OID ssh_gssapi_id_kex(Gssctxt *, char *, int); + int ssh_gssapi_server_check_mech(Gssctxt **,gss_OID, const char *, + const char *); diff --git a/openssh-7.1p1-gssapi-documentation.patch b/openssh-7.1p1-gssapi-documentation.patch new file mode 100644 index 0000000..db689d4 --- /dev/null +++ b/openssh-7.1p1-gssapi-documentation.patch @@ -0,0 +1,52 @@ +diff -up openssh-7.4p1/ssh_config.5.gss-docs openssh-7.4p1/ssh_config.5 +--- openssh-7.4p1/ssh_config.5.gss-docs 2016-12-23 14:28:34.051714486 +0100 ++++ openssh-7.4p1/ssh_config.5 2016-12-23 14:34:24.568522417 +0100 +@@ -765,10 +765,19 @@ The default is + If set to + .Dq yes + then renewal of the client's GSSAPI credentials will force the rekeying of the +-ssh connection. With a compatible server, this can delegate the renewed ++ssh connection. With a compatible server, this will delegate the renewed + credentials to a session on the server. ++.Pp ++Checks are made to ensure that credentials are only propagated when the new ++credentials match the old ones on the originating client and where the ++receiving server still has the old set in its cache. ++.Pp + The default is + .Dq no . ++.Pp ++For this to work ++.Cm GSSAPIKeyExchange ++needs to be enabled in the server and also used by the client. + .It Cm GSSAPIServerIdentity + If set, specifies the GSSAPI server identity that ssh should expect when + connecting to the server. The default is unset, which means that the +@@ -776,9 +785,11 @@ expected GSSAPI server identity will be + hostname. + .It Cm GSSAPITrustDns + Set to +-.Dq yes to indicate that the DNS is trusted to securely canonicalize ++.Dq yes ++to indicate that the DNS is trusted to securely canonicalize + the name of the host being connected to. If +-.Dq no, the hostname entered on the ++.Dq no , ++the hostname entered on the + command line will be passed untouched to the GSSAPI library. + The default is + .Dq no . +diff -up openssh-7.4p1/sshd_config.5.gss-docs openssh-7.4p1/sshd_config.5 +--- openssh-7.4p1/sshd_config.5.gss-docs 2016-12-23 14:28:34.043714490 +0100 ++++ openssh-7.4p1/sshd_config.5 2016-12-23 14:28:34.051714486 +0100 +@@ -652,6 +652,10 @@ Controls whether the user's GSSAPI crede + successful connection rekeying. This option can be used to accepted renewed + or updated credentials from a compatible client. The default is + .Dq no . ++.Pp ++For this to work ++.Cm GSSAPIKeyExchange ++needs to be enabled in the server and also used by the client. + .It Cm HostbasedAcceptedKeyTypes + Specifies the key types that will be accepted for hostbased authentication + as a list of comma-separated patterns. diff --git a/openssh-7.1p2-audit-race-condition.patch b/openssh-7.1p2-audit-race-condition.patch new file mode 100644 index 0000000..9a0d917 --- /dev/null +++ b/openssh-7.1p2-audit-race-condition.patch @@ -0,0 +1,187 @@ +diff -up openssh-7.4p1/monitor_wrap.c.audit-race openssh-7.4p1/monitor_wrap.c +--- openssh-7.4p1/monitor_wrap.c.audit-race 2016-12-23 16:35:52.694685771 +0100 ++++ openssh-7.4p1/monitor_wrap.c 2016-12-23 16:35:52.697685772 +0100 +@@ -1107,4 +1107,50 @@ mm_audit_destroy_sensitive_data(const ch + mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUDIT_SERVER_KEY_FREE, m); + sshbuf_free(m); + } ++ ++int mm_forward_audit_messages(int fdin) ++{ ++ u_char buf[4]; ++ u_int blen, msg_len; ++ struct sshbuf *m; ++ int r, ret = 0; ++ ++ debug3("%s: entering", __func__); ++ if ((m = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ do { ++ blen = atomicio(read, fdin, buf, sizeof(buf)); ++ if (blen == 0) /* closed pipe */ ++ break; ++ if (blen != sizeof(buf)) { ++ error("%s: Failed to read the buffer from child", __func__); ++ ret = -1; ++ break; ++ } ++ ++ msg_len = get_u32(buf); ++ if (msg_len > 256 * 1024) ++ fatal("%s: read: bad msg_len %d", __func__, msg_len); ++ sshbuf_reset(m); ++ if ((r = sshbuf_reserve(m, msg_len, NULL)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ if (atomicio(read, fdin, sshbuf_mutable_ptr(m), msg_len) != msg_len) { ++ error("%s: Failed to read the the buffer content from the child", __func__); ++ ret = -1; ++ break; ++ } ++ if (atomicio(vwrite, pmonitor->m_recvfd, buf, blen) != blen || ++ atomicio(vwrite, pmonitor->m_recvfd, sshbuf_mutable_ptr(m), msg_len) != msg_len) { ++ error("%s: Failed to write the message to the monitor", __func__); ++ ret = -1; ++ break; ++ } ++ } while (1); ++ sshbuf_free(m); ++ return ret; ++} ++void mm_set_monitor_pipe(int fd) ++{ ++ pmonitor->m_recvfd = fd; ++} + #endif /* SSH_AUDIT_EVENTS */ +diff -up openssh-7.4p1/monitor_wrap.h.audit-race openssh-7.4p1/monitor_wrap.h +--- openssh-7.4p1/monitor_wrap.h.audit-race 2016-12-23 16:35:52.694685771 +0100 ++++ openssh-7.4p1/monitor_wrap.h 2016-12-23 16:35:52.698685772 +0100 +@@ -83,6 +83,8 @@ void mm_audit_unsupported_body(int); + void mm_audit_kex_body(int, char *, char *, char *, char *, pid_t, uid_t); + void mm_audit_session_key_free_body(int, pid_t, uid_t); + void mm_audit_destroy_sensitive_data(const char *, pid_t, uid_t); ++int mm_forward_audit_messages(int); ++void mm_set_monitor_pipe(int); + #endif + + struct Session; +diff -up openssh-7.4p1/session.c.audit-race openssh-7.4p1/session.c +--- openssh-7.4p1/session.c.audit-race 2016-12-23 16:35:52.695685771 +0100 ++++ openssh-7.4p1/session.c 2016-12-23 16:37:26.339730596 +0100 +@@ -162,6 +162,10 @@ static Session *sessions = NULL; + login_cap_t *lc; + #endif + ++#ifdef SSH_AUDIT_EVENTS ++int paudit[2]; ++#endif ++ + static int is_child = 0; + static int in_chroot = 0; + static int have_dev_log = 1; +@@ -289,6 +293,8 @@ xauth_valid_string(const char *s) + return 1; + } + ++void child_destory_sensitive_data(); ++ + #define USE_PIPES 1 + /* + * This is called to fork and execute a command when we have no tty. This +@@ -424,6 +430,8 @@ do_exec_no_pty(Session *s, const char *c + close(err[0]); + #endif + ++ child_destory_sensitive_data(); ++ + /* Do processing for the child (exec command etc). */ + do_child(ssh, s, command); + /* NOTREACHED */ +@@ -547,6 +555,9 @@ do_exec_pty(Session *s, const char *comm + /* Close the extra descriptor for the pseudo tty. */ + close(ttyfd); + ++ /* Do this early, so we will not block large MOTDs */ ++ child_destory_sensitive_data(); ++ + /* record login, etc. similar to login(1) */ + #ifndef HAVE_OSF_SIA + do_login(ssh, s, command); +@@ -717,6 +728,8 @@ do_exec(Session *s, const char *command) + } + if (s->command != NULL && s->ptyfd == -1) + s->command_handle = PRIVSEP(audit_run_command(s->command)); ++ if (pipe(paudit) < 0) ++ fatal("pipe: %s", strerror(errno)); + #endif + if (s->ttyfd != -1) + ret = do_exec_pty(ssh, s, command); +@@ -732,6 +745,20 @@ do_exec(Session *s, const char *command) + */ + sshbuf_reset(loginmsg); + ++#ifdef SSH_AUDIT_EVENTS ++ close(paudit[1]); ++ if (use_privsep && ret == 0) { ++ /* ++ * Read the audit messages from forked child and send them ++ * back to monitor. We don't want to communicate directly, ++ * because the messages might get mixed up. ++ * Continue after the pipe gets closed (all messages sent). ++ */ ++ ret = mm_forward_audit_messages(paudit[0]); ++ } ++ close(paudit[0]); ++#endif /* SSH_AUDIT_EVENTS */ ++ + return ret; + } + +@@ -1538,6 +1565,34 @@ child_close_fds(void) + endpwent(); + } + ++void ++child_destory_sensitive_data() ++{ ++#ifdef SSH_AUDIT_EVENTS ++ int pparent = paudit[1]; ++ close(paudit[0]); ++ /* Hack the monitor pipe to avoid race condition with parent */ ++ if (use_privsep) ++ mm_set_monitor_pipe(pparent); ++#endif ++ ++ /* remove hostkey from the child's memory */ ++ destroy_sensitive_data(use_privsep); ++ /* ++ * We can audit this, because we hacked the pipe to direct the ++ * messages over postauth child. But this message requires answer ++ * which we can't do using one-way pipe. ++ */ ++ packet_destroy_all(0, 1); ++ /* XXX this will clean the rest but should not audit anymore */ ++ /* packet_clear_keys(); */ ++ ++#ifdef SSH_AUDIT_EVENTS ++ /* Notify parent that we are done */ ++ close(pparent); ++#endif ++} ++ + /* + * Performs common processing for the child, such as setting up the + * environment, closing extra file descriptors, setting the user and group +@@ -1554,13 +1608,6 @@ do_child(Session *s, const char *command + struct passwd *pw = s->pw; + int r = 0; + +- /* remove hostkey from the child's memory */ +- destroy_sensitive_data(1); +- packet_clear_keys(); +- /* Don't audit this - both us and the parent would be talking to the +- monitor over a single socket, with no synchronization. */ +- packet_destroy_all(0, 1); +- + /* Force a password change */ + if (s->authctxt->force_pwchange) { + do_setusercontext(pw); diff --git a/openssh-7.2p2-k5login_directory.patch b/openssh-7.2p2-k5login_directory.patch new file mode 100644 index 0000000..09369aa --- /dev/null +++ b/openssh-7.2p2-k5login_directory.patch @@ -0,0 +1,87 @@ +diff --git a/auth-krb5.c b/auth-krb5.c +index 2b02a04..19b9364 100644 +--- a/auth-krb5.c ++++ b/auth-krb5.c +@@ -375,6 +375,22 @@ cleanup: + return -1; + } + ++/* ++ * Reads k5login_directory option from the krb5.conf ++ */ ++krb5_error_code ++ssh_krb5_get_k5login_directory(krb5_context ctx, char **k5login_directory) { ++ profile_t p; ++ int ret = 0; ++ ++ ret = krb5_get_profile(ctx, &p); ++ if (ret) ++ return ret; ++ ++ return profile_get_string(p, "libdefaults", "k5login_directory", NULL, NULL, ++ k5login_directory); ++} ++ + krb5_error_code + ssh_krb5_get_cctemplate(krb5_context ctx, char **ccname) { + profile_t p; +diff --git a/auth.h b/auth.h +index f9d191c..c432d2f 100644 +--- a/auth.h ++++ b/auth.h +@@ -222,5 +222,7 @@ int sys_auth_passwd(Authctxt *, const char *); + #if defined(KRB5) && !defined(HEIMDAL) + #include + krb5_error_code ssh_krb5_cc_new_unique(krb5_context, krb5_ccache *, int *); ++krb5_error_code ssh_krb5_get_k5login_directory(krb5_context ctx, ++ char **k5login_directory); + #endif + #endif +diff --git a/gss-serv-krb5.c b/gss-serv-krb5.c +index a7c0c5f..df8cc9a 100644 +--- a/gss-serv-krb5.c ++++ b/gss-serv-krb5.c +@@ -244,8 +244,27 @@ ssh_gssapi_k5login_exists() + { + char file[MAXPATHLEN]; + struct passwd *pw = the_authctxt->pw; ++ char *k5login_directory = NULL; ++ int ret = 0; ++ ++ ret = ssh_krb5_get_k5login_directory(krb_context, &k5login_directory); ++ debug3("%s: k5login_directory = %s (rv=%d)", __func__, k5login_directory, ret); ++ if (k5login_directory == NULL || ret != 0) { ++ /* If not set, the library will look for k5login ++ * files in the user's home directory, with the filename .k5login. ++ */ ++ snprintf(file, sizeof(file), "%s/.k5login", pw->pw_dir); ++ } else { ++ /* If set, the library will look for a local user's k5login file ++ * within the named directory, with a filename corresponding to the ++ * local username. ++ */ ++ snprintf(file, sizeof(file), "%s%s%s", k5login_directory, ++ k5login_directory[strlen(k5login_directory)-1] != '/' ? "/" : "", ++ pw->pw_name); ++ } ++ debug("%s: Checking existence of file %s", __func__, file); + +- snprintf(file, sizeof(file), "%s/.k5login", pw->pw_dir); + return access(file, F_OK) == 0; + } + +diff --git a/sshd.8 b/sshd.8 +index 5c4f15b..135e290 100644 +--- a/sshd.8 ++++ b/sshd.8 +@@ -806,6 +806,10 @@ rlogin/rsh. + These files enforce GSSAPI/Kerberos authentication access control. + Further details are described in + .Xr ksu 1 . ++The location of the k5login file depends on the configuration option ++.Cm k5login_directory ++in the ++.Xr krb5.conf 5 . + .Pp + .It Pa ~/.ssh/ + This directory is the default location for all user-specific configuration diff --git a/openssh-7.2p2-s390-closefrom.patch b/openssh-7.2p2-s390-closefrom.patch new file mode 100644 index 0000000..301a523 --- /dev/null +++ b/openssh-7.2p2-s390-closefrom.patch @@ -0,0 +1,52 @@ +Zseries only: Leave the hardware filedescriptors open. + +All filedescriptors above 2 are getting closed when a new +sshd process to handle a new client connection is +spawned. As the process also chroot into an empty filesystem +without any device nodes, there is no chance to reopen the +files. This patch filters out the reqired fds in the +closefrom function so these are skipped in the close loop. + +Author: Harald Freudenberger + +--- + openbsd-compat/bsd-closefrom.c | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +--- a/openbsd-compat/bsd-closefrom.c ++++ b/openbsd-compat/bsd-closefrom.c +@@ -82,7 +82,33 @@ closefrom(int lowfd) + fd = strtol(dent->d_name, &endp, 10); + if (dent->d_name != endp && *endp == '\0' && + fd >= 0 && fd < INT_MAX && fd >= lowfd && fd != dirfd(dirp)) ++#ifdef __s390__ ++ { ++ /* ++ * the filedescriptors used to communicate with ++ * the device drivers to provide hardware support ++ * should survive. HF ++ */ ++ char fpath[PATH_MAX], lpath[PATH_MAX]; ++ len = snprintf(fpath, sizeof(fpath), "%s/%s", ++ fdpath, dent->d_name); ++ if (len > 0 && (size_t)len <= sizeof(fpath)) { ++ len = readlink(fpath, lpath, sizeof(lpath)); ++ if (len > 0) { ++ lpath[len] = 0; ++ if (strstr(lpath, "dev/z90crypt") ++ || strstr(lpath, "dev/zcrypt") ++ || strstr(lpath, "dev/prandom") ++ || strstr(lpath, "dev/shm/icastats")) ++ fd = -1; ++ } ++ } ++ if (fd >= 0) ++ (void) close((int) fd); ++ } ++#else + (void) close((int) fd); ++#endif + } + (void) closedir(dirp); + } else + diff --git a/openssh-7.2p2-x11.patch b/openssh-7.2p2-x11.patch new file mode 100644 index 0000000..48ce840 --- /dev/null +++ b/openssh-7.2p2-x11.patch @@ -0,0 +1,53 @@ +diff -up openssh-7.2p2/channels.c.x11 openssh-7.2p2/channels.c +--- openssh-7.2p2/channels.c.x11 2016-03-09 19:04:48.000000000 +0100 ++++ openssh-7.2p2/channels.c 2016-06-03 10:42:04.775164520 +0200 +@@ -3990,21 +3990,24 @@ x11_create_display_inet(int x11_display_ + } + + static int +-connect_local_xsocket_path(const char *pathname) ++connect_local_xsocket_path(const char *pathname, int len) + { + int sock; + struct sockaddr_un addr; + ++ if (len <= 0) ++ return -1; + sock = socket(AF_UNIX, SOCK_STREAM, 0); + if (sock < 0) + error("socket: %.100s", strerror(errno)); + memset(&addr, 0, sizeof(addr)); + addr.sun_family = AF_UNIX; +- strlcpy(addr.sun_path, pathname, sizeof addr.sun_path); +- if (connect(sock, (struct sockaddr *)&addr, sizeof(addr)) == 0) ++ if (len > sizeof addr.sun_path) ++ len = sizeof addr.sun_path; ++ memcpy(addr.sun_path, pathname, len); ++ if (connect(sock, (struct sockaddr *)&addr, sizeof addr - (sizeof addr.sun_path - len) ) == 0) + return sock; + close(sock); +- error("connect %.100s: %.100s", addr.sun_path, strerror(errno)); + return -1; + } + +@@ -4012,8 +4015,18 @@ static int + connect_local_xsocket(u_int dnr) + { + char buf[1024]; +- snprintf(buf, sizeof buf, _PATH_UNIX_X, dnr); +- return connect_local_xsocket_path(buf); ++ int len, ret; ++ len = snprintf(buf + 1, sizeof (buf) - 1, _PATH_UNIX_X, dnr); ++#ifdef linux ++ /* try abstract socket first */ ++ buf[0] = '\0'; ++ if ((ret = connect_local_xsocket_path(buf, len + 1)) >= 0) ++ return ret; ++#endif ++ if ((ret = connect_local_xsocket_path(buf + 1, len)) >= 0) ++ return ret; ++ error("connect %.100s: %.100s", buf + 1, strerror(errno)); ++ return -1; + } + + #ifdef __APPLE__ diff --git a/openssh-7.3p1-openssl-1.1.0.patch b/openssh-7.3p1-openssl-1.1.0.patch new file mode 100644 index 0000000..42ede48 --- /dev/null +++ b/openssh-7.3p1-openssl-1.1.0.patch @@ -0,0 +1,2688 @@ +diff -up openssh/auth-pam.c.openssl openssh/auth-pam.c +--- openssh/auth-pam.c.openssl 2017-09-26 13:19:31.662248869 +0200 ++++ openssh/auth-pam.c 2017-09-26 13:19:31.793249672 +0200 +@@ -128,6 +128,10 @@ extern u_int utmp_len; + typedef pthread_t sp_pthread_t; + #else + typedef pid_t sp_pthread_t; ++# define pthread_create(a, b, c, d) _ssh_compat_pthread_create(a, b, c, d) ++# define pthread_exit(a) _ssh_compat_pthread_exit(a) ++# define pthread_cancel(a) _ssh_compat_pthread_cancel(a) ++# define pthread_join(a, b) _ssh_compat_pthread_join(a, b) + #endif + + struct pam_ctxt { +diff -up openssh/cipher.c.openssl openssh/cipher.c +--- openssh/cipher.c.openssl 2017-09-26 13:19:31.782249605 +0200 ++++ openssh/cipher.c 2017-09-26 13:27:37.424040367 +0200 +@@ -283,7 +283,7 @@ cipher_init(struct sshcipher_ctx **ccp, + ret = SSH_ERR_ALLOC_FAIL; + goto out; + } +- if (EVP_CipherInit(cc->evp, type, NULL, (u_char *)iv, ++ if (EVP_CipherInit(cc->evp, type, (u_char *)key, (u_char *)iv, + (do_encrypt == CIPHER_ENCRYPT)) == 0) { + ret = SSH_ERR_LIBCRYPTO_ERROR; + goto out; +@@ -301,10 +301,6 @@ cipher_init(struct sshcipher_ctx **ccp, + goto out; + } + } +- if (EVP_CipherInit(cc->evp, NULL, (u_char *)key, NULL, -1) == 0) { +- ret = SSH_ERR_LIBCRYPTO_ERROR; +- goto out; +- } + ret = 0; + #endif /* WITH_OPENSSL */ + out: +@@ -490,7 +486,7 @@ cipher_get_keyiv(struct sshcipher_ctx *c + len, iv)) + return SSH_ERR_LIBCRYPTO_ERROR; + } else +- memcpy(iv, cc->evp->iv, len); ++ memcpy(iv, EVP_CIPHER_CTX_iv(cc->evp), len); + #endif + return 0; + } +@@ -524,14 +520,14 @@ cipher_set_keyiv(struct sshcipher_ctx *c + EVP_CTRL_GCM_SET_IV_FIXED, -1, (void *)iv)) + return SSH_ERR_LIBCRYPTO_ERROR; + } else +- memcpy(cc->evp->iv, iv, evplen); ++ memcpy(EVP_CIPHER_CTX_iv_noconst(cc->evp), iv, evplen); + #endif + return 0; + } + + #ifdef WITH_OPENSSL +-#define EVP_X_STATE(evp) (evp)->cipher_data +-#define EVP_X_STATE_LEN(evp) (evp)->cipher->ctx_size ++#define EVP_X_STATE(evp) EVP_CIPHER_CTX_get_cipher_data(evp) ++#define EVP_X_STATE_LEN(evp) EVP_CIPHER_impl_ctx_size(EVP_CIPHER_CTX_cipher(evp)) + #endif + + int +diff -up openssh/ctr-cavstest.c.openssl openssh/ctr-cavstest.c +--- openssh/ctr-cavstest.c.openssl 2017-09-26 13:19:31.707249145 +0200 ++++ openssh/ctr-cavstest.c 2017-09-26 13:19:31.794249679 +0200 +@@ -144,7 +144,7 @@ int main (int argc, char *argv[]) + usage(); + } + +- SSLeay_add_all_algorithms(); ++ OpenSSL_add_all_algorithms(); + + c = cipher_by_name(algo); + if (c == NULL) { +diff -up openssh/dh.c.openssl openssh/dh.c +--- openssh/dh.c.openssl 2017-09-19 06:26:43.000000000 +0200 ++++ openssh/dh.c 2017-09-26 13:19:31.794249679 +0200 +@@ -212,14 +212,15 @@ choose_dh(int min, int wantbits, int max + /* diffie-hellman-groupN-sha1 */ + + int +-dh_pub_is_valid(DH *dh, BIGNUM *dh_pub) ++dh_pub_is_valid(const DH *dh, const BIGNUM *dh_pub) + { + int i; + int n = BN_num_bits(dh_pub); + int bits_set = 0; + BIGNUM *tmp; ++ const BIGNUM *p; + +- if (dh_pub->neg) { ++ if (BN_is_negative(dh_pub)) { + logit("invalid public DH value: negative"); + return 0; + } +@@ -232,7 +233,8 @@ dh_pub_is_valid(DH *dh, BIGNUM *dh_pub) + error("%s: BN_new failed", __func__); + return 0; + } +- if (!BN_sub(tmp, dh->p, BN_value_one()) || ++ DH_get0_pqg(dh, &p, NULL, NULL); ++ if (!BN_sub(tmp, p, BN_value_one()) || + BN_cmp(dh_pub, tmp) != -1) { /* pub_exp > p-2 */ + BN_clear_free(tmp); + logit("invalid public DH value: >= p-1"); +@@ -243,14 +245,14 @@ dh_pub_is_valid(DH *dh, BIGNUM *dh_pub) + for (i = 0; i <= n; i++) + if (BN_is_bit_set(dh_pub, i)) + bits_set++; +- debug2("bits set: %d/%d", bits_set, BN_num_bits(dh->p)); ++ debug2("bits set: %d/%d", bits_set, BN_num_bits(p)); + + /* + * if g==2 and bits_set==1 then computing log_g(dh_pub) is trivial + */ + if (bits_set < 4) { + logit("invalid public DH value (%d/%d)", +- bits_set, BN_num_bits(dh->p)); ++ bits_set, BN_num_bits(p)); + return 0; + } + return 1; +@@ -260,9 +262,11 @@ int + dh_gen_key(DH *dh, int need) + { + int pbits; ++ const BIGNUM *p, *pub_key; + +- if (need < 0 || dh->p == NULL || +- (pbits = BN_num_bits(dh->p)) <= 0 || ++ DH_get0_pqg(dh, &p, NULL, NULL); ++ if (need < 0 || p == NULL || ++ (pbits = BN_num_bits(p)) <= 0 || + need > INT_MAX / 2 || 2 * need > pbits) + return SSH_ERR_INVALID_ARGUMENT; + if (need < 256) +@@ -271,11 +275,11 @@ dh_gen_key(DH *dh, int need) + * Pollard Rho, Big step/Little Step attacks are O(sqrt(n)), + * so double requested need here. + */ +- dh->length = MINIMUM(need * 2, pbits - 1); +- if (DH_generate_key(dh) == 0 || +- !dh_pub_is_valid(dh, dh->pub_key)) { +- BN_clear_free(dh->priv_key); +- dh->priv_key = NULL; ++ DH_set_length(dh, MINIMUM(need * 2, pbits - 1)); ++ if (DH_generate_key(dh) == 0) ++ return SSH_ERR_LIBCRYPTO_ERROR; ++ DH_get0_key(dh, &pub_key, NULL); ++ if (!dh_pub_is_valid(dh, pub_key)) { + return SSH_ERR_LIBCRYPTO_ERROR; + } + return 0; +@@ -284,15 +289,22 @@ DH * + dh_new_group_asc(const char *gen, const char *modulus) + { + DH *dh; ++ BIGNUM *p = NULL, *g = NULL; + +- if ((dh = DH_new()) == NULL) +- return NULL; +- if (BN_hex2bn(&dh->p, modulus) == 0 || +- BN_hex2bn(&dh->g, gen) == 0) { +- DH_free(dh); +- return NULL; +- } ++ if ((dh = DH_new()) == NULL || ++ (p = BN_new()) == NULL || ++ (g = BN_new()) == NULL) ++ goto err; ++ if (BN_hex2bn(&p, modulus) == 0 || ++ BN_hex2bn(&g, gen) == 0 || ++ DH_set0_pqg(dh, p, NULL, g) == 0) ++ goto err; + return (dh); ++err: ++ DH_free(dh); ++ BN_free(p); ++ BN_free(g); ++ return NULL; + } + + /* +@@ -307,8 +319,7 @@ dh_new_group(BIGNUM *gen, BIGNUM *modulu + + if ((dh = DH_new()) == NULL) + return NULL; +- dh->p = modulus; +- dh->g = gen; ++ DH_set0_pqg(dh, modulus, NULL, gen); + + return (dh); + } +diff -up openssh/dh.h.openssl openssh/dh.h +--- openssh/dh.h.openssl 2017-09-26 13:19:31.783249611 +0200 ++++ openssh/dh.h 2017-09-26 13:19:31.794249679 +0200 +@@ -42,7 +42,7 @@ DH *dh_new_group18(void); + DH *dh_new_group_fallback(int); + + int dh_gen_key(DH *, int); +-int dh_pub_is_valid(DH *, BIGNUM *); ++int dh_pub_is_valid(const DH *, const BIGNUM *); + + u_int dh_estimate(int); + +diff -up openssh/digest-openssl.c.openssl openssh/digest-openssl.c +--- openssh/digest-openssl.c.openssl 2017-09-19 06:26:43.000000000 +0200 ++++ openssh/digest-openssl.c 2017-09-26 13:19:31.795249685 +0200 +@@ -43,7 +43,7 @@ + + struct ssh_digest_ctx { + int alg; +- EVP_MD_CTX mdctx; ++ EVP_MD_CTX *mdctx; + }; + + struct ssh_digest { +@@ -106,7 +106,7 @@ ssh_digest_bytes(int alg) + size_t + ssh_digest_blocksize(struct ssh_digest_ctx *ctx) + { +- return EVP_MD_CTX_block_size(&ctx->mdctx); ++ return EVP_MD_CTX_block_size(ctx->mdctx); + } + + struct ssh_digest_ctx * +@@ -118,8 +118,10 @@ ssh_digest_start(int alg) + if (digest == NULL || ((ret = calloc(1, sizeof(*ret))) == NULL)) + return NULL; + ret->alg = alg; +- EVP_MD_CTX_init(&ret->mdctx); +- if (EVP_DigestInit_ex(&ret->mdctx, digest->mdfunc(), NULL) != 1) { ++ ret->mdctx = EVP_MD_CTX_new(); ++ if (ret->mdctx == NULL || ++ EVP_DigestInit_ex(ret->mdctx, digest->mdfunc(), NULL) != 1) { ++ EVP_MD_CTX_free(ret->mdctx); + free(ret); + return NULL; + } +@@ -132,7 +133,7 @@ ssh_digest_copy_state(struct ssh_digest_ + if (from->alg != to->alg) + return SSH_ERR_INVALID_ARGUMENT; + /* we have bcopy-style order while openssl has memcpy-style */ +- if (!EVP_MD_CTX_copy_ex(&to->mdctx, &from->mdctx)) ++ if (!EVP_MD_CTX_copy_ex(to->mdctx, from->mdctx)) + return SSH_ERR_LIBCRYPTO_ERROR; + return 0; + } +@@ -140,7 +141,7 @@ ssh_digest_copy_state(struct ssh_digest_ + int + ssh_digest_update(struct ssh_digest_ctx *ctx, const void *m, size_t mlen) + { +- if (EVP_DigestUpdate(&ctx->mdctx, m, mlen) != 1) ++ if (EVP_DigestUpdate(ctx->mdctx, m, mlen) != 1) + return SSH_ERR_LIBCRYPTO_ERROR; + return 0; + } +@@ -161,7 +162,7 @@ ssh_digest_final(struct ssh_digest_ctx * + return SSH_ERR_INVALID_ARGUMENT; + if (dlen < digest->digest_len) /* No truncation allowed */ + return SSH_ERR_INVALID_ARGUMENT; +- if (EVP_DigestFinal_ex(&ctx->mdctx, d, &l) != 1) ++ if (EVP_DigestFinal_ex(ctx->mdctx, d, &l) != 1) + return SSH_ERR_LIBCRYPTO_ERROR; + if (l != digest->digest_len) /* sanity */ + return SSH_ERR_INTERNAL_ERROR; +@@ -172,7 +173,7 @@ void + ssh_digest_free(struct ssh_digest_ctx *ctx) + { + if (ctx != NULL) { +- EVP_MD_CTX_cleanup(&ctx->mdctx); ++ EVP_MD_CTX_free(ctx->mdctx); + explicit_bzero(ctx, sizeof(*ctx)); + free(ctx); + } +diff -up openssh/entropy.c.openssl openssh/entropy.c +--- openssh/entropy.c.openssl 2017-09-26 13:19:31.783249611 +0200 ++++ openssh/entropy.c 2017-09-26 13:19:31.795249685 +0200 +@@ -218,7 +218,9 @@ seed_rng(void) + "have %lx", (u_long)OPENSSL_VERSION_NUMBER, SSLeay()); + + /* clean the PRNG status when exiting the program */ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + atexit(RAND_cleanup); ++#endif + + #ifndef OPENSSL_PRNG_ONLY + if (RAND_status() == 1) { +diff -up openssh/gss-genr.c.openssl openssh/gss-genr.c +--- openssh/gss-genr.c.openssl 2017-09-26 13:19:31.773249550 +0200 ++++ openssh/gss-genr.c 2017-09-26 13:19:31.796249691 +0200 +@@ -99,7 +99,7 @@ ssh_gssapi_kex_mechs(gss_OID_set gss_sup + u_char digest[EVP_MAX_MD_SIZE]; + char deroid[2]; + const EVP_MD *evp_md = EVP_md5(); +- EVP_MD_CTX md; ++ EVP_MD_CTX *md; + char *s, *cp, *p; + + if (gss_enc2oid != NULL) { +@@ -113,6 +113,7 @@ ssh_gssapi_kex_mechs(gss_OID_set gss_sup + if ((buf = sshbuf_new()) == NULL) + fatal("%s: sshbuf_new failed", __func__); + ++ md = EVP_MD_CTX_new(); + oidpos = 0; + s = cp = xstrdup(kex); + for (i = 0; i < gss_supported->count; i++) { +@@ -122,12 +123,13 @@ ssh_gssapi_kex_mechs(gss_OID_set gss_sup + deroid[0] = SSH_GSS_OIDTYPE; + deroid[1] = gss_supported->elements[i].length; + +- EVP_DigestInit(&md, evp_md); +- EVP_DigestUpdate(&md, deroid, 2); +- EVP_DigestUpdate(&md, ++ EVP_MD_CTX_reset(md); ++ EVP_DigestInit(md, evp_md); ++ EVP_DigestUpdate(md, deroid, 2); ++ EVP_DigestUpdate(md, + gss_supported->elements[i].elements, + gss_supported->elements[i].length); +- EVP_DigestFinal(&md, digest, NULL); ++ EVP_DigestFinal(md, digest, NULL); + + encoded = xmalloc(EVP_MD_size(evp_md) * 2); + enclen = __b64_ntop(digest, EVP_MD_size(evp_md), +@@ -149,6 +151,7 @@ ssh_gssapi_kex_mechs(gss_OID_set gss_sup + } + } + free(s); ++ EVP_MD_CTX_free(md); + gss_enc2oid[oidpos].oid = NULL; + gss_enc2oid[oidpos].encoded = NULL; + +diff -up openssh/includes.h.openssl openssh/includes.h +--- openssh/includes.h.openssl 2017-09-19 06:26:43.000000000 +0200 ++++ openssh/includes.h 2017-09-26 13:19:31.796249691 +0200 +@@ -166,6 +166,7 @@ + + #ifdef WITH_OPENSSL + #include /* For OPENSSL_VERSION_NUMBER */ ++#include "libcrypto-compat.h" + #endif + + #include "defines.h" +diff -up openssh/kexdhc.c.openssl openssh/kexdhc.c +--- openssh/kexdhc.c.openssl 2017-09-19 06:26:43.000000000 +0200 ++++ openssh/kexdhc.c 2017-09-26 13:19:31.797249697 +0200 +@@ -56,6 +56,7 @@ kexdh_client(struct ssh *ssh) + { + struct kex *kex = ssh->kex; + int r; ++ const BIGNUM *pub_key; + + /* generate and send 'e', client DH public key */ + switch (kex->kex_type) { +@@ -81,21 +82,27 @@ kexdh_client(struct ssh *ssh) + goto out; + } + debug("sending SSH2_MSG_KEXDH_INIT"); +- if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0 || +- (r = sshpkt_start(ssh, SSH2_MSG_KEXDH_INIT)) != 0 || +- (r = sshpkt_put_bignum2(ssh, kex->dh->pub_key)) != 0 || ++ if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0) ++ goto out; ++ DH_get0_key(kex->dh, &pub_key, NULL); ++ if ((r = sshpkt_start(ssh, SSH2_MSG_KEXDH_INIT)) != 0 || ++ (r = sshpkt_put_bignum2(ssh, pub_key)) != 0 || + (r = sshpkt_send(ssh)) != 0) + goto out; + #ifdef DEBUG_KEXDH + DHparams_print_fp(stderr, kex->dh); + fprintf(stderr, "pub= "); +- BN_print_fp(stderr, kex->dh->pub_key); ++ BN_print_fp(stderr, pub_key); + fprintf(stderr, "\n"); + #endif + debug("expecting SSH2_MSG_KEXDH_REPLY"); + ssh_dispatch_set(ssh, SSH2_MSG_KEXDH_REPLY, &input_kex_dh); + r = 0; + out: ++ if (r != 0) { ++ DH_free(kex->dh); ++ kex->dh = NULL; ++ } + return r; + } + +@@ -109,6 +116,7 @@ input_kex_dh(int type, u_int32_t seq, st + u_char hash[SSH_DIGEST_MAX_LENGTH]; + size_t klen = 0, slen, sbloblen, hashlen; + int kout, r; ++ const BIGNUM *pub_key; + + if (kex->verify_host_key == NULL) { + r = SSH_ERR_INVALID_ARGUMENT; +@@ -168,6 +176,7 @@ input_kex_dh(int type, u_int32_t seq, st + #endif + + /* calc and verify H */ ++ DH_get0_key(kex->dh, &pub_key, NULL); + hashlen = sizeof(hash); + if ((r = kex_dh_hash( + kex->hash_alg, +@@ -176,7 +185,7 @@ input_kex_dh(int type, u_int32_t seq, st + sshbuf_ptr(kex->my), sshbuf_len(kex->my), + sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), + server_host_key_blob, sbloblen, +- kex->dh->pub_key, ++ pub_key, + dh_server_pub, + shared_secret, + hash, &hashlen)) != 0) +diff -up openssh/kexdhs.c.openssl openssh/kexdhs.c +--- openssh/kexdhs.c.openssl 2017-09-19 06:26:43.000000000 +0200 ++++ openssh/kexdhs.c 2017-09-26 13:19:31.797249697 +0200 +@@ -87,6 +87,10 @@ kexdh_server(struct ssh *ssh) + ssh_dispatch_set(ssh, SSH2_MSG_KEXDH_INIT, &input_kex_dh_init); + r = 0; + out: ++ if (r != 0) { ++ DH_free(kex->dh); ++ kex->dh = NULL; ++ } + return r; + } + +@@ -101,6 +105,7 @@ input_kex_dh_init(int type, u_int32_t se + size_t sbloblen, slen; + size_t klen = 0, hashlen; + int kout, r; ++ const BIGNUM *pub_key; + + if (kex->load_host_public_key == NULL || + kex->load_host_private_key == NULL) { +@@ -163,6 +168,7 @@ input_kex_dh_init(int type, u_int32_t se + goto out; + /* calc H */ + hashlen = sizeof(hash); ++ DH_get0_key(kex->dh, &pub_key, NULL); + if ((r = kex_dh_hash( + kex->hash_alg, + kex->client_version_string, +@@ -171,7 +177,7 @@ input_kex_dh_init(int type, u_int32_t se + sshbuf_ptr(kex->my), sshbuf_len(kex->my), + server_host_key_blob, sbloblen, + dh_client_pub, +- kex->dh->pub_key, ++ pub_key, + shared_secret, + hash, &hashlen)) != 0) + goto out; +@@ -197,7 +203,7 @@ input_kex_dh_init(int type, u_int32_t se + /* send server hostkey, DH pubkey 'f' and signed H */ + if ((r = sshpkt_start(ssh, SSH2_MSG_KEXDH_REPLY)) != 0 || + (r = sshpkt_put_string(ssh, server_host_key_blob, sbloblen)) != 0 || +- (r = sshpkt_put_bignum2(ssh, kex->dh->pub_key)) != 0 || /* f */ ++ (r = sshpkt_put_bignum2(ssh, pub_key)) != 0 || /* f */ + (r = sshpkt_put_string(ssh, signature, slen)) != 0 || + (r = sshpkt_send(ssh)) != 0) + goto out; +diff -up openssh/kexgexc.c.openssl openssh/kexgexc.c +--- openssh/kexgexc.c.openssl 2017-09-26 13:19:31.783249611 +0200 ++++ openssh/kexgexc.c 2017-09-26 13:19:31.797249697 +0200 +@@ -95,6 +95,7 @@ input_kex_dh_gex_group(int type, u_int32 + struct kex *kex = ssh->kex; + BIGNUM *p = NULL, *g = NULL; + int r, bits; ++ const BIGNUM *pub_key; + + debug("got SSH2_MSG_KEX_DH_GEX_GROUP"); + +@@ -119,24 +120,30 @@ input_kex_dh_gex_group(int type, u_int32 + p = g = NULL; /* belong to kex->dh now */ + + /* generate and send 'e', client DH public key */ +- if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0 || +- (r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_INIT)) != 0 || +- (r = sshpkt_put_bignum2(ssh, kex->dh->pub_key)) != 0 || ++ if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0) ++ goto out; ++ DH_get0_key(kex->dh, &pub_key, NULL); ++ if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_INIT)) != 0 || ++ (r = sshpkt_put_bignum2(ssh, pub_key)) != 0 || + (r = sshpkt_send(ssh)) != 0) + goto out; + debug("SSH2_MSG_KEX_DH_GEX_INIT sent"); + #ifdef DEBUG_KEXDH + DHparams_print_fp(stderr, kex->dh); + fprintf(stderr, "pub= "); +- BN_print_fp(stderr, kex->dh->pub_key); ++ BN_print_fp(stderr, pub_key); + fprintf(stderr, "\n"); + #endif + ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_GROUP, NULL); + ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_REPLY, &input_kex_dh_gex_reply); + r = 0; + out: + BN_clear_free(p); + BN_clear_free(g); ++ if (r != 0) { ++ DH_free(kex->dh); ++ kex->dh = NULL; ++ } + return r; + } + +@@ -152,6 +157,7 @@ input_kex_dh_gex_reply(int type, u_int32 + u_char hash[SSH_DIGEST_MAX_LENGTH]; + size_t klen = 0, slen, sbloblen, hashlen; + int kout, r; ++ const BIGNUM *p, *g, *pub_key; + + debug("got SSH2_MSG_KEX_DH_GEX_REPLY"); + if (kex->verify_host_key == NULL) { +@@ -214,6 +220,8 @@ input_kex_dh_gex_reply(int type, u_int32 + kex->min = kex->max = -1; + + /* calc and verify H */ ++ DH_get0_pqg(kex->dh, &p, NULL, &g); ++ DH_get0_key(kex->dh, &pub_key, NULL); + hashlen = sizeof(hash); + if ((r = kexgex_hash( + kex->hash_alg, +@@ -223,8 +231,8 @@ input_kex_dh_gex_reply(int type, u_int32 + sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), + server_host_key_blob, sbloblen, + kex->min, kex->nbits, kex->max, +- kex->dh->p, kex->dh->g, +- kex->dh->pub_key, ++ p, g, ++ pub_key, + dh_server_pub, + shared_secret, + hash, &hashlen)) != 0) +diff -up openssh/kexgexs.c.openssl openssh/kexgexs.c +--- openssh/kexgexs.c.openssl 2017-09-26 13:19:31.783249611 +0200 ++++ openssh/kexgexs.c 2017-09-26 13:19:31.797249697 +0200 +@@ -72,6 +72,7 @@ input_kex_dh_gex_request(int type, u_int + struct kex *kex = ssh->kex; + int r; + u_int min = 0, max = 0, nbits = 0; ++ const BIGNUM *p, *g; + + debug("SSH2_MSG_KEX_DH_GEX_REQUEST received"); + if ((r = sshpkt_get_u32(ssh, &min)) != 0 || +@@ -101,9 +102,10 @@ input_kex_dh_gex_request(int type, u_int + goto out; + } + debug("SSH2_MSG_KEX_DH_GEX_GROUP sent"); ++ DH_get0_pqg(kex->dh, &p, NULL, &g); + if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_GROUP)) != 0 || +- (r = sshpkt_put_bignum2(ssh, kex->dh->p)) != 0 || +- (r = sshpkt_put_bignum2(ssh, kex->dh->g)) != 0 || ++ (r = sshpkt_put_bignum2(ssh, p)) != 0 || ++ (r = sshpkt_put_bignum2(ssh, g)) != 0 || + (r = sshpkt_send(ssh)) != 0) + goto out; + +@@ -115,6 +117,10 @@ input_kex_dh_gex_request(int type, u_int + ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_INIT, &input_kex_dh_gex_init); + r = 0; + out: ++ if (r != 0) { ++ DH_free(kex->dh); ++ kex->dh = NULL; ++ } + return r; + } + +@@ -129,6 +135,7 @@ input_kex_dh_gex_init(int type, u_int32_ + size_t sbloblen, slen; + size_t klen = 0, hashlen; + int kout, r; ++ const BIGNUM *p, *g, *pub_key; + + if (kex->load_host_public_key == NULL || + kex->load_host_private_key == NULL) { +@@ -191,6 +198,8 @@ input_kex_dh_gex_init(int type, u_int32_ + goto out; + /* calc H */ + hashlen = sizeof(hash); ++ DH_get0_pqg(kex->dh, &p, NULL, &g); ++ DH_get0_key(kex->dh, &pub_key, NULL); + if ((r = kexgex_hash( + kex->hash_alg, + kex->client_version_string, +@@ -199,9 +208,9 @@ input_kex_dh_gex_init(int type, u_int32_ + sshbuf_ptr(kex->my), sshbuf_len(kex->my), + server_host_key_blob, sbloblen, + kex->min, kex->nbits, kex->max, +- kex->dh->p, kex->dh->g, ++ p, g, + dh_client_pub, +- kex->dh->pub_key, ++ pub_key, + shared_secret, + hash, &hashlen)) != 0) + goto out; +@@ -227,7 +236,7 @@ input_kex_dh_gex_init(int type, u_int32_ + /* send server hostkey, DH pubkey 'f' and signed H */ + if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_REPLY)) != 0 || + (r = sshpkt_put_string(ssh, server_host_key_blob, sbloblen)) != 0 || +- (r = sshpkt_put_bignum2(ssh, kex->dh->pub_key)) != 0 || /* f */ ++ (r = sshpkt_put_bignum2(ssh, pub_key)) != 0 || /* f */ + (r = sshpkt_put_string(ssh, signature, slen)) != 0 || + (r = sshpkt_send(ssh)) != 0) + goto out; +diff -up openssh/kexgssc.c.openssl openssh/kexgssc.c +--- openssh/kexgssc.c.openssl 2017-09-26 13:19:31.771249537 +0200 ++++ openssh/kexgssc.c 2017-09-26 13:19:31.797249697 +0200 +@@ -59,6 +59,7 @@ kexgss_client(struct ssh *ssh) { + BIGNUM *shared_secret = NULL; + BIGNUM *p = NULL; + BIGNUM *g = NULL; ++ const BIGNUM *pub_key, *p1, *g1; + u_char *kbuf; + u_char *serverhostkey = NULL; + u_char *empty = ""; +@@ -126,6 +127,7 @@ kexgss_client(struct ssh *ssh) { + + /* Step 1 - e is dh->pub_key */ + dh_gen_key(dh, ssh->kex->we_need * 8); ++ DH_get0_key(dh, &pub_key, NULL); + + /* This is f, we initialise it now to make life easier */ + dh_server_pub = BN_new(); +@@ -173,7 +175,7 @@ kexgss_client(struct ssh *ssh) { + packet_start(SSH2_MSG_KEXGSS_INIT); + packet_put_string(send_tok.value, + send_tok.length); +- packet_put_bignum2(dh->pub_key); ++ packet_put_bignum2((BIGNUM *)pub_key); + first = 0; + } else { + packet_start(SSH2_MSG_KEXGSS_CONTINUE); +@@ -282,13 +284,14 @@ kexgss_client(struct ssh *ssh) { + sshbuf_ptr(ssh->kex->my), sshbuf_len(ssh->kex->my), + sshbuf_ptr(ssh->kex->peer), sshbuf_len(ssh->kex->peer), + (serverhostkey ? serverhostkey : empty), slen, +- dh->pub_key, /* e */ ++ pub_key, /* e */ + dh_server_pub, /* f */ + shared_secret, /* K */ + hash, &hashlen + ); + break; + case KEX_GSS_GEX_SHA1: ++ DH_get0_pqg(dh, &p1, NULL, &g1); + kexgex_hash( + ssh->kex->hash_alg, + ssh->kex->client_version_string, +@@ -297,8 +300,8 @@ kexgss_client(struct ssh *ssh) { + sshbuf_ptr(ssh->kex->peer), sshbuf_len(ssh->kex->peer), + (serverhostkey ? serverhostkey : empty), slen, + min, nbits, max, +- dh->p, dh->g, +- dh->pub_key, ++ p1, g1, ++ pub_key, + dh_server_pub, + shared_secret, + hash, &hashlen +diff -up openssh/kexgsss.c.openssl openssh/kexgsss.c +--- openssh/kexgsss.c.openssl 2017-09-26 13:19:31.771249537 +0200 ++++ openssh/kexgsss.c 2017-09-26 13:19:31.798249703 +0200 +@@ -78,6 +78,7 @@ kexgss_server(struct ssh *ssh) + char *mechs; + u_char hash[SSH_DIGEST_MAX_LENGTH]; + size_t hashlen; ++ const BIGNUM *p, *g, *pub_key; + + /* Initialise GSSAPI */ + +@@ -127,9 +128,10 @@ kexgss_server(struct ssh *ssh) + if (dh == NULL) + packet_disconnect("Protocol error: no matching group found"); + ++ DH_get0_pqg(dh, &p, NULL, &g); + packet_start(SSH2_MSG_KEXGSS_GROUP); +- packet_put_bignum2(dh->p); +- packet_put_bignum2(dh->g); ++ packet_put_bignum2((BIGNUM *)p); ++ packet_put_bignum2((BIGNUM *)g); + packet_send(); + + packet_write_wait(); +@@ -221,6 +223,7 @@ kexgss_server(struct ssh *ssh) + memset(kbuf, 0, klen); + free(kbuf); + ++ DH_get0_key(dh, &pub_key, NULL); + hashlen = sizeof(hash); + switch (ssh->kex->kex_type) { + case KEX_GSS_GRP1_SHA1: +@@ -232,7 +235,7 @@ kexgss_server(struct ssh *ssh) + sshbuf_ptr(ssh->kex->peer), sshbuf_len(ssh->kex->peer), + sshbuf_ptr(ssh->kex->my), sshbuf_len(ssh->kex->my), + NULL, 0, /* Change this if we start sending host keys */ +- dh_client_pub, dh->pub_key, shared_secret, ++ dh_client_pub, pub_key, shared_secret, + hash, &hashlen + ); + break; +@@ -244,9 +247,9 @@ kexgss_server(struct ssh *ssh) + sshbuf_ptr(ssh->kex->my), sshbuf_len(ssh->kex->my), + NULL, 0, + cmin, nbits, cmax, +- dh->p, dh->g, ++ p, g, + dh_client_pub, +- dh->pub_key, ++ pub_key, + shared_secret, + hash, &hashlen + ); +@@ -270,7 +273,7 @@ kexgss_server(struct ssh *ssh) + fatal("Couldn't get MIC"); + + packet_start(SSH2_MSG_KEXGSS_COMPLETE); +- packet_put_bignum2(dh->pub_key); ++ packet_put_bignum2((BIGNUM *)pub_key); + packet_put_string(msg_tok.value,msg_tok.length); + + if (send_tok.length != 0) { +diff -up openssh/libcrypto-compat.c.openssl openssh/libcrypto-compat.c +--- openssh/libcrypto-compat.c.openssl 2017-09-26 13:19:31.798249703 +0200 ++++ openssh/libcrypto-compat.c 2017-09-26 13:19:31.798249703 +0200 +@@ -0,0 +1,428 @@ ++/* ++ * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. ++ * ++ * Licensed under the OpenSSL license (the "License"). You may not use ++ * this file except in compliance with the License. You can obtain a copy ++ * in the file LICENSE in the source distribution or at ++ * https://www.openssl.org/source/license.html ++ */ ++ ++#include "includes.h" ++ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ ++#include ++#include ++ ++static void *OPENSSL_zalloc(size_t num) ++{ ++ void *ret = OPENSSL_malloc(num); ++ ++ if (ret != NULL) ++ memset(ret, 0, num); ++ return ret; ++} ++ ++int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d) ++{ ++ /* If the fields n and e in r are NULL, the corresponding input ++ * parameters MUST be non-NULL for n and e. d may be ++ * left NULL (in case only the public key is used). ++ */ ++ if ((r->n == NULL && n == NULL) ++ || (r->e == NULL && e == NULL)) ++ return 0; ++ ++ if (n != NULL) { ++ BN_free(r->n); ++ r->n = n; ++ } ++ if (e != NULL) { ++ BN_free(r->e); ++ r->e = e; ++ } ++ if (d != NULL) { ++ BN_free(r->d); ++ r->d = d; ++ } ++ ++ return 1; ++} ++ ++int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q) ++{ ++ /* If the fields p and q in r are NULL, the corresponding input ++ * parameters MUST be non-NULL. ++ */ ++ if ((r->p == NULL && p == NULL) ++ || (r->q == NULL && q == NULL)) ++ return 0; ++ ++ if (p != NULL) { ++ BN_free(r->p); ++ r->p = p; ++ } ++ if (q != NULL) { ++ BN_free(r->q); ++ r->q = q; ++ } ++ ++ return 1; ++} ++ ++int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp) ++{ ++ /* If the fields dmp1, dmq1 and iqmp in r are NULL, the corresponding input ++ * parameters MUST be non-NULL. ++ */ ++ if ((r->dmp1 == NULL && dmp1 == NULL) ++ || (r->dmq1 == NULL && dmq1 == NULL) ++ || (r->iqmp == NULL && iqmp == NULL)) ++ return 0; ++ ++ if (dmp1 != NULL) { ++ BN_free(r->dmp1); ++ r->dmp1 = dmp1; ++ } ++ if (dmq1 != NULL) { ++ BN_free(r->dmq1); ++ r->dmq1 = dmq1; ++ } ++ if (iqmp != NULL) { ++ BN_free(r->iqmp); ++ r->iqmp = iqmp; ++ } ++ ++ return 1; ++} ++ ++void RSA_get0_key(const RSA *r, ++ const BIGNUM **n, const BIGNUM **e, const BIGNUM **d) ++{ ++ if (n != NULL) ++ *n = r->n; ++ if (e != NULL) ++ *e = r->e; ++ if (d != NULL) ++ *d = r->d; ++} ++ ++void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q) ++{ ++ if (p != NULL) ++ *p = r->p; ++ if (q != NULL) ++ *q = r->q; ++} ++ ++void RSA_get0_crt_params(const RSA *r, ++ const BIGNUM **dmp1, const BIGNUM **dmq1, ++ const BIGNUM **iqmp) ++{ ++ if (dmp1 != NULL) ++ *dmp1 = r->dmp1; ++ if (dmq1 != NULL) ++ *dmq1 = r->dmq1; ++ if (iqmp != NULL) ++ *iqmp = r->iqmp; ++} ++ ++void DSA_get0_pqg(const DSA *d, ++ const BIGNUM **p, const BIGNUM **q, const BIGNUM **g) ++{ ++ if (p != NULL) ++ *p = d->p; ++ if (q != NULL) ++ *q = d->q; ++ if (g != NULL) ++ *g = d->g; ++} ++ ++int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g) ++{ ++ /* If the fields p, q and g in d are NULL, the corresponding input ++ * parameters MUST be non-NULL. ++ */ ++ if ((d->p == NULL && p == NULL) ++ || (d->q == NULL && q == NULL) ++ || (d->g == NULL && g == NULL)) ++ return 0; ++ ++ if (p != NULL) { ++ BN_free(d->p); ++ d->p = p; ++ } ++ if (q != NULL) { ++ BN_free(d->q); ++ d->q = q; ++ } ++ if (g != NULL) { ++ BN_free(d->g); ++ d->g = g; ++ } ++ ++ return 1; ++} ++ ++void DSA_get0_key(const DSA *d, ++ const BIGNUM **pub_key, const BIGNUM **priv_key) ++{ ++ if (pub_key != NULL) ++ *pub_key = d->pub_key; ++ if (priv_key != NULL) ++ *priv_key = d->priv_key; ++} ++ ++int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key) ++{ ++ /* If the field pub_key in d is NULL, the corresponding input ++ * parameters MUST be non-NULL. The priv_key field may ++ * be left NULL. ++ */ ++ if (d->pub_key == NULL && pub_key == NULL) ++ return 0; ++ ++ if (pub_key != NULL) { ++ BN_free(d->pub_key); ++ d->pub_key = pub_key; ++ } ++ if (priv_key != NULL) { ++ BN_free(d->priv_key); ++ d->priv_key = priv_key; ++ } ++ ++ return 1; ++} ++ ++void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps) ++{ ++ if (pr != NULL) ++ *pr = sig->r; ++ if (ps != NULL) ++ *ps = sig->s; ++} ++ ++int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s) ++{ ++ if (r == NULL || s == NULL) ++ return 0; ++ BN_clear_free(sig->r); ++ BN_clear_free(sig->s); ++ sig->r = r; ++ sig->s = s; ++ return 1; ++} ++ ++void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps) ++{ ++ if (pr != NULL) ++ *pr = sig->r; ++ if (ps != NULL) ++ *ps = sig->s; ++} ++ ++int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s) ++{ ++ if (r == NULL || s == NULL) ++ return 0; ++ BN_clear_free(sig->r); ++ BN_clear_free(sig->s); ++ sig->r = r; ++ sig->s = s; ++ return 1; ++} ++ ++void DH_get0_pqg(const DH *dh, ++ const BIGNUM **p, const BIGNUM **q, const BIGNUM **g) ++{ ++ if (p != NULL) ++ *p = dh->p; ++ if (q != NULL) ++ *q = dh->q; ++ if (g != NULL) ++ *g = dh->g; ++} ++ ++int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g) ++{ ++ /* If the fields p and g in d are NULL, the corresponding input ++ * parameters MUST be non-NULL. q may remain NULL. ++ */ ++ if ((dh->p == NULL && p == NULL) ++ || (dh->g == NULL && g == NULL)) ++ return 0; ++ ++ if (p != NULL) { ++ BN_free(dh->p); ++ dh->p = p; ++ } ++ if (q != NULL) { ++ BN_free(dh->q); ++ dh->q = q; ++ } ++ if (g != NULL) { ++ BN_free(dh->g); ++ dh->g = g; ++ } ++ ++ if (q != NULL) { ++ dh->length = BN_num_bits(q); ++ } ++ ++ return 1; ++} ++ ++void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key) ++{ ++ if (pub_key != NULL) ++ *pub_key = dh->pub_key; ++ if (priv_key != NULL) ++ *priv_key = dh->priv_key; ++} ++ ++int DH_set_length(DH *dh, long length) ++{ ++ dh->length = length; ++ return 1; ++} ++ ++const unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx) ++{ ++ return ctx->iv; ++} ++ ++unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx) ++{ ++ return ctx->iv; ++} ++ ++EVP_MD_CTX *EVP_MD_CTX_new(void) ++{ ++ return OPENSSL_zalloc(sizeof(EVP_MD_CTX)); ++} ++ ++static void OPENSSL_clear_free(void *str, size_t num) ++{ ++ if (str == NULL) ++ return; ++ if (num) ++ OPENSSL_cleanse(str, num); ++ OPENSSL_free(str); ++} ++ ++/* This call frees resources associated with the context */ ++int EVP_MD_CTX_reset(EVP_MD_CTX *ctx) ++{ ++ if (ctx == NULL) ++ return 1; ++ ++ /* ++ * Don't assume ctx->md_data was cleaned in EVP_Digest_Final, because ++ * sometimes only copies of the context are ever finalised. ++ */ ++ if (ctx->digest && ctx->digest->cleanup ++ && !EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_CLEANED)) ++ ctx->digest->cleanup(ctx); ++ if (ctx->digest && ctx->digest->ctx_size && ctx->md_data ++ && !EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_REUSE)) { ++ OPENSSL_clear_free(ctx->md_data, ctx->digest->ctx_size); ++ } ++ EVP_PKEY_CTX_free(ctx->pctx); ++#ifndef OPENSSL_NO_ENGINE ++ ENGINE_finish(ctx->engine); ++#endif ++ OPENSSL_cleanse(ctx, sizeof(*ctx)); ++ ++ return 1; ++} ++ ++void EVP_MD_CTX_free(EVP_MD_CTX *ctx) ++{ ++ EVP_MD_CTX_reset(ctx); ++ OPENSSL_free(ctx); ++} ++ ++RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth) ++{ ++ RSA_METHOD *ret; ++ ++ ret = OPENSSL_malloc(sizeof(RSA_METHOD)); ++ ++ if (ret != NULL) { ++ memcpy(ret, meth, sizeof(*meth)); ++ ret->name = OPENSSL_strdup(meth->name); ++ if (ret->name == NULL) { ++ OPENSSL_free(ret); ++ return NULL; ++ } ++ } ++ ++ return ret; ++} ++ ++int RSA_meth_set1_name(RSA_METHOD *meth, const char *name) ++{ ++ char *tmpname; ++ ++ tmpname = OPENSSL_strdup(name); ++ if (tmpname == NULL) { ++ return 0; ++ } ++ ++ OPENSSL_free((char *)meth->name); ++ meth->name = tmpname; ++ ++ return 1; ++} ++ ++int RSA_meth_set_priv_enc(RSA_METHOD *meth, ++ int (*priv_enc) (int flen, const unsigned char *from, ++ unsigned char *to, RSA *rsa, ++ int padding)) ++{ ++ meth->rsa_priv_enc = priv_enc; ++ return 1; ++} ++ ++int RSA_meth_set_priv_dec(RSA_METHOD *meth, ++ int (*priv_dec) (int flen, const unsigned char *from, ++ unsigned char *to, RSA *rsa, ++ int padding)) ++{ ++ meth->rsa_priv_dec = priv_dec; ++ return 1; ++} ++ ++int RSA_meth_set_finish(RSA_METHOD *meth, int (*finish) (RSA *rsa)) ++{ ++ meth->finish = finish; ++ return 1; ++} ++ ++void RSA_meth_free(RSA_METHOD *meth) ++{ ++ if (meth != NULL) { ++ OPENSSL_free((char *)meth->name); ++ OPENSSL_free(meth); ++ } ++} ++ ++int RSA_bits(const RSA *r) ++{ ++ return (BN_num_bits(r->n)); ++} ++ ++int DSA_bits(const DSA *dsa) ++{ ++ return BN_num_bits(dsa->p); ++} ++ ++RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey) ++{ ++ if (pkey->type != EVP_PKEY_RSA) { ++ return NULL; ++ } ++ return pkey->pkey.rsa; ++} ++ ++#endif /* OPENSSL_VERSION_NUMBER */ +diff -up openssh/libcrypto-compat.h.openssl openssh/libcrypto-compat.h +--- openssh/libcrypto-compat.h.openssl 2017-09-26 13:19:31.798249703 +0200 ++++ openssh/libcrypto-compat.h 2017-09-26 13:19:31.798249703 +0200 +@@ -0,0 +1,59 @@ ++#ifndef LIBCRYPTO_COMPAT_H ++#define LIBCRYPTO_COMPAT_H ++ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ ++#include ++#include ++#include ++#include ++#include ++ ++int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); ++int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); ++int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp); ++void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d); ++void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q); ++void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1, const BIGNUM **iqmp); ++ ++void DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); ++int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g); ++void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key); ++int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key); ++ ++void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); ++int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s); ++ ++void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); ++int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); ++ ++void DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); ++int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); ++void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key); ++int DH_set_length(DH *dh, long length); ++ ++const unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx); ++unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx); ++int EVP_MD_CTX_reset(EVP_MD_CTX *ctx); ++EVP_MD_CTX *EVP_MD_CTX_new(void); ++void EVP_MD_CTX_free(EVP_MD_CTX *ctx); ++#define EVP_CIPHER_impl_ctx_size(e) e->ctx_size ++#define EVP_CIPHER_CTX_get_cipher_data(ctx) ctx->cipher_data ++ ++RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth); ++int RSA_meth_set1_name(RSA_METHOD *meth, const char *name); ++#define RSA_meth_get_finish(meth) meth->finish ++int RSA_meth_set_priv_enc(RSA_METHOD *meth, int (*priv_enc) (int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding)); ++int RSA_meth_set_priv_dec(RSA_METHOD *meth, int (*priv_dec) (int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding)); ++int RSA_meth_set_finish(RSA_METHOD *meth, int (*finish) (RSA *rsa)); ++void RSA_meth_free(RSA_METHOD *meth); ++ ++int RSA_bits(const RSA *r); ++int DSA_bits(const DSA *d); ++ ++RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey); ++ ++#endif /* OPENSSL_VERSION_NUMBER */ ++ ++#endif /* LIBCRYPTO_COMPAT_H */ ++ +diff -up openssh/Makefile.in.openssl openssh/Makefile.in +--- openssh/Makefile.in.openssl 2017-09-26 13:19:31.784249617 +0200 ++++ openssh/Makefile.in 2017-09-26 13:19:31.798249703 +0200 +@@ -101,7 +101,7 @@ LIBSSH_OBJS=${LIBOPENSSH_OBJS} \ + kexdhc.o kexgexc.o kexecdhc.o kexc25519c.o \ + kexdhs.o kexgexs.o kexecdhs.o kexc25519s.o \ + platform-pledge.o platform-tracing.o platform-misc.o \ +- auditstub.o ++ auditstub.o libcrypto-compat.o + + SSHOBJS= ssh.o readconf.o clientloop.o sshtty.o \ + sshconnect.o sshconnect2.o mux.o +diff -up openssh/monitor.c.openssl openssh/monitor.c +--- openssh/monitor.c.openssl 2017-09-26 13:19:31.789249648 +0200 ++++ openssh/monitor.c 2017-09-26 13:19:31.799249709 +0200 +@@ -631,9 +631,12 @@ mm_answer_moduli(int sock, Buffer *m) + return (0); + } else { + /* Send first bignum */ ++ const BIGNUM *p, *g; ++ ++ DH_get0_pqg(dh, &p, NULL, &g); + if ((r = sshbuf_put_u8(m, 1)) != 0 || +- (r = sshbuf_put_bignum2(m, dh->p)) != 0 || +- (r = sshbuf_put_bignum2(m, dh->g)) != 0) ++ (r = sshbuf_put_bignum2(m, p)) != 0 || ++ (r = sshbuf_put_bignum2(m, g)) != 0) + fatal("%s: buffer error: %s", __func__, ssh_err(r)); + + DH_free(dh); +diff -up openssh/openbsd-compat/openssl-compat.c.openssl openssh/openbsd-compat/openssl-compat.c +--- openssh/openbsd-compat/openssl-compat.c.openssl 2017-09-19 06:26:43.000000000 +0200 ++++ openssh/openbsd-compat/openssl-compat.c 2017-09-26 13:19:31.799249709 +0200 +@@ -70,12 +70,19 @@ ssh_compatible_openssl(long headerver, l + void + ssh_OpenSSL_add_all_algorithms(void) + { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + OpenSSL_add_all_algorithms(); + + /* Enable use of crypto hardware */ + ENGINE_load_builtin_engines(); ++#if OPENSSL_VERSION_NUMBER < 0x10001000L + ENGINE_register_all_complete(); ++#endif + OPENSSL_config(NULL); ++#else ++ OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS | ++ OPENSSL_INIT_ADD_ALL_DIGESTS | OPENSSL_INIT_LOAD_CONFIG, NULL); ++#endif + } + #endif + +diff -up openssh/pam_ssh_agent_auth-0.10.3/configure.ac.openssl openssh/pam_ssh_agent_auth-0.10.3/configure.ac +--- openssh/pam_ssh_agent_auth-0.10.3/configure.ac.openssl 2016-11-13 04:24:32.000000000 +0100 ++++ openssh/pam_ssh_agent_auth-0.10.3/configure.ac 2017-09-26 13:19:31.799249709 +0200 +@@ -1829,6 +1829,7 @@ AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ + #include + #include ++#include + int main(void) { exit(SSLeay() == OPENSSL_VERSION_NUMBER ? 0 : 1); } + ]])], + [ +diff -up openssh/regress/unittests/sshkey/test_file.c.openssl openssh/regress/unittests/sshkey/test_file.c +--- openssh/regress/unittests/sshkey/test_file.c.openssl 2017-09-19 06:26:43.000000000 +0200 ++++ openssh/regress/unittests/sshkey/test_file.c 2017-09-26 13:19:31.799249709 +0200 +@@ -46,6 +46,7 @@ sshkey_file_tests(void) + struct sshbuf *buf, *pw; + BIGNUM *a, *b, *c; + char *cp; ++ const BIGNUM *n, *p, *q, *g, *pub_key, *priv_key; + + TEST_START("load passphrase"); + pw = load_text_file("pw"); +@@ -60,9 +61,11 @@ sshkey_file_tests(void) + a = load_bignum("rsa_1.param.n"); + b = load_bignum("rsa_1.param.p"); + c = load_bignum("rsa_1.param.q"); +- ASSERT_BIGNUM_EQ(k1->rsa->n, a); +- ASSERT_BIGNUM_EQ(k1->rsa->p, b); +- ASSERT_BIGNUM_EQ(k1->rsa->q, c); ++ RSA_get0_key(k1->rsa, &n, NULL, NULL); ++ RSA_get0_factors(k1->rsa, &p, &q); ++ ASSERT_BIGNUM_EQ(n, a); ++ ASSERT_BIGNUM_EQ(p, b); ++ ASSERT_BIGNUM_EQ(q, c); + BN_free(a); + BN_free(b); + BN_free(c); +@@ -151,9 +154,11 @@ sshkey_file_tests(void) + a = load_bignum("dsa_1.param.g"); + b = load_bignum("dsa_1.param.priv"); + c = load_bignum("dsa_1.param.pub"); +- ASSERT_BIGNUM_EQ(k1->dsa->g, a); +- ASSERT_BIGNUM_EQ(k1->dsa->priv_key, b); +- ASSERT_BIGNUM_EQ(k1->dsa->pub_key, c); ++ DSA_get0_pqg(k1->dsa, NULL, NULL, &g); ++ DSA_get0_key(k1->dsa, &pub_key, &priv_key); ++ ASSERT_BIGNUM_EQ(g, a); ++ ASSERT_BIGNUM_EQ(priv_key, b); ++ ASSERT_BIGNUM_EQ(pub_key, c); + BN_free(a); + BN_free(b); + BN_free(c); +diff -up openssh/regress/unittests/sshkey/test_sshkey.c.openssl openssh/regress/unittests/sshkey/test_sshkey.c +--- openssh/regress/unittests/sshkey/test_sshkey.c.openssl 2017-09-19 06:26:43.000000000 +0200 ++++ openssh/regress/unittests/sshkey/test_sshkey.c 2017-09-26 13:19:31.800249715 +0200 +@@ -197,9 +197,6 @@ sshkey_tests(void) + k1 = sshkey_new(KEY_RSA); + ASSERT_PTR_NE(k1, NULL); + ASSERT_PTR_NE(k1->rsa, NULL); +- ASSERT_PTR_NE(k1->rsa->n, NULL); +- ASSERT_PTR_NE(k1->rsa->e, NULL); +- ASSERT_PTR_EQ(k1->rsa->p, NULL); + sshkey_free(k1); + TEST_DONE(); + +@@ -207,8 +204,6 @@ sshkey_tests(void) + k1 = sshkey_new(KEY_DSA); + ASSERT_PTR_NE(k1, NULL); + ASSERT_PTR_NE(k1->dsa, NULL); +- ASSERT_PTR_NE(k1->dsa->g, NULL); +- ASSERT_PTR_EQ(k1->dsa->priv_key, NULL); + sshkey_free(k1); + TEST_DONE(); + +@@ -234,9 +229,6 @@ sshkey_tests(void) + k1 = sshkey_new_private(KEY_RSA); + ASSERT_PTR_NE(k1, NULL); + ASSERT_PTR_NE(k1->rsa, NULL); +- ASSERT_PTR_NE(k1->rsa->n, NULL); +- ASSERT_PTR_NE(k1->rsa->e, NULL); +- ASSERT_PTR_NE(k1->rsa->p, NULL); + ASSERT_INT_EQ(sshkey_add_private(k1), 0); + sshkey_free(k1); + TEST_DONE(); +@@ -245,8 +237,6 @@ sshkey_tests(void) + k1 = sshkey_new_private(KEY_DSA); + ASSERT_PTR_NE(k1, NULL); + ASSERT_PTR_NE(k1->dsa, NULL); +- ASSERT_PTR_NE(k1->dsa->g, NULL); +- ASSERT_PTR_NE(k1->dsa->priv_key, NULL); + ASSERT_INT_EQ(sshkey_add_private(k1), 0); + sshkey_free(k1); + TEST_DONE(); +@@ -285,18 +275,13 @@ sshkey_tests(void) + ASSERT_INT_EQ(sshkey_generate(KEY_RSA, 1024, &kr), 0); + ASSERT_PTR_NE(kr, NULL); + ASSERT_PTR_NE(kr->rsa, NULL); +- ASSERT_PTR_NE(kr->rsa->n, NULL); +- ASSERT_PTR_NE(kr->rsa->e, NULL); +- ASSERT_PTR_NE(kr->rsa->p, NULL); +- ASSERT_INT_EQ(BN_num_bits(kr->rsa->n), 1024); ++ ASSERT_INT_EQ(RSA_bits(kr->rsa), 1024); + TEST_DONE(); + + TEST_START("generate KEY_DSA"); + ASSERT_INT_EQ(sshkey_generate(KEY_DSA, 1024, &kd), 0); + ASSERT_PTR_NE(kd, NULL); + ASSERT_PTR_NE(kd->dsa, NULL); +- ASSERT_PTR_NE(kd->dsa->g, NULL); +- ASSERT_PTR_NE(kd->dsa->priv_key, NULL); + TEST_DONE(); + + #ifdef OPENSSL_HAS_ECC +@@ -323,9 +308,6 @@ sshkey_tests(void) + ASSERT_PTR_NE(kr, k1); + ASSERT_INT_EQ(k1->type, KEY_RSA); + ASSERT_PTR_NE(k1->rsa, NULL); +- ASSERT_PTR_NE(k1->rsa->n, NULL); +- ASSERT_PTR_NE(k1->rsa->e, NULL); +- ASSERT_PTR_EQ(k1->rsa->p, NULL); + TEST_DONE(); + + TEST_START("equal KEY_RSA/demoted KEY_RSA"); +@@ -339,8 +321,6 @@ sshkey_tests(void) + ASSERT_PTR_NE(kd, k1); + ASSERT_INT_EQ(k1->type, KEY_DSA); + ASSERT_PTR_NE(k1->dsa, NULL); +- ASSERT_PTR_NE(k1->dsa->g, NULL); +- ASSERT_PTR_EQ(k1->dsa->priv_key, NULL); + TEST_DONE(); + + TEST_START("equal KEY_DSA/demoted KEY_DSA"); +diff -up openssh/ssh.c.openssl openssh/ssh.c +--- openssh/ssh.c.openssl 2017-09-26 13:19:31.786249629 +0200 ++++ openssh/ssh.c 2017-09-26 13:19:31.800249715 +0200 +@@ -530,7 +530,9 @@ main(int ac, char **av) + sanitise_stdfd(); + + __progname = ssh_get_progname(av[0]); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + SSLeay_add_all_algorithms(); ++#endif + if (access("/etc/system-fips", F_OK) == 0) + if (! FIPSCHECK_verify(NULL, NULL)){ + if (FIPS_mode()) +diff -up openssh/sshd.c.openssl openssh/sshd.c +--- openssh/sshd.c.openssl 2017-09-26 13:19:31.792249666 +0200 ++++ openssh/sshd.c 2017-09-26 13:19:31.801249721 +0200 +@@ -1485,7 +1485,7 @@ main(int ac, char **av) + #endif + __progname = ssh_get_progname(av[0]); + +- SSLeay_add_all_algorithms(); ++ OpenSSL_add_all_algorithms(); + if (access("/etc/system-fips", F_OK) == 0) + if (! FIPSCHECK_verify(NULL, NULL)) { + openlog(__progname, LOG_PID, LOG_AUTHPRIV); +diff -up openssh/ssh-dss.c.openssl openssh/ssh-dss.c +--- openssh/ssh-dss.c.openssl 2017-09-19 06:26:43.000000000 +0200 ++++ openssh/ssh-dss.c 2017-09-26 13:19:31.801249721 +0200 +@@ -55,6 +55,7 @@ ssh_dss_sign(const struct sshkey *key, u + size_t rlen, slen, len, dlen = ssh_digest_bytes(SSH_DIGEST_SHA1); + struct sshbuf *b = NULL; + int ret = SSH_ERR_INVALID_ARGUMENT; ++ const BIGNUM *r, *s; + + if (lenp != NULL) + *lenp = 0; +@@ -76,15 +77,16 @@ ssh_dss_sign(const struct sshkey *key, u + goto out; + } + +- rlen = BN_num_bytes(sig->r); +- slen = BN_num_bytes(sig->s); ++ DSA_SIG_get0(sig, &r, &s); ++ rlen = BN_num_bytes(r); ++ slen = BN_num_bytes(s); + if (rlen > INTBLOB_LEN || slen > INTBLOB_LEN) { + ret = SSH_ERR_INTERNAL_ERROR; + goto out; + } + explicit_bzero(sigblob, SIGBLOB_LEN); +- BN_bn2bin(sig->r, sigblob + SIGBLOB_LEN - INTBLOB_LEN - rlen); +- BN_bn2bin(sig->s, sigblob + SIGBLOB_LEN - slen); ++ BN_bn2bin(r, sigblob + SIGBLOB_LEN - INTBLOB_LEN - rlen); ++ BN_bn2bin(s, sigblob + SIGBLOB_LEN - slen); + + if ((b = sshbuf_new()) == NULL) { + ret = SSH_ERR_ALLOC_FAIL; +@@ -137,6 +139,7 @@ ssh_dss_verify(const struct sshkey *key, + int ret = SSH_ERR_INTERNAL_ERROR; + struct sshbuf *b = NULL; + char *ktype = NULL; ++ BIGNUM *r = NULL, *s = NULL; + + if (key == NULL || key->dsa == NULL || + sshkey_type_plain(key->type) != KEY_DSA || +@@ -177,16 +180,19 @@ ssh_dss_verify(const struct sshkey *key, + + /* parse signature */ + if ((sig = DSA_SIG_new()) == NULL || +- (sig->r = BN_new()) == NULL || +- (sig->s = BN_new()) == NULL) { ++ (r = BN_new()) == NULL || ++ (s = BN_new()) == NULL) { + ret = SSH_ERR_ALLOC_FAIL; + goto out; + } +- if ((BN_bin2bn(sigblob, INTBLOB_LEN, sig->r) == NULL) || +- (BN_bin2bn(sigblob+ INTBLOB_LEN, INTBLOB_LEN, sig->s) == NULL)) { ++ if ((BN_bin2bn(sigblob, INTBLOB_LEN, r) == NULL) || ++ (BN_bin2bn(sigblob+ INTBLOB_LEN, INTBLOB_LEN, s) == NULL) || ++ (DSA_SIG_set0(sig, r, s) == 0)) { + ret = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } ++ r = NULL; ++ s = NULL; + + /* sha1 the data */ + if ((ret = ssh_digest_memory(SSH_DIGEST_SHA1, data, datalen, +@@ -207,7 +213,9 @@ ssh_dss_verify(const struct sshkey *key, + + out: + explicit_bzero(digest, sizeof(digest)); ++ BN_free(r); ++ BN_free(s); + DSA_SIG_free(sig); + sshbuf_free(b); + free(ktype); + if (sigblob != NULL) { +diff -up openssh/ssh-ecdsa.c.openssl openssh/ssh-ecdsa.c +--- openssh/ssh-ecdsa.c.openssl 2017-09-19 06:26:43.000000000 +0200 ++++ openssh/ssh-ecdsa.c 2017-09-26 13:19:31.801249721 +0200 +@@ -54,6 +54,7 @@ ssh_ecdsa_sign(const struct sshkey *key, + size_t len, dlen; + struct sshbuf *b = NULL, *bb = NULL; + int ret = SSH_ERR_INTERNAL_ERROR; ++ const BIGNUM *r, *s; + + if (lenp != NULL) + *lenp = 0; +@@ -80,8 +81,9 @@ ssh_ecdsa_sign(const struct sshkey *key, + ret = SSH_ERR_ALLOC_FAIL; + goto out; + } +- if ((ret = sshbuf_put_bignum2(bb, sig->r)) != 0 || +- (ret = sshbuf_put_bignum2(bb, sig->s)) != 0) ++ ECDSA_SIG_get0(sig, &r, &s); ++ if ((ret = sshbuf_put_bignum2(bb, r)) != 0 || ++ (ret = sshbuf_put_bignum2(bb, s)) != 0) + goto out; + if ((ret = sshbuf_put_cstring(b, sshkey_ssh_name_plain(key))) != 0 || + (ret = sshbuf_put_stringb(b, bb)) != 0) +@@ -119,6 +121,7 @@ ssh_ecdsa_verify(const struct sshkey *ke + int ret = SSH_ERR_INTERNAL_ERROR; + struct sshbuf *b = NULL, *sigbuf = NULL; + char *ktype = NULL; ++ BIGNUM *r = NULL, *s = NULL; + + if (key == NULL || key->ecdsa == NULL || + sshkey_type_plain(key->type) != KEY_ECDSA || +@@ -147,15 +150,23 @@ ssh_ecdsa_verify(const struct sshkey *ke + } + + /* parse signature */ +- if ((sig = ECDSA_SIG_new()) == NULL) { ++ if ((sig = ECDSA_SIG_new()) == NULL || ++ (r = BN_new()) == NULL || ++ (s = BN_new()) == NULL) { + ret = SSH_ERR_ALLOC_FAIL; + goto out; + } +- if (sshbuf_get_bignum2(sigbuf, sig->r) != 0 || +- sshbuf_get_bignum2(sigbuf, sig->s) != 0) { ++ if (sshbuf_get_bignum2(sigbuf, r) != 0 || ++ sshbuf_get_bignum2(sigbuf, s) != 0) { + ret = SSH_ERR_INVALID_FORMAT; + goto out; + } ++ if (ECDSA_SIG_set0(sig, r, s) == 0) { ++ ret = SSH_ERR_LIBCRYPTO_ERROR; ++ goto out; ++ } ++ r = NULL; ++ s = NULL; + if (sshbuf_len(sigbuf) != 0) { + ret = SSH_ERR_UNEXPECTED_TRAILING_DATA; + goto out; +@@ -180,7 +191,9 @@ ssh_ecdsa_verify(const struct sshkey *ke + explicit_bzero(digest, sizeof(digest)); + sshbuf_free(sigbuf); + sshbuf_free(b); ++ BN_free(r); ++ BN_free(s); + ECDSA_SIG_free(sig); + free(ktype); + return ret; + } +diff -up openssh/sshkey.c.openssl openssh/sshkey.c +--- openssh/sshkey.c.openssl 2017-09-26 13:19:31.786249629 +0200 ++++ openssh/sshkey.c 2017-09-26 13:19:31.802249728 +0200 +@@ -267,10 +267,10 @@ sshkey_size(const struct sshkey *k) + #ifdef WITH_OPENSSL + case KEY_RSA: + case KEY_RSA_CERT: +- return BN_num_bits(k->rsa->n); ++ return RSA_bits(k->rsa); + case KEY_DSA: + case KEY_DSA_CERT: +- return BN_num_bits(k->dsa->p); ++ return DSA_bits(k->dsa); + case KEY_ECDSA: + case KEY_ECDSA_CERT: + return sshkey_curve_nid_to_bits(k->ecdsa_nid); +@@ -302,11 +302,17 @@ sshkey_is_private(const struct sshkey *k + switch (k->type) { + #ifdef WITH_OPENSSL + case KEY_RSA_CERT: +- case KEY_RSA: +- return k->rsa->d != NULL; ++ case KEY_RSA: { ++ const BIGNUM *d; ++ RSA_get0_key(k->rsa, NULL, NULL, &d); ++ return d != NULL; ++ } + case KEY_DSA_CERT: +- case KEY_DSA: +- return k->dsa->priv_key != NULL; ++ case KEY_DSA: { ++ const BIGNUM *priv_key; ++ DSA_get0_key(k->dsa, NULL, &priv_key); ++ return priv_key != NULL; ++ } + #ifdef OPENSSL_HAS_ECC + case KEY_ECDSA_CERT: + case KEY_ECDSA: +@@ -496,10 +501,7 @@ sshkey_new(int type) + #ifdef WITH_OPENSSL + case KEY_RSA: + case KEY_RSA_CERT: +- if ((rsa = RSA_new()) == NULL || +- (rsa->n = BN_new()) == NULL || +- (rsa->e = BN_new()) == NULL) { +- RSA_free(rsa); ++ if ((rsa = RSA_new()) == NULL) { + free(k); + return NULL; + } +@@ -508,12 +509,7 @@ sshkey_new(int type) + break; + case KEY_DSA: + case KEY_DSA_CERT: +- if ((dsa = DSA_new()) == NULL || +- (dsa->p = BN_new()) == NULL || +- (dsa->q = BN_new()) == NULL || +- (dsa->g = BN_new()) == NULL || +- (dsa->pub_key = BN_new()) == NULL) { +- DSA_free(dsa); ++ if ((dsa = DSA_new()) == NULL) { + free(k); + return NULL; + } +@@ -553,21 +548,10 @@ sshkey_add_private(struct sshkey *k) + #ifdef WITH_OPENSSL + case KEY_RSA: + case KEY_RSA_CERT: +-#define bn_maybe_alloc_failed(p) (p == NULL && (p = BN_new()) == NULL) +- if (bn_maybe_alloc_failed(k->rsa->d) || +- bn_maybe_alloc_failed(k->rsa->iqmp) || +- bn_maybe_alloc_failed(k->rsa->q) || +- bn_maybe_alloc_failed(k->rsa->p) || +- bn_maybe_alloc_failed(k->rsa->dmq1) || +- bn_maybe_alloc_failed(k->rsa->dmp1)) +- return SSH_ERR_ALLOC_FAIL; + break; + case KEY_DSA: + case KEY_DSA_CERT: +- if (bn_maybe_alloc_failed(k->dsa->priv_key)) +- return SSH_ERR_ALLOC_FAIL; + break; +-#undef bn_maybe_alloc_failed + case KEY_ECDSA: + case KEY_ECDSA_CERT: + /* Cannot do anything until we know the group */ +@@ -684,17 +668,31 @@ sshkey_equal_public(const struct sshkey + switch (a->type) { + #ifdef WITH_OPENSSL + case KEY_RSA_CERT: +- case KEY_RSA: +- return a->rsa != NULL && b->rsa != NULL && +- BN_cmp(a->rsa->e, b->rsa->e) == 0 && +- BN_cmp(a->rsa->n, b->rsa->n) == 0; ++ case KEY_RSA: { ++ const BIGNUM *a_e, *a_n, *b_e, *b_n; ++ ++ if (a->rsa == NULL || b->rsa == NULL) ++ return 0; ++ RSA_get0_key(a->rsa, &a_n, &a_e, NULL); ++ RSA_get0_key(b->rsa, &b_n, &b_e, NULL); ++ return BN_cmp(a_e, b_e) == 0 && BN_cmp(a_n, b_n) == 0; ++ } + case KEY_DSA_CERT: +- case KEY_DSA: +- return a->dsa != NULL && b->dsa != NULL && +- BN_cmp(a->dsa->p, b->dsa->p) == 0 && +- BN_cmp(a->dsa->q, b->dsa->q) == 0 && +- BN_cmp(a->dsa->g, b->dsa->g) == 0 && +- BN_cmp(a->dsa->pub_key, b->dsa->pub_key) == 0; ++ case KEY_DSA: { ++ const BIGNUM *a_p, *a_q, *a_g, *a_pub_key; ++ const BIGNUM *b_p, *b_q, *b_g, *b_pub_key; ++ ++ if (a->dsa == NULL || b->dsa == NULL) ++ return 0; ++ DSA_get0_pqg(a->dsa, &a_p, &a_q, &a_g); ++ DSA_get0_key(a->dsa, &a_pub_key, NULL); ++ DSA_get0_pqg(b->dsa, &b_p, &b_q, &b_g); ++ DSA_get0_key(b->dsa, &b_pub_key, NULL); ++ return BN_cmp(a_p, b_p) == 0 && ++ BN_cmp(a_q, b_q) == 0 && ++ BN_cmp(a_g, b_g) == 0 && ++ BN_cmp(a_pub_key, b_pub_key) == 0; ++ } + # ifdef OPENSSL_HAS_ECC + case KEY_ECDSA_CERT: + case KEY_ECDSA: +@@ -769,15 +767,21 @@ to_blob_buf(const struct sshkey *key, st + return ret; + break; + #ifdef WITH_OPENSSL +- case KEY_DSA: +- if (key->dsa == NULL) +- return SSH_ERR_INVALID_ARGUMENT; +- if ((ret = sshbuf_put_cstring(b, typename)) != 0 || +- (ret = sshbuf_put_bignum2(b, key->dsa->p)) != 0 || +- (ret = sshbuf_put_bignum2(b, key->dsa->q)) != 0 || +- (ret = sshbuf_put_bignum2(b, key->dsa->g)) != 0 || +- (ret = sshbuf_put_bignum2(b, key->dsa->pub_key)) != 0) +- return ret; ++ case KEY_DSA: { ++ const BIGNUM *p, *q, *g, *pub_key; ++ ++ if (key->dsa == NULL) ++ return SSH_ERR_INVALID_ARGUMENT; ++ ++ DSA_get0_pqg(key->dsa, &p, &q, &g); ++ DSA_get0_key(key->dsa, &pub_key, NULL); ++ if ((ret = sshbuf_put_cstring(b, typename)) != 0 || ++ (ret = sshbuf_put_bignum2(b, p)) != 0 || ++ (ret = sshbuf_put_bignum2(b, q)) != 0 || ++ (ret = sshbuf_put_bignum2(b, g)) != 0 || ++ (ret = sshbuf_put_bignum2(b, pub_key)) != 0) ++ return ret; ++ } + break; + # ifdef OPENSSL_HAS_ECC + case KEY_ECDSA: +@@ -790,13 +794,18 @@ to_blob_buf(const struct sshkey *key, st + return ret; + break; + # endif +- case KEY_RSA: +- if (key->rsa == NULL) +- return SSH_ERR_INVALID_ARGUMENT; +- if ((ret = sshbuf_put_cstring(b, typename)) != 0 || +- (ret = sshbuf_put_bignum2(b, key->rsa->e)) != 0 || +- (ret = sshbuf_put_bignum2(b, key->rsa->n)) != 0) +- return ret; ++ case KEY_RSA: { ++ const BIGNUM *e, *n; ++ ++ if (key->rsa == NULL) ++ return SSH_ERR_INVALID_ARGUMENT; ++ ++ RSA_get0_key(key->rsa, &n, &e, NULL); ++ if ((ret = sshbuf_put_cstring(b, typename)) != 0 || ++ (ret = sshbuf_put_bignum2(b, e)) != 0 || ++ (ret = sshbuf_put_bignum2(b, n)) != 0) ++ return ret; ++ } + break; + #endif /* WITH_OPENSSL */ + case KEY_ED25519: +@@ -1672,15 +1681,32 @@ sshkey_from_private(const struct sshkey + switch (k->type) { + #ifdef WITH_OPENSSL + case KEY_DSA: +- case KEY_DSA_CERT: +- if ((n = sshkey_new(k->type)) == NULL) +- return SSH_ERR_ALLOC_FAIL; +- if ((BN_copy(n->dsa->p, k->dsa->p) == NULL) || +- (BN_copy(n->dsa->q, k->dsa->q) == NULL) || +- (BN_copy(n->dsa->g, k->dsa->g) == NULL) || +- (BN_copy(n->dsa->pub_key, k->dsa->pub_key) == NULL)) { +- sshkey_free(n); +- return SSH_ERR_ALLOC_FAIL; ++ case KEY_DSA_CERT: { ++ const BIGNUM *k_p, *k_q, *k_g, *k_pub_key; ++ BIGNUM *n_p = NULL, *n_q = NULL, *n_g = NULL, *n_pub_key = NULL; ++ ++ if ((n = sshkey_new(k->type)) == NULL) ++ return SSH_ERR_ALLOC_FAIL; ++ ++ DSA_get0_pqg(k->dsa, &k_p, &k_q, &k_g); ++ DSA_get0_key(k->dsa, &k_pub_key, NULL); ++ ++ if (((n_p = BN_dup(k_p)) == NULL) || ++ ((n_q = BN_dup(k_q)) == NULL) || ++ ((n_g = BN_dup(k_g)) == NULL) || ++ (DSA_set0_pqg(n->dsa, n_p, n_q, n_g) == 0)) { ++ sshkey_free(n); ++ BN_free(n_p); ++ BN_free(n_q); ++ BN_free(n_g); ++ return SSH_ERR_ALLOC_FAIL; ++ } ++ if (((n_pub_key = BN_dup(k_pub_key)) == NULL) || ++ (DSA_set0_key(n->dsa, n_pub_key, NULL) == 0)) { ++ sshkey_free(n); ++ BN_free(n_pub_key); ++ return SSH_ERR_ALLOC_FAIL; ++ } + } + break; + # ifdef OPENSSL_HAS_ECC +@@ -1702,13 +1728,22 @@ sshkey_from_private(const struct sshkey + break; + # endif /* OPENSSL_HAS_ECC */ + case KEY_RSA: +- case KEY_RSA_CERT: +- if ((n = sshkey_new(k->type)) == NULL) +- return SSH_ERR_ALLOC_FAIL; +- if ((BN_copy(n->rsa->n, k->rsa->n) == NULL) || +- (BN_copy(n->rsa->e, k->rsa->e) == NULL)) { +- sshkey_free(n); +- return SSH_ERR_ALLOC_FAIL; ++ case KEY_RSA_CERT: { ++ const BIGNUM *k_n, *k_e; ++ BIGNUM *n_n = NULL, *n_e = NULL; ++ ++ if ((n = sshkey_new(k->type)) == NULL) ++ return SSH_ERR_ALLOC_FAIL; ++ ++ RSA_get0_key(k->rsa, &k_n, &k_e, NULL); ++ if (((n_n = BN_dup(k_n)) == NULL) || ++ ((n_e = BN_dup(k_e)) == NULL) || ++ RSA_set0_key(n->rsa, n_n, n_e, NULL) == 0) { ++ sshkey_free(n); ++ BN_free(n_n); ++ BN_free(n_e); ++ return SSH_ERR_ALLOC_FAIL; ++ } + } + break; + #endif /* WITH_OPENSSL */ +@@ -1907,12 +1942,22 @@ sshkey_from_blob_internal(struct sshbuf + ret = SSH_ERR_ALLOC_FAIL; + goto out; + } +- if (sshbuf_get_bignum2(b, key->rsa->e) != 0 || +- sshbuf_get_bignum2(b, key->rsa->n) != 0) { +- ret = SSH_ERR_INVALID_FORMAT; +- goto out; ++ { ++ BIGNUM *e, *n; ++ ++ e = BN_new(); ++ n = BN_new(); ++ if (e == NULL || n == NULL || ++ sshbuf_get_bignum2(b, e) != 0 || ++ sshbuf_get_bignum2(b, n) != 0 || ++ RSA_set0_key(key->rsa, n, e, NULL) == 0) { ++ BN_free(e); ++ BN_free(n); ++ ret = SSH_ERR_ALLOC_FAIL; ++ goto out; ++ } + } +- if (BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) { ++ if (RSA_bits(key->rsa) < SSH_RSA_MINIMUM_MODULUS_SIZE) { + ret = SSH_ERR_KEY_LENGTH; + goto out; + } +@@ -1932,12 +1977,34 @@ sshkey_from_blob_internal(struct sshbuf + ret = SSH_ERR_ALLOC_FAIL; + goto out; + } +- if (sshbuf_get_bignum2(b, key->dsa->p) != 0 || +- sshbuf_get_bignum2(b, key->dsa->q) != 0 || +- sshbuf_get_bignum2(b, key->dsa->g) != 0 || +- sshbuf_get_bignum2(b, key->dsa->pub_key) != 0) { +- ret = SSH_ERR_INVALID_FORMAT; +- goto out; ++ { ++ BIGNUM *p, *q, *g, *pub_key; ++ ++ p = BN_new(); ++ q = BN_new(); ++ g = BN_new(); ++ pub_key = BN_new(); ++ ++ if (p == NULL || q == NULL || g == NULL || ++ pub_key == NULL || ++ sshbuf_get_bignum2(b, p) != 0 || ++ sshbuf_get_bignum2(b, q) != 0 || ++ sshbuf_get_bignum2(b, g) != 0 || ++ sshbuf_get_bignum2(b, pub_key) != 0 || ++ DSA_set0_pqg(key->dsa, p, q, g) == 0) { ++ BN_free(p); ++ BN_free(q); ++ BN_free(g); ++ BN_free(pub_key); ++ ret = SSH_ERR_ALLOC_FAIL; ++ goto out; ++ } ++ ++ if (DSA_set0_key(key->dsa, pub_key, NULL) == 0) { ++ BN_free(pub_key); ++ ret = SSH_ERR_LIBCRYPTO_ERROR; ++ goto out; ++ } + } + #ifdef DEBUG_PK + DSA_print_fp(stderr, key->dsa, 8); +@@ -2171,26 +2238,53 @@ sshkey_demote(const struct sshkey *k, st + if ((ret = sshkey_cert_copy(k, pk)) != 0) + goto fail; + /* FALLTHROUGH */ +- case KEY_RSA: +- if ((pk->rsa = RSA_new()) == NULL || +- (pk->rsa->e = BN_dup(k->rsa->e)) == NULL || +- (pk->rsa->n = BN_dup(k->rsa->n)) == NULL) { +- ret = SSH_ERR_ALLOC_FAIL; +- goto fail; ++ case KEY_RSA: { ++ const BIGNUM *k_e, *k_n; ++ BIGNUM *pk_e = NULL, *pk_n = NULL; ++ ++ RSA_get0_key(k->rsa, &k_n, &k_e, NULL); ++ if ((pk->rsa = RSA_new()) == NULL || ++ (pk_e = BN_dup(k_e)) == NULL || ++ (pk_n = BN_dup(k_n)) == NULL || ++ RSA_set0_key(pk->rsa, pk_n, pk_e, NULL) == 0) { ++ BN_free(pk_e); ++ BN_free(pk_n); ++ ret = SSH_ERR_ALLOC_FAIL; ++ goto fail; + } ++ } + break; + case KEY_DSA_CERT: + if ((ret = sshkey_cert_copy(k, pk)) != 0) + goto fail; + /* FALLTHROUGH */ +- case KEY_DSA: +- if ((pk->dsa = DSA_new()) == NULL || +- (pk->dsa->p = BN_dup(k->dsa->p)) == NULL || +- (pk->dsa->q = BN_dup(k->dsa->q)) == NULL || +- (pk->dsa->g = BN_dup(k->dsa->g)) == NULL || +- (pk->dsa->pub_key = BN_dup(k->dsa->pub_key)) == NULL) { +- ret = SSH_ERR_ALLOC_FAIL; +- goto fail; ++ case KEY_DSA: { ++ const BIGNUM *k_p, *k_q, *k_g, *k_pub_key; ++ BIGNUM *pk_p = NULL, *pk_q = NULL, *pk_g = NULL; ++ BIGNUM *pk_pub_key = NULL; ++ ++ DSA_get0_pqg(k->dsa, &k_p, &k_q, &k_g); ++ DSA_get0_key(k->dsa, &k_pub_key, NULL); ++ ++ if ((pk->dsa = DSA_new()) == NULL || ++ (pk_p = BN_dup(k_p)) == NULL || ++ (pk_q = BN_dup(k_q)) == NULL || ++ (pk_g = BN_dup(k_g)) == NULL || ++ (pk_pub_key = BN_dup(k_pub_key)) == NULL || ++ DSA_set0_pqg(pk->dsa, pk_p, pk_q, pk_g) == 0) { ++ BN_free(pk_p); ++ BN_free(pk_q); ++ BN_free(pk_g); ++ BN_free(pk_pub_key); ++ ret = SSH_ERR_ALLOC_FAIL; ++ goto fail; ++ } ++ ++ if (DSA_set0_key(pk->dsa, pk_pub_key, NULL) == 0) { ++ BN_free(pk_pub_key); ++ ret = SSH_ERR_LIBCRYPTO_ERROR; ++ goto fail; ++ } + } + break; + case KEY_ECDSA_CERT: +@@ -2312,12 +2406,17 @@ sshkey_certify_custom(struct sshkey *k, + /* XXX this substantially duplicates to_blob(); refactor */ + switch (k->type) { + #ifdef WITH_OPENSSL +- case KEY_DSA_CERT: +- if ((ret = sshbuf_put_bignum2(cert, k->dsa->p)) != 0 || +- (ret = sshbuf_put_bignum2(cert, k->dsa->q)) != 0 || +- (ret = sshbuf_put_bignum2(cert, k->dsa->g)) != 0 || +- (ret = sshbuf_put_bignum2(cert, k->dsa->pub_key)) != 0) +- goto out; ++ case KEY_DSA_CERT: { ++ const BIGNUM *p, *q, *g, *pub_key; ++ ++ DSA_get0_pqg(k->dsa, &p, &q, &g); ++ DSA_get0_key(k->dsa, &pub_key, NULL); ++ if ((ret = sshbuf_put_bignum2(cert, p)) != 0 || ++ (ret = sshbuf_put_bignum2(cert, q)) != 0 || ++ (ret = sshbuf_put_bignum2(cert, g)) != 0 || ++ (ret = sshbuf_put_bignum2(cert, pub_key)) != 0) ++ goto out; ++ } + break; + # ifdef OPENSSL_HAS_ECC + case KEY_ECDSA_CERT: +@@ -2329,10 +2428,15 @@ sshkey_certify_custom(struct sshkey *k, + goto out; + break; + # endif /* OPENSSL_HAS_ECC */ +- case KEY_RSA_CERT: +- if ((ret = sshbuf_put_bignum2(cert, k->rsa->e)) != 0 || +- (ret = sshbuf_put_bignum2(cert, k->rsa->n)) != 0) +- goto out; ++ case KEY_RSA_CERT: { ++ const BIGNUM *e, *n; ++ ++ RSA_get0_key(k->rsa, &n, &e, NULL); ++ if (e == NULL || n == NULL || ++ (ret = sshbuf_put_bignum2(cert, e)) != 0 || ++ (ret = sshbuf_put_bignum2(cert, n)) != 0) ++ goto out; ++ } + break; + #endif /* WITH_OPENSSL */ + case KEY_ED25519_CERT: +@@ -2505,43 +2609,65 @@ sshkey_private_serialize(const struct ss + goto out; + switch (key->type) { + #ifdef WITH_OPENSSL +- case KEY_RSA: +- if ((r = sshbuf_put_bignum2(b, key->rsa->n)) != 0 || +- (r = sshbuf_put_bignum2(b, key->rsa->e)) != 0 || +- (r = sshbuf_put_bignum2(b, key->rsa->d)) != 0 || +- (r = sshbuf_put_bignum2(b, key->rsa->iqmp)) != 0 || +- (r = sshbuf_put_bignum2(b, key->rsa->p)) != 0 || +- (r = sshbuf_put_bignum2(b, key->rsa->q)) != 0) +- goto out; ++ case KEY_RSA: { ++ const BIGNUM *n, *e, *d, *iqmp, *p, *q; ++ RSA_get0_key(key->rsa, &n, &e, &d); ++ RSA_get0_crt_params(key->rsa, NULL, NULL, &iqmp); ++ RSA_get0_factors(key->rsa, &p, &q); ++ if ((r = sshbuf_put_bignum2(b, n)) != 0 || ++ (r = sshbuf_put_bignum2(b, e)) != 0 || ++ (r = sshbuf_put_bignum2(b, d)) != 0 || ++ (r = sshbuf_put_bignum2(b, iqmp)) != 0 || ++ (r = sshbuf_put_bignum2(b, p)) != 0 || ++ (r = sshbuf_put_bignum2(b, q)) != 0) ++ goto out; ++ } + break; + case KEY_RSA_CERT: + if (key->cert == NULL || sshbuf_len(key->cert->certblob) == 0) { + r = SSH_ERR_INVALID_ARGUMENT; + goto out; + } +- if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0 || +- (r = sshbuf_put_bignum2(b, key->rsa->d)) != 0 || +- (r = sshbuf_put_bignum2(b, key->rsa->iqmp)) != 0 || +- (r = sshbuf_put_bignum2(b, key->rsa->p)) != 0 || +- (r = sshbuf_put_bignum2(b, key->rsa->q)) != 0) +- goto out; ++ { ++ const BIGNUM *d, *iqmp, *p, *q; ++ ++ RSA_get0_key(key->rsa, NULL, NULL, &d); ++ RSA_get0_factors(key->rsa, &p, &q); ++ RSA_get0_crt_params(key->rsa, NULL, NULL, &iqmp); ++ if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0 || ++ (r = sshbuf_put_bignum2(b, d)) != 0 || ++ (r = sshbuf_put_bignum2(b, iqmp)) != 0 || ++ (r = sshbuf_put_bignum2(b, p)) != 0 || ++ (r = sshbuf_put_bignum2(b, q)) != 0) ++ goto out; ++ } + break; +- case KEY_DSA: +- if ((r = sshbuf_put_bignum2(b, key->dsa->p)) != 0 || +- (r = sshbuf_put_bignum2(b, key->dsa->q)) != 0 || +- (r = sshbuf_put_bignum2(b, key->dsa->g)) != 0 || +- (r = sshbuf_put_bignum2(b, key->dsa->pub_key)) != 0 || +- (r = sshbuf_put_bignum2(b, key->dsa->priv_key)) != 0) +- goto out; ++ case KEY_DSA: { ++ const BIGNUM *p, *q, *g, *pub_key, *priv_key; ++ ++ DSA_get0_pqg(key->dsa, &p, &q, &g); ++ DSA_get0_key(key->dsa, &pub_key, &priv_key); ++ if ((r = sshbuf_put_bignum2(b, p)) != 0 || ++ (r = sshbuf_put_bignum2(b, q)) != 0 || ++ (r = sshbuf_put_bignum2(b, g)) != 0 || ++ (r = sshbuf_put_bignum2(b, pub_key)) != 0 || ++ (r = sshbuf_put_bignum2(b, priv_key)) != 0) ++ goto out; ++ } + break; + case KEY_DSA_CERT: + if (key->cert == NULL || sshbuf_len(key->cert->certblob) == 0) { + r = SSH_ERR_INVALID_ARGUMENT; + goto out; + } +- if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0 || +- (r = sshbuf_put_bignum2(b, key->dsa->priv_key)) != 0) +- goto out; ++ { ++ const BIGNUM *priv_key; ++ ++ DSA_get0_key(key->dsa, NULL, &priv_key); ++ if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0 || ++ (r = sshbuf_put_bignum2(b, priv_key)) != 0) ++ goto out; ++ } + break; + # ifdef OPENSSL_HAS_ECC + case KEY_ECDSA: +@@ -2617,18 +2743,51 @@ sshkey_private_deserialize(struct sshbuf + r = SSH_ERR_ALLOC_FAIL; + goto out; + } +- if ((r = sshbuf_get_bignum2(buf, k->dsa->p)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->dsa->q)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->dsa->g)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->dsa->pub_key)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->dsa->priv_key)) != 0) +- goto out; ++ { ++ BIGNUM *p, *q, *g, *pub_key, *priv_key; ++ ++ p = BN_new(); ++ q = BN_new(); ++ g = BN_new(); ++ pub_key = BN_new(); ++ priv_key = BN_new(); ++ if (p == NULL || q == NULL || g == NULL || ++ pub_key == NULL || priv_key == NULL || ++ (r = sshbuf_get_bignum2(buf, p)) != 0 || ++ (r = sshbuf_get_bignum2(buf, q)) != 0 || ++ (r = sshbuf_get_bignum2(buf, g)) != 0 || ++ (r = sshbuf_get_bignum2(buf, pub_key)) != 0 || ++ (r = sshbuf_get_bignum2(buf, priv_key)) != 0 || ++ (r = ((DSA_set0_pqg(k->dsa, p, q, g) == 0) ++ ? SSH_ERR_LIBCRYPTO_ERROR : 0)) != 0) { ++ BN_free(p); ++ BN_free(q); ++ BN_free(g); ++ BN_free(pub_key); ++ BN_free(priv_key); ++ goto out; ++ } ++ if (DSA_set0_key(k->dsa, pub_key, priv_key) == 0) { ++ r = SSH_ERR_LIBCRYPTO_ERROR; ++ BN_free(pub_key); ++ BN_free(priv_key); ++ goto out; ++ } ++ } + break; +- case KEY_DSA_CERT: +- if ((r = sshkey_froms(buf, &k)) != 0 || +- (r = sshkey_add_private(k)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->dsa->priv_key)) != 0) +- goto out; ++ case KEY_DSA_CERT: { ++ BIGNUM *priv_key = BN_new(); ++ ++ if (priv_key == NULL || ++ (r = sshkey_froms(buf, &k)) != 0 || ++ (r = sshkey_add_private(k)) != 0 || ++ (r = sshbuf_get_bignum2(buf, priv_key)) != 0 || ++ (r = ((DSA_set0_key(k->dsa, NULL, priv_key) == 0) ++ ? SSH_ERR_LIBCRYPTO_ERROR : 0)) != 0) { ++ BN_free(priv_key); ++ goto out; ++ } ++ } + break; + # ifdef OPENSSL_HAS_ECC + case KEY_ECDSA: +@@ -2687,29 +2846,89 @@ sshkey_private_deserialize(struct sshbuf + r = SSH_ERR_ALLOC_FAIL; + goto out; + } +- if ((r = sshbuf_get_bignum2(buf, k->rsa->n)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->rsa->e)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->rsa->d)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->rsa->iqmp)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->rsa->p)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->rsa->q)) != 0 || +- (r = ssh_rsa_generate_additional_parameters(k)) != 0) +- goto out; +- if (BN_num_bits(k->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) { ++ { ++ BIGNUM *n, *e, *d, *iqmp, *p, *q; ++ ++ n = BN_new(); ++ e = BN_new(); ++ d = BN_new(); ++ iqmp = BN_new(); ++ p = BN_new(); ++ q = BN_new(); ++ ++ if (n == NULL || e == NULL || d == NULL || ++ iqmp == NULL || p == NULL || q == NULL || ++ (r = sshbuf_get_bignum2(buf, n)) != 0 || ++ (r = sshbuf_get_bignum2(buf, e)) != 0 || ++ (r = sshbuf_get_bignum2(buf, d)) != 0 || ++ (r = sshbuf_get_bignum2(buf, iqmp)) != 0 || ++ (r = sshbuf_get_bignum2(buf, p)) != 0 || ++ (r = sshbuf_get_bignum2(buf, q)) != 0 || ++ (r = ((RSA_set0_key(k->rsa, n, e, d) == 0) ++ ? SSH_ERR_LIBCRYPTO_ERROR : 0)) != 0) { ++ BN_free(n); ++ BN_free(e); ++ BN_free(d); ++ BN_free(iqmp); ++ BN_free(p); ++ BN_free(q); ++ goto out; ++ } ++ if (RSA_set0_factors(k->rsa, p, q) == 0) { ++ r = SSH_ERR_LIBCRYPTO_ERROR; ++ BN_free(iqmp); ++ BN_free(p); ++ BN_free(q); ++ goto out; ++ } ++ if ((r = ssh_rsa_generate_additional_parameters(k, iqmp)) != 0) { ++ BN_free(iqmp); ++ goto out; ++ } ++ } ++ if (RSA_bits(k->rsa) < SSH_RSA_MINIMUM_MODULUS_SIZE) { + r = SSH_ERR_KEY_LENGTH; + goto out; + } + break; +- case KEY_RSA_CERT: +- if ((r = sshkey_froms(buf, &k)) != 0 || +- (r = sshkey_add_private(k)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->rsa->d)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->rsa->iqmp)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->rsa->p)) != 0 || +- (r = sshbuf_get_bignum2(buf, k->rsa->q)) != 0 || +- (r = ssh_rsa_generate_additional_parameters(k)) != 0) +- goto out; +- if (BN_num_bits(k->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) { ++ case KEY_RSA_CERT: { ++ BIGNUM *d, *iqmp, *p, *q; ++ ++ /* N and E are already set so make sure we will not overwrite them */ ++ d = BN_new(); ++ iqmp = BN_new(); ++ p = BN_new(); ++ q = BN_new(); ++ ++ if (d == NULL || iqmp == NULL || p == NULL || ++ q == NULL || ++ (r = sshkey_froms(buf, &k)) != 0 || ++ (r = sshkey_add_private(k)) != 0 || ++ (r = sshbuf_get_bignum2(buf, d)) != 0 || ++ (r = sshbuf_get_bignum2(buf, iqmp)) != 0 || ++ (r = sshbuf_get_bignum2(buf, p)) != 0 || ++ (r = sshbuf_get_bignum2(buf, q)) != 0 || ++ (r = ((RSA_set0_key(k->rsa, NULL, NULL, d) == 0) ++ ? SSH_ERR_LIBCRYPTO_ERROR : 0)) != 0) { ++ BN_free(d); ++ BN_free(iqmp); ++ BN_free(p); ++ BN_free(q); ++ goto out; ++ } ++ if (RSA_set0_factors(k->rsa, p, q) == 0) { ++ r = SSH_ERR_LIBCRYPTO_ERROR; ++ BN_free(p); ++ BN_free(q); ++ goto out; ++ } ++ if (ssh_rsa_generate_additional_parameters(k, iqmp) != 0) { ++ r = SSH_ERR_LIBCRYPTO_ERROR; ++ free(iqmp); ++ goto out; ++ } ++ } ++ if (RSA_bits(k->rsa) < SSH_RSA_MINIMUM_MODULUS_SIZE) { + r = SSH_ERR_KEY_LENGTH; + goto out; + } +@@ -3427,7 +3646,9 @@ translate_libcrypto_error(unsigned long + switch (pem_reason) { + case EVP_R_BAD_DECRYPT: + return SSH_ERR_KEY_WRONG_PASSPHRASE; ++#ifdef EVP_R_BN_DECODE_ERROR + case EVP_R_BN_DECODE_ERROR: ++#endif + case EVP_R_DECODE_ERROR: + #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR + case EVP_R_PRIVATE_KEY_DECODE_ERROR: +@@ -3492,7 +3713,7 @@ sshkey_parse_private_pem_fileblob(struct + r = convert_libcrypto_error(); + goto out; + } +- if (pk->type == EVP_PKEY_RSA && ++ if (EVP_PKEY_id(pk) == EVP_PKEY_RSA && + (type == KEY_UNSPEC || type == KEY_RSA)) { + if ((prv = sshkey_new(KEY_UNSPEC)) == NULL) { + r = SSH_ERR_ALLOC_FAIL; +@@ -3507,11 +3728,11 @@ sshkey_parse_private_pem_fileblob(struct + r = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } +- if (BN_num_bits(prv->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) { ++ if (RSA_bits(prv->rsa) < SSH_RSA_MINIMUM_MODULUS_SIZE) { + r = SSH_ERR_KEY_LENGTH; + goto out; + } +- } else if (pk->type == EVP_PKEY_DSA && ++ } else if (EVP_PKEY_id(pk) == EVP_PKEY_DSA && + (type == KEY_UNSPEC || type == KEY_DSA)) { + if ((prv = sshkey_new(KEY_UNSPEC)) == NULL) { + r = SSH_ERR_ALLOC_FAIL; +@@ -3523,7 +3744,7 @@ sshkey_parse_private_pem_fileblob(struct + DSA_print_fp(stderr, prv->dsa, 8); + #endif + #ifdef OPENSSL_HAS_ECC +- } else if (pk->type == EVP_PKEY_EC && ++ } else if (EVP_PKEY_id(pk) == EVP_PKEY_EC && + (type == KEY_UNSPEC || type == KEY_ECDSA)) { + if ((prv = sshkey_new(KEY_UNSPEC)) == NULL) { + r = SSH_ERR_ALLOC_FAIL; +diff -up openssh/ssh-keygen.c.openssl openssh/ssh-keygen.c +--- openssh/ssh-keygen.c.openssl 2017-09-26 13:19:31.787249636 +0200 ++++ openssh/ssh-keygen.c 2017-09-26 13:19:31.802249728 +0200 +@@ -501,40 +501,67 @@ do_convert_private_ssh2_from_blob(u_char + free(type); + + switch (key->type) { +- case KEY_DSA: +- buffer_get_bignum_bits(b, key->dsa->p); +- buffer_get_bignum_bits(b, key->dsa->g); +- buffer_get_bignum_bits(b, key->dsa->q); +- buffer_get_bignum_bits(b, key->dsa->pub_key); +- buffer_get_bignum_bits(b, key->dsa->priv_key); ++ case KEY_DSA: { ++ BIGNUM *p = NULL, *g = NULL, *q = NULL, *pub_key = NULL, *priv_key = NULL; ++ ++ if ((p = BN_new()) == NULL || ++ (g = BN_new()) == NULL || ++ (q = BN_new()) == NULL || ++ (pub_key = BN_new()) == NULL || ++ (priv_key = BN_new()) == NULL) ++ fatal("BN_new() failed"); ++ buffer_get_bignum_bits(b, p); ++ buffer_get_bignum_bits(b, g); ++ buffer_get_bignum_bits(b, q); ++ buffer_get_bignum_bits(b, pub_key); ++ buffer_get_bignum_bits(b, priv_key); ++ if (DSA_set0_pqg(key->dsa, p, q, g) == 0 || ++ DSA_set0_key(key->dsa, pub_key, priv_key) == 0) { ++ fatal("failed to set DSA key"); ++ } ++ } + break; +- case KEY_RSA: +- if ((r = sshbuf_get_u8(b, &e1)) != 0 || +- (e1 < 30 && (r = sshbuf_get_u8(b, &e2)) != 0) || +- (e1 < 30 && (r = sshbuf_get_u8(b, &e3)) != 0)) +- fatal("%s: buffer error: %s", __func__, ssh_err(r)); +- e = e1; +- debug("e %lx", e); +- if (e < 30) { +- e <<= 8; +- e += e2; +- debug("e %lx", e); +- e <<= 8; +- e += e3; ++ case KEY_RSA: { ++ BIGNUM *bn_e = NULL, *bn_d = NULL, *bn_n = NULL, *bn_iqmp = NULL, *bn_p = NULL, *bn_q = NULL; ++ ++ if ((bn_e = BN_new()) == NULL || ++ (bn_d = BN_new()) == NULL || ++ (bn_n = BN_new()) == NULL || ++ (bn_iqmp = BN_new()) == NULL || ++ (bn_p = BN_new()) == NULL || ++ (bn_q = BN_new()) == NULL) ++ fatal("BN_new() failed"); ++ ++ if ((r = sshbuf_get_u8(b, &e1)) != 0 || ++ (e1 < 30 && (r = sshbuf_get_u8(b, &e2)) != 0) || ++ (e1 < 30 && (r = sshbuf_get_u8(b, &e3)) != 0)) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ e = e1; + debug("e %lx", e); ++ if (e < 30) { ++ e <<= 8; ++ e += e2; ++ debug("e %lx", e); ++ e <<= 8; ++ e += e3; ++ debug("e %lx", e); ++ } ++ if (!BN_set_word(bn_e, e)) { ++ sshbuf_free(b); ++ sshkey_free(key); ++ return NULL; ++ } ++ buffer_get_bignum_bits(b, bn_d); ++ buffer_get_bignum_bits(b, bn_n); ++ buffer_get_bignum_bits(b, bn_iqmp); ++ buffer_get_bignum_bits(b, bn_q); ++ buffer_get_bignum_bits(b, bn_p); ++ if (RSA_set0_key(key->rsa, bn_n, bn_e, bn_d) == 0 || ++ RSA_set0_factors(key->rsa, bn_p, bn_q) == 0) ++ fatal("Failed to set RSA parameters"); ++ if ((r = ssh_rsa_generate_additional_parameters(key, bn_iqmp)) != 0) ++ fatal("generate RSA parameters failed: %s", ssh_err(r)); + } +- if (!BN_set_word(key->rsa->e, e)) { +- sshbuf_free(b); +- sshkey_free(key); +- return NULL; +- } +- buffer_get_bignum_bits(b, key->rsa->d); +- buffer_get_bignum_bits(b, key->rsa->n); +- buffer_get_bignum_bits(b, key->rsa->iqmp); +- buffer_get_bignum_bits(b, key->rsa->q); +- buffer_get_bignum_bits(b, key->rsa->p); +- if ((r = ssh_rsa_generate_additional_parameters(key)) != 0) +- fatal("generate RSA parameters failed: %s", ssh_err(r)); + break; + } + rlen = sshbuf_len(b); +@@ -642,7 +669,7 @@ do_convert_from_pkcs8(struct sshkey **k, + identity_file); + } + fclose(fp); +- switch (EVP_PKEY_type(pubkey->type)) { ++ switch (EVP_PKEY_base_id(pubkey)) { + case EVP_PKEY_RSA: + if ((*k = sshkey_new(KEY_UNSPEC)) == NULL) + fatal("sshkey_new failed"); +@@ -666,7 +693,7 @@ do_convert_from_pkcs8(struct sshkey **k, + #endif + default: + fatal("%s: unsupported pubkey type %d", __func__, +- EVP_PKEY_type(pubkey->type)); ++ EVP_PKEY_base_id(pubkey)); + } + EVP_PKEY_free(pubkey); + return; +@@ -1798,6 +1825,7 @@ do_ca_sign(struct passwd *pw, int argc, + #ifdef ENABLE_PKCS11 + pkcs11_terminate(); + #endif ++ free(ca); + exit(0); + } + +diff -up openssh/sshkey.h.openssl openssh/sshkey.h +--- openssh/sshkey.h.openssl 2017-09-26 13:19:31.780249593 +0200 ++++ openssh/sshkey.h 2017-09-26 13:19:31.803249734 +0200 +@@ -199,7 +199,7 @@ int sshkey_parse_private_fileblob_type(s + const char *passphrase, struct sshkey **keyp, char **commentp); + + /* XXX should be internal, but used by ssh-keygen */ +-int ssh_rsa_generate_additional_parameters(struct sshkey *); ++int ssh_rsa_generate_additional_parameters(struct sshkey *, BIGNUM *iqmp); + + /* stateful keys (e.g. XMSS) */ + #ifdef NO_ATTRIBUTE_ON_PROTOTYPE_ARGS +diff -up openssh/ssh-pkcs11-client.c.openssl openssh/ssh-pkcs11-client.c +--- openssh/ssh-pkcs11-client.c.openssl 2017-09-19 06:26:43.000000000 +0200 ++++ openssh/ssh-pkcs11-client.c 2017-09-26 13:19:31.803249734 +0200 +@@ -143,12 +143,16 @@ pkcs11_rsa_private_encrypt(int flen, con + static int + wrap_rsa_key(RSA *rsa) + { +- static RSA_METHOD helper_rsa; ++ static RSA_METHOD *helper_rsa; + +- memcpy(&helper_rsa, RSA_get_default_method(), sizeof(helper_rsa)); +- helper_rsa.name = "ssh-pkcs11-helper"; +- helper_rsa.rsa_priv_enc = pkcs11_rsa_private_encrypt; +- RSA_set_method(rsa, &helper_rsa); ++ if (helper_rsa == NULL) { ++ helper_rsa = RSA_meth_dup(RSA_get_default_method()); ++ if (helper_rsa == NULL) ++ error("RSA_meth_dup failed"); ++ RSA_meth_set1_name(helper_rsa, "ssh-pkcs11-helper"); ++ RSA_meth_set_priv_enc(helper_rsa, pkcs11_rsa_private_encrypt); ++ } ++ RSA_set_method(rsa, helper_rsa); + return (0); + } + +diff -up openssh/ssh-pkcs11.c.openssl openssh/ssh-pkcs11.c +--- openssh/ssh-pkcs11.c.openssl 2017-09-19 06:26:43.000000000 +0200 ++++ openssh/ssh-pkcs11.c 2017-09-26 13:19:31.803249734 +0200 +@@ -67,7 +67,7 @@ struct pkcs11_key { + CK_ULONG slotidx; + CK_ULONG key_type; + int (*orig_finish)(RSA *rsa); +- RSA_METHOD rsa_method; ++ RSA_METHOD *rsa_method; + char *keyid; + int keyid_len; + char *label; +@@ -183,6 +183,7 @@ pkcs11_rsa_finish(RSA *rsa) + pkcs11_provider_unref(k11->provider); + free(k11->keyid); + free(k11->label); ++ RSA_meth_free(k11->rsa_method); + free(k11); + } + return (rv); +@@ -326,13 +326,21 @@ pkcs11_rsa_wrap(struct pkcs11_provider * + memcpy(k11->label, label_attrib->pValue, label_attrib->ulValueLen); + k11->label[label_attrib->ulValueLen] = 0; + } +- k11->orig_finish = def->finish; +- memcpy(&k11->rsa_method, def, sizeof(k11->rsa_method)); +- k11->rsa_method.name = "pkcs11"; +- k11->rsa_method.rsa_priv_enc = pkcs11_rsa_private_encrypt; +- k11->rsa_method.rsa_priv_dec = pkcs11_rsa_private_decrypt; +- k11->rsa_method.finish = pkcs11_rsa_finish; +- RSA_set_method(rsa, &k11->rsa_method); ++ k11->orig_finish = RSA_meth_get_finish(def); ++ if ((k11->rsa_method = RSA_meth_dup(def)) == NULL || ++ RSA_meth_set1_name(k11->rsa_method, "pkcs11") == 0 || ++ RSA_meth_set_priv_enc(k11->rsa_method, pkcs11_rsa_private_encrypt) == 0 || ++ RSA_meth_set_priv_dec(k11->rsa_method, pkcs11_rsa_private_decrypt) == 0 || ++ RSA_meth_set_finish(k11->rsa_method, pkcs11_rsa_finish) == 0) { ++ RSA_meth_free(k11->rsa_method); ++ k11->rsa_method = NULL; ++ pkcs11_provider_unref(k11->provider); ++ free(k11->keyid); ++ free(k11); ++ return (-1); ++ } ++ ++ RSA_set_method(rsa, k11->rsa_method); + RSA_set_app_data(rsa, k11); + return (0); + } +@@ -460,6 +468,7 @@ pkcs11_fetch_keys_filter(struct pkcs11_p + CK_ULONG nfound; + CK_SESSION_HANDLE session; + CK_FUNCTION_LIST *f; ++ const BIGNUM *n, *e; + + f = p->module->function_list; + session = p->module->slotinfo[slotidx].session; +@@ -512,10 +521,16 @@ pkcs11_fetch_keys_filter(struct pkcs11_p + if ((rsa = RSA_new()) == NULL) { + error("RSA_new failed"); + } else { +- rsa->n = BN_bin2bn(attribs[2].pValue, ++ BIGNUM *rsa_n, *rsa_e; ++ ++ rsa_n = BN_bin2bn(attribs[2].pValue, + attribs[2].ulValueLen, NULL); +- rsa->e = BN_bin2bn(attribs[3].pValue, ++ rsa_e = BN_bin2bn(attribs[3].pValue, + attribs[3].ulValueLen, NULL); ++ if (rsa_n == NULL || rsa_e == NULL) ++ error("BN_bin2bn failed"); ++ if (RSA_set0_key(rsa, rsa_n, rsa_e, NULL) == 0) ++ error("RSA_set0_key failed"); + } + #ifdef ENABLE_PKCS11_ECDSA + } else if (attribs[2].type == CKA_EC_PARAMS ) { +@@ -920,19 +936,19 @@ pkcs11_fetch_keys_filter(struct pkcs11_p + } else if ((evp = X509_get_pubkey(x509)) == NULL) { + debug("X509_get_pubkey failed"); + } else { +- switch (evp->type) { ++ switch (EVP_PKEY_id(evp)) { + case EVP_PKEY_RSA: +- if (evp->pkey.rsa == NULL) ++ if (EVP_PKEY_get0_RSA(evp) == NULL) + debug("Missing RSA key"); +- else if ((rsa = RSAPublicKey_dup( +- evp->pkey.rsa)) == NULL) ++ else if ((rsa = RSAPublicKey_dup( ++ EVP_PKEY_get0_RSA(evp))) == NULL) + error("RSAPublicKey_dup failed"); + break; + case EVP_PKEY_EC: +- if (evp->pkey.ecdsa == NULL) ++ if (EVP_PKEY_get0_EC_KEY(evp) == NULL) + debug("Missing ECDSA key"); +- else if ((ecdsa = EC_KEY_dup( +- evp->pkey.ecdsa)) == NULL) ++ else if ((ecdsa = EC_KEY_dup( ++ EVP_PKEY_get0_EC_KEY(evp))) == NULL) + error("EC_KEY_dup failed"); + break; + default: +@@ -538,7 +551,9 @@ pkcs11_fetch_keys_filter(struct pkcs11_p + } + key = NULL; + if (rsa || ecdsa) { +- if (rsa && rsa->n && rsa->e && ++ if (rsa) ++ RSA_get0_key(rsa, &n, &e, NULL); ++ if (rsa && n && e && + pkcs11_rsa_wrap(p, slotidx, &attribs[0], &attribs[1], rsa) == 0) { + if ((key = sshkey_new(KEY_UNSPEC)) == NULL) + fatal("sshkey_new failed"); +diff -up openssh/ssh-rsa.c.openssl openssh/ssh-rsa.c +--- openssh/ssh-rsa.c.openssl 2017-09-19 06:26:43.000000000 +0200 ++++ openssh/ssh-rsa.c 2017-09-26 13:19:31.803249734 +0200 +@@ -78,38 +78,50 @@ rsa_hash_alg_nid(int type) + } + + int +-ssh_rsa_generate_additional_parameters(struct sshkey *key) ++ssh_rsa_generate_additional_parameters(struct sshkey *key, BIGNUM *iqmp) + { + BIGNUM *aux = NULL; + BN_CTX *ctx = NULL; +- BIGNUM d; ++ BIGNUM *d = NULL; + int r; ++ const BIGNUM *p, *q, *rsa_d; ++ BIGNUM *dmp1 = NULL, *dmq1 = NULL; + + if (key == NULL || key->rsa == NULL || + sshkey_type_plain(key->type) != KEY_RSA) + return SSH_ERR_INVALID_ARGUMENT; + +- if ((ctx = BN_CTX_new()) == NULL) +- return SSH_ERR_ALLOC_FAIL; +- if ((aux = BN_new()) == NULL) { ++ RSA_get0_factors(key->rsa, &p, &q); ++ RSA_get0_key(key->rsa, NULL, NULL, &rsa_d); ++ ++ if ((ctx = BN_CTX_new()) == NULL || ++ (aux = BN_new()) == NULL || ++ (d = BN_new()) == NULL || ++ (dmp1 = BN_new()) == NULL || ++ (dmq1 = BN_new()) == NULL) { + r = SSH_ERR_ALLOC_FAIL; + goto out; + } + BN_set_flags(aux, BN_FLG_CONSTTIME); + +- BN_init(&d); +- BN_with_flags(&d, key->rsa->d, BN_FLG_CONSTTIME); ++ BN_with_flags(d, rsa_d, BN_FLG_CONSTTIME); + +- if ((BN_sub(aux, key->rsa->q, BN_value_one()) == 0) || +- (BN_mod(key->rsa->dmq1, &d, aux, ctx) == 0) || +- (BN_sub(aux, key->rsa->p, BN_value_one()) == 0) || +- (BN_mod(key->rsa->dmp1, &d, aux, ctx) == 0)) { ++ if ((BN_sub(aux, q, BN_value_one()) == 0) || ++ (BN_mod(dmq1, d, aux, ctx) == 0) || ++ (BN_sub(aux, p, BN_value_one()) == 0) || ++ (BN_mod(dmp1, d, aux, ctx) == 0) || ++ (RSA_set0_crt_params(key->rsa, dmp1, dmq1, iqmp) == 0)) { + r = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } ++ dmp1 = NULL; ++ dmq1 = NULL; + r = 0; + out: ++ BN_free(d); + BN_clear_free(aux); ++ BN_clear_free(dmp1); ++ BN_clear_free(dmq1); + BN_CTX_free(ctx); + return r; + } +@@ -136,7 +145,7 @@ ssh_rsa_sign(const struct sshkey *key, u + if (key == NULL || key->rsa == NULL || hash_alg == -1 || + sshkey_type_plain(key->type) != KEY_RSA) + return SSH_ERR_INVALID_ARGUMENT; +- if (BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) ++ if (RSA_bits(key->rsa) < SSH_RSA_MINIMUM_MODULUS_SIZE) + return SSH_ERR_KEY_LENGTH; + slen = RSA_size(key->rsa); + if (slen <= 0 || slen > SSHBUF_MAX_BIGNUM) +@@ -210,7 +219,7 @@ ssh_rsa_verify(const struct sshkey *key, + sshkey_type_plain(key->type) != KEY_RSA || + sig == NULL || siglen == 0) + return SSH_ERR_INVALID_ARGUMENT; +- if (BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) ++ if (RSA_bits(key->rsa) < SSH_RSA_MINIMUM_MODULUS_SIZE) + return SSH_ERR_KEY_LENGTH; + + if ((b = sshbuf_from(sig, siglen)) == NULL) +--- openssh-7.6p1/configure.ac.openssl 2017-10-04 15:47:48.440672023 +0200 ++++ openssh-7.6p1/configure.ac 2017-10-04 15:47:23.327531495 +0200 +@@ -2730,6 +2730,7 @@ + AC_MSG_ERROR([OpenSSL >= 1.0.1 required (have "$ssl_library_ver")]) + ;; + 100*) ;; # 1.0.x ++ 101*) ;; # 1.1.x is supported by this patch too + 200*) ;; # LibreSSL + *) + AC_MSG_ERROR([OpenSSL >= 1.1.0 is not yet supported (have "$ssl_library_ver")]) diff --git a/openssh-7.3p1-x11-max-displays.patch b/openssh-7.3p1-x11-max-displays.patch new file mode 100644 index 0000000..94dac8f --- /dev/null +++ b/openssh-7.3p1-x11-max-displays.patch @@ -0,0 +1,213 @@ +diff -up openssh-7.4p1/channels.c.x11max openssh-7.4p1/channels.c +--- openssh-7.4p1/channels.c.x11max 2016-12-23 15:46:32.071506625 +0100 ++++ openssh-7.4p1/channels.c 2016-12-23 15:46:32.139506636 +0100 +@@ -152,8 +152,8 @@ static int all_opens_permitted = 0; + #define FWD_PERMIT_ANY_HOST "*" + + /* -- X11 forwarding */ +-/* Maximum number of fake X11 displays to try. */ +-#define MAX_DISPLAYS 1000 ++/* Minimum port number for X11 forwarding */ ++#define X11_PORT_MIN 6000 + + /* Per-channel callback for pre/post select() actions */ + typedef void chan_fn(struct ssh *, Channel *c, +@@ -4228,7 +4228,7 @@ channel_send_window_changes(void) + */ + int + x11_create_display_inet(struct ssh *ssh, int x11_display_offset, +- int x11_use_localhost, int single_connection, ++ int x11_use_localhost, int x11_max_displays, int single_connection, + u_int *display_numberp, int **chanids) + { + Channel *nc = NULL; +@@ -4240,10 +4241,15 @@ x11_create_display_inet(int x11_display_ + if (chanids == NULL) + return -1; + ++ /* Try to bind ports starting at 6000+X11DisplayOffset */ ++ x11_max_displays = x11_max_displays + x11_display_offset; ++ + for (display_number = x11_display_offset; +- display_number < MAX_DISPLAYS; ++ display_number < x11_max_displays; + display_number++) { +- port = 6000 + display_number; ++ port = X11_PORT_MIN + display_number; ++ if (port < X11_PORT_MIN) /* overflow */ ++ break; + memset(&hints, 0, sizeof(hints)); + hints.ai_family = ssh->chanctxt->IPv4or6; + hints.ai_flags = x11_use_localhost ? 0: AI_PASSIVE; +@@ -4295,7 +4301,7 @@ x11_create_display_inet(int x11_display_ + if (num_socks > 0) + break; + } +- if (display_number >= MAX_DISPLAYS) { ++ if (display_number >= x11_max_displays || port < X11_PORT_MIN ) { + error("Failed to allocate internet-domain X11 display socket."); + return -1; + } +@@ -4441,7 +4447,7 @@ x11_connect_display(void) + memset(&hints, 0, sizeof(hints)); + hints.ai_family = ssh->chanctxt->IPv4or6; + hints.ai_socktype = SOCK_STREAM; +- snprintf(strport, sizeof strport, "%u", 6000 + display_number); ++ snprintf(strport, sizeof strport, "%u", X11_PORT_MIN + display_number); + if ((gaierr = getaddrinfo(buf, strport, &hints, &aitop)) != 0) { + error("%.100s: unknown host. (%s)", buf, + ssh_gai_strerror(gaierr)); +@@ -4457,7 +4463,7 @@ x11_connect_display(void) + /* Connect it to the display. */ + if (connect(sock, ai->ai_addr, ai->ai_addrlen) < 0) { + debug2("connect %.100s port %u: %.100s", buf, +- 6000 + display_number, strerror(errno)); ++ X11_PORT_MIN + display_number, strerror(errno)); + close(sock); + continue; + } +@@ -4466,8 +4472,8 @@ x11_connect_display(void) + } + freeaddrinfo(aitop); + if (!ai) { +- error("connect %.100s port %u: %.100s", buf, +- 6000 + display_number, strerror(errno)); ++ error("connect %.100s port %u: %.100s", buf, ++ X11_PORT_MIN + display_number, strerror(errno)); + return -1; + } + set_nodelay(sock); +diff -up openssh-7.4p1/channels.h.x11max openssh-7.4p1/channels.h +--- openssh-7.4p1/channels.h.x11max 2016-12-19 05:59:41.000000000 +0100 ++++ openssh-7.4p1/channels.h 2016-12-23 15:46:32.139506636 +0100 +@@ -293,7 +293,7 @@ int permitopen_port(const char *); + + void channel_set_x11_refuse_time(struct ssh *, u_int); + int x11_connect_display(struct ssh *); +-int x11_create_display_inet(struct ssh *, int, int, int, u_int *, int **); ++int x11_create_display_inet(struct ssh *, int, int, int, int, u_int *, int **); + void x11_request_forwarding_with_spoofing(struct ssh *, int, + const char *, const char *, const char *, int); + +diff -up openssh-7.4p1/servconf.c.x11max openssh-7.4p1/servconf.c +--- openssh-7.4p1/servconf.c.x11max 2016-12-23 15:46:32.133506635 +0100 ++++ openssh-7.4p1/servconf.c 2016-12-23 15:47:27.320519121 +0100 +@@ -95,6 +95,7 @@ initialize_server_options(ServerOptions + options->print_lastlog = -1; + options->x11_forwarding = -1; + options->x11_display_offset = -1; ++ options->x11_max_displays = -1; + options->x11_use_localhost = -1; + options->permit_tty = -1; + options->permit_user_rc = -1; +@@ -243,6 +244,8 @@ fill_default_server_options(ServerOption + options->x11_forwarding = 0; + if (options->x11_display_offset == -1) + options->x11_display_offset = 10; ++ if (options->x11_max_displays == -1) ++ options->x11_max_displays = DEFAULT_MAX_DISPLAYS; + if (options->x11_use_localhost == -1) + options->x11_use_localhost = 1; + if (options->xauth_location == NULL) +@@ -419,7 +422,7 @@ typedef enum { + sPasswordAuthentication, sKbdInteractiveAuthentication, + sListenAddress, sAddressFamily, + sPrintMotd, sPrintLastLog, sIgnoreRhosts, +- sX11Forwarding, sX11DisplayOffset, sX11UseLocalhost, ++ sX11Forwarding, sX11DisplayOffset, sX11MaxDisplays, sX11UseLocalhost, + sPermitTTY, sStrictModes, sEmptyPasswd, sTCPKeepAlive, + sPermitUserEnvironment, sAllowTcpForwarding, sCompression, + sRekeyLimit, sAllowUsers, sDenyUsers, sAllowGroups, sDenyGroups, +@@ -540,6 +543,7 @@ static struct { + { "ignoreuserknownhosts", sIgnoreUserKnownHosts, SSHCFG_GLOBAL }, + { "x11forwarding", sX11Forwarding, SSHCFG_ALL }, + { "x11displayoffset", sX11DisplayOffset, SSHCFG_ALL }, ++ { "x11maxdisplays", sX11MaxDisplays, SSHCFG_ALL }, + { "x11uselocalhost", sX11UseLocalhost, SSHCFG_ALL }, + { "xauthlocation", sXAuthLocation, SSHCFG_GLOBAL }, + { "strictmodes", sStrictModes, SSHCFG_GLOBAL }, +@@ -1316,6 +1320,10 @@ process_server_config_line(ServerOptions + *intptr = value; + break; + ++ case sX11MaxDisplays: ++ intptr = &options->x11_max_displays; ++ goto parse_int; ++ + case sX11UseLocalhost: + intptr = &options->x11_use_localhost; + goto parse_flag; +@@ -2063,6 +2071,7 @@ copy_set_server_options(ServerOptions *d + M_CP_INTOPT(fwd_opts.streamlocal_bind_unlink); + M_CP_INTOPT(x11_display_offset); + M_CP_INTOPT(x11_forwarding); ++ M_CP_INTOPT(x11_max_displays); + M_CP_INTOPT(x11_use_localhost); + M_CP_INTOPT(permit_tty); + M_CP_INTOPT(permit_user_rc); +@@ -2315,6 +2324,7 @@ dump_config(ServerOptions *o) + #endif + dump_cfg_int(sLoginGraceTime, o->login_grace_time); + dump_cfg_int(sX11DisplayOffset, o->x11_display_offset); ++ dump_cfg_int(sX11MaxDisplays, o->x11_max_displays); + dump_cfg_int(sMaxAuthTries, o->max_authtries); + dump_cfg_int(sMaxSessions, o->max_sessions); + dump_cfg_int(sClientAliveInterval, o->client_alive_interval); +diff -up openssh-7.4p1/servconf.h.x11max openssh-7.4p1/servconf.h +--- openssh-7.4p1/servconf.h.x11max 2016-12-23 15:46:32.133506635 +0100 ++++ openssh-7.4p1/servconf.h 2016-12-23 15:46:32.140506636 +0100 +@@ -55,6 +55,7 @@ + + #define DEFAULT_AUTH_FAIL_MAX 6 /* Default for MaxAuthTries */ + #define DEFAULT_SESSIONS_MAX 10 /* Default for MaxSessions */ ++#define DEFAULT_MAX_DISPLAYS 1000 /* Maximum number of fake X11 displays to try. */ + + /* Magic name for internal sftp-server */ + #define INTERNAL_SFTP_NAME "internal-sftp" +@@ -85,6 +86,7 @@ typedef struct { + int x11_forwarding; /* If true, permit inet (spoofing) X11 fwd. */ + int x11_display_offset; /* What DISPLAY number to start + * searching at */ ++ int x11_max_displays; /* Number of displays to search */ + int x11_use_localhost; /* If true, use localhost for fake X11 server. */ + char *xauth_location; /* Location of xauth program */ + int permit_tty; /* If false, deny pty allocation */ +diff -up openssh-7.4p1/session.c.x11max openssh-7.4p1/session.c +--- openssh-7.4p1/session.c.x11max 2016-12-23 15:46:32.136506636 +0100 ++++ openssh-7.4p1/session.c 2016-12-23 15:46:32.141506636 +0100 +@@ -2518,8 +2518,9 @@ session_setup_x11fwd(Session *s) + return 0; + } + if (x11_create_display_inet(ssh, options.x11_display_offset, +- options.x11_use_localhost, s->single_connection, +- &s->display_number, &s->x11_chanids) == -1) { ++ options.x11_use_localhost, options.x11_max_displays, ++ s->single_connection, &s->display_number, ++ &s->x11_chanids) == -1) { + debug("x11_create_display_inet failed."); + return 0; + } +diff -up openssh-7.4p1/sshd_config.5.x11max openssh-7.4p1/sshd_config.5 +--- openssh-7.4p1/sshd_config.5.x11max 2016-12-23 15:46:32.134506635 +0100 ++++ openssh-7.4p1/sshd_config.5 2016-12-23 15:46:32.141506636 +0100 +@@ -1133,6 +1133,7 @@ Available keywords are + .Cm StreamLocalBindUnlink , + .Cm TrustedUserCAKeys , + .Cm X11DisplayOffset , ++.Cm X11MaxDisplays , + .Cm X11Forwarding + and + .Cm X11UseLocalHost . +@@ -1566,6 +1567,12 @@ Specifies the first display number avail + X11 forwarding. + This prevents sshd from interfering with real X11 servers. + The default is 10. ++.It Cm X11MaxDisplays ++Specifies the maximum number of displays available for ++.Xr sshd 8 Ns 's ++X11 forwarding. ++This prevents sshd from exhausting local ports. ++The default is 1000. + .It Cm X11Forwarding + Specifies whether X11 forwarding is permitted. + The argument must be diff --git a/openssh-7.4p1-systemd.patch b/openssh-7.4p1-systemd.patch new file mode 100644 index 0000000..4f9e58a --- /dev/null +++ b/openssh-7.4p1-systemd.patch @@ -0,0 +1,98 @@ +commit 0e22b79bfde45a7cf7a2e51a68ec11c4285f3b31 +Author: Jakub Jelen +Date: Mon Nov 21 15:04:06 2016 +0100 + + systemd stuff + +diff --git a/configure.ac b/configure.ac +index 2ffc369..162ce92 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4265,6 +4265,30 @@ AC_ARG_WITH([kerberos5], + AC_SUBST([GSSLIBS]) + AC_SUBST([K5LIBS]) + ++# Check whether user wants systemd support ++SYSTEMD_MSG="no" ++AC_ARG_WITH(systemd, ++ [ --with-systemd Enable systemd support], ++ [ if test "x$withval" != "xno" ; then ++ AC_PATH_TOOL([PKGCONFIG], [pkg-config], [no]) ++ if test "$PKGCONFIG" != "no"; then ++ AC_MSG_CHECKING([for libsystemd]) ++ if $PKGCONFIG --exists libsystemd; then ++ SYSTEMD_CFLAGS=`$PKGCONFIG --cflags libsystemd` ++ SYSTEMD_LIBS=`$PKGCONFIG --libs libsystemd` ++ CPPFLAGS="$CPPFLAGS $SYSTEMD_CFLAGS" ++ SSHDLIBS="$SSHDLIBS $SYSTEMD_LIBS" ++ AC_MSG_RESULT([yes]) ++ AC_DEFINE(HAVE_SYSTEMD, 1, [Define if you want systemd support.]) ++ SYSTEMD_MSG="yes" ++ else ++ AC_MSG_RESULT([no]) ++ fi ++ fi ++ fi ] ++) ++ ++ + # Looking for programs, paths and files + + PRIVSEP_PATH=/var/empty +@@ -5097,6 +5121,7 @@ echo " libedit support: $LIBEDIT_MSG" + echo " Solaris process contract support: $SPC_MSG" + echo " Solaris project support: $SP_MSG" + echo " Solaris privilege support: $SPP_MSG" ++echo " systemd support: $SYSTEMD_MSG" + echo " IP address in \$DISPLAY hack: $DISPLAY_HACK_MSG" + echo " Translate v4 in v6 hack: $IPV4_IN6_HACK_MSG" + echo " BSD Auth support: $BSD_AUTH_MSG" +diff --git a/contrib/sshd.service b/contrib/sshd.service +new file mode 100644 +index 0000000..e0d4923 +--- /dev/null ++++ b/contrib/sshd.service +@@ -0,0 +1,16 @@ ++[Unit] ++Description=OpenSSH server daemon ++Documentation=man:sshd(8) man:sshd_config(5) ++After=network.target ++ ++[Service] ++Type=notify ++ExecStart=/usr/sbin/sshd -D $OPTIONS ++ExecReload=/bin/kill -HUP $MAINPID ++KillMode=process ++Restart=on-failure ++RestartPreventExitStatus=255 ++ ++[Install] ++WantedBy=multi-user.target ++ +diff --git a/sshd.c b/sshd.c +index 816611c..b8b9d13 100644 +--- a/sshd.c ++++ b/sshd.c +@@ -85,6 +85,10 @@ + #include + #endif + ++#ifdef HAVE_SYSTEMD ++#include ++#endif ++ + #include "xmalloc.h" + #include "ssh.h" + #include "ssh2.h" +@@ -1888,6 +1892,11 @@ main(int ac, char **av) + } + } + ++#ifdef HAVE_SYSTEMD ++ /* Signal systemd that we are ready to accept connections */ ++ sd_notify(0, "READY=1"); ++#endif ++ + /* Accept a connection and return in a forked child */ + server_accept_loop(&sock_in, &sock_out, + &newsock, config_s); diff --git a/openssh-7.5p1-gssapi-kex-with-ec.patch b/openssh-7.5p1-gssapi-kex-with-ec.patch new file mode 100644 index 0000000..5f2763a --- /dev/null +++ b/openssh-7.5p1-gssapi-kex-with-ec.patch @@ -0,0 +1,1377 @@ +From 6ff8f667f792052fd47689c3e421fcd6ddca1cd0 Mon Sep 17 00:00:00 2001 +From: Jakub Jelen +Date: Fri, 25 Aug 2017 19:15:48 +0200 +Subject: [PATCH 1/3] GSSAPI Key exchange methods with DH and SHA2 + +--- + gss-genr.c | 10 ++++++++++ + kex.c | 2 ++ + kex.h | 2 ++ + kexgssc.c | 6 ++++++ + kexgsss.c | 6 ++++++ + monitor.c | 2 ++ + regress/kextype.sh | 4 +++- + regress/rekey.sh | 8 ++++++-- + ssh-gss.h | 2 ++ + ssh_config.5 | 4 +++- + sshconnect2.c | 2 ++ + sshd.c | 2 ++ + sshd_config.5 | 4 +++- + 13 files changed, 49 insertions(+), 5 deletions(-) + +diff --git a/gss-genr.c b/gss-genr.c +index dc63682d..c6eff3d7 100644 +--- a/gss-genr.c ++++ b/gss-genr.c +@@ -183,6 +183,16 @@ ssh_gssapi_id_kex(Gssctxt *ctx, char *name, int kex_type) { + return GSS_C_NO_OID; + name += sizeof(KEX_GSS_GRP14_SHA1_ID) - 1; + break; ++ case KEX_GSS_GRP14_SHA256: ++ if (strlen(name) < sizeof(KEX_GSS_GRP14_SHA256_ID)) ++ return GSS_C_NO_OID; ++ name += sizeof(KEX_GSS_GRP14_SHA256_ID) - 1; ++ break; ++ case KEX_GSS_GRP16_SHA512: ++ if (strlen(name) < sizeof(KEX_GSS_GRP16_SHA512_ID)) ++ return GSS_C_NO_OID; ++ name += sizeof(KEX_GSS_GRP16_SHA512_ID) - 1; ++ break; + case KEX_GSS_GEX_SHA1: + if (strlen(name) < sizeof(KEX_GSS_GEX_SHA1_ID)) + return GSS_C_NO_OID; +diff --git a/kex.c b/kex.c +index 63e028fa..e798fecb 100644 +--- a/kex.c ++++ b/kex.c +@@ -112,6 +112,8 @@ static const struct kexalg kexalgs[] = { + { KEX_GSS_GEX_SHA1_ID, KEX_GSS_GEX_SHA1, 0, SSH_DIGEST_SHA1 }, + { KEX_GSS_GRP1_SHA1_ID, KEX_GSS_GRP1_SHA1, 0, SSH_DIGEST_SHA1 }, + { KEX_GSS_GRP14_SHA1_ID, KEX_GSS_GRP14_SHA1, 0, SSH_DIGEST_SHA1 }, ++ { KEX_GSS_GRP14_SHA256_ID, KEX_GSS_GRP14_SHA256, 0, SSH_DIGEST_SHA256 }, ++ { KEX_GSS_GRP16_SHA512_ID, KEX_GSS_GRP16_SHA512, 0, SSH_DIGEST_SHA512 }, + #endif + { NULL, -1, -1, -1}, + }; +diff --git a/kex.h b/kex.h +index 8a2b37c5..f27958ae 100644 +--- a/kex.h ++++ b/kex.h +@@ -102,6 +102,8 @@ enum kex_exchange { + #ifdef GSSAPI + KEX_GSS_GRP1_SHA1, + KEX_GSS_GRP14_SHA1, ++ KEX_GSS_GRP14_SHA256, ++ KEX_GSS_GRP16_SHA512, + KEX_GSS_GEX_SHA1, + #endif + KEX_MAX +diff --git a/kexgssc.c b/kexgssc.c +index 132df8b5..ed23f06d 100644 +--- a/kexgssc.c ++++ b/kexgssc.c +@@ -88,8 +88,12 @@ kexgss_client(struct ssh *ssh) { + dh = dh_new_group1(); + break; + case KEX_GSS_GRP14_SHA1: ++ case KEX_GSS_GRP14_SHA256: + dh = dh_new_group14(); + break; ++ case KEX_GSS_GRP16_SHA512: ++ dh = dh_new_group16(); ++ break; + case KEX_GSS_GEX_SHA1: + debug("Doing group exchange\n"); + nbits = dh_estimate(ssh->kex->we_need * 8); +@@ -272,6 +276,8 @@ kexgss_client(struct ssh *ssh) { + switch (ssh->kex->kex_type) { + case KEX_GSS_GRP1_SHA1: + case KEX_GSS_GRP14_SHA1: ++ case KEX_GSS_GRP14_SHA256: ++ case KEX_GSS_GRP16_SHA512: + kex_dh_hash(ssh->kex->hash_alg, ssh->kex->client_version_string, + ssh->kex->server_version_string, + sshbuf_ptr(ssh->kex->my), sshbuf_len(ssh->kex->my), +diff --git a/kexgsss.c b/kexgsss.c +index 82a715cc..b7da8823 100644 +--- a/kexgsss.c ++++ b/kexgsss.c +@@ -104,8 +104,12 @@ kexgss_server(struct ssh *ssh) + dh = dh_new_group1(); + break; + case KEX_GSS_GRP14_SHA1: ++ case KEX_GSS_GRP14_SHA256: + dh = dh_new_group14(); + break; ++ case KEX_GSS_GRP16_SHA512: ++ dh = dh_new_group16(); ++ break; + case KEX_GSS_GEX_SHA1: + debug("Doing group exchange"); + packet_read_expect(SSH2_MSG_KEXGSS_GROUPREQ); +@@ -223,6 +227,8 @@ kexgss_server(struct ssh *ssh) + switch (ssh->kex->kex_type) { + case KEX_GSS_GRP1_SHA1: + case KEX_GSS_GRP14_SHA1: ++ case KEX_GSS_GRP14_SHA256: ++ case KEX_GSS_GRP16_SHA512: + kex_dh_hash(ssh->kex->hash_alg, + ssh->kex->client_version_string, ssh->kex->server_version_string, + sshbuf_ptr(ssh->kex->peer), sshbuf_len(ssh->kex->peer), +diff --git a/monitor.c b/monitor.c +index 17046936..d6bc7ac7 100644 +--- a/monitor.c ++++ b/monitor.c +@@ -1648,6 +1648,8 @@ monitor_apply_keystate(struct monitor *pmonitor) + if (options.gss_keyex) { + kex->kex[KEX_GSS_GRP1_SHA1] = kexgss_server; + kex->kex[KEX_GSS_GRP14_SHA1] = kexgss_server; ++ kex->kex[KEX_GSS_GRP14_SHA256] = kexgss_server; ++ kex->kex[KEX_GSS_GRP16_SHA512] = kexgss_server; + kex->kex[KEX_GSS_GEX_SHA1] = kexgss_server; + } + #endif +diff --git a/regress/kextype.sh b/regress/kextype.sh +index 780362ca..45f4f16d 100644 +--- a/regress/kextype.sh ++++ b/regress/kextype.sh +@@ -14,7 +14,9 @@ echo "KexAlgorithms=$KEXOPT" >> $OBJ/sshd_proxy + + tries="1 2 3 4" + for k in `${SSH} -Q kex`; do +- if [ $k = "gss-gex-sha1-" -o $k = "gss-group1-sha1-" -o $k = "gss-group14-sha1-" ]; then ++ if [ $k = "gss-gex-sha1-" -o $k = "gss-group1-sha1-" -o \ ++ $k = "gss-group14-sha1-" -o $k = "gss-group14-sha256-" -o \ ++ $k = "gss-group16-sha512-" ]; then + continue + fi + verbose "kex $k" +diff --git a/regress/rekey.sh b/regress/rekey.sh +index 9fbe9b38..a2921bef 100644 +--- a/regress/rekey.sh ++++ b/regress/rekey.sh +@@ -38,7 +38,9 @@ increase_datafile_size 300 + + opts="" + for i in `${SSH} -Q kex`; do +- if [ $i = "gss-gex-sha1-" -o $i = "gss-group1-sha1-" -o $i = "gss-group14-sha1-" ]; then ++ if [ $i = "gss-gex-sha1-" -o $i = "gss-group1-sha1-" -o \ ++ $i = "gss-group14-sha1-" -o $i = "gss-group14-sha256-" -o \ ++ $i = "gss-group16-sha512-" ]; then + continue + fi + opts="$opts KexAlgorithms=$i" +@@ -59,7 +61,9 @@ done + if ${SSH} -Q cipher-auth | grep '^.*$' >/dev/null 2>&1 ; then + for c in `${SSH} -Q cipher-auth`; do + for kex in `${SSH} -Q kex`; do +- if [ $kex = "gss-gex-sha1-" -o $kex = "gss-group1-sha1-" -o $kex = "gss-group14-sha1-" ]; then ++ if [ $kex = "gss-gex-sha1-" -o $kex = "gss-group1-sha1-" -o \ ++ $kex = "gss-group14-sha1-" -o $kex = "gss-group14-sha256-" -o \ ++ $kex = "gss-group16-sha512-" ]; then + continue + fi + verbose "client rekey $c $kex" +diff --git a/ssh-gss.h b/ssh-gss.h +index 6b6adb2b..7bf8d75e 100644 +--- a/ssh-gss.h ++++ b/ssh-gss.h +@@ -70,6 +70,8 @@ + #define SSH2_MSG_KEXGSS_GROUP 41 + #define KEX_GSS_GRP1_SHA1_ID "gss-group1-sha1-" + #define KEX_GSS_GRP14_SHA1_ID "gss-group14-sha1-" ++#define KEX_GSS_GRP14_SHA256_ID "gss-group14-sha256-" ++#define KEX_GSS_GRP16_SHA512_ID "gss-group16-sha512-" + #define KEX_GSS_GEX_SHA1_ID "gss-gex-sha1-" + + #define GSS_KEX_DEFAULT_KEX \ +diff --git a/ssh_config.5 b/ssh_config.5 +index 6b24649e..3d6da510 100644 +--- a/ssh_config.5 ++++ b/ssh_config.5 +@@ -760,7 +760,9 @@ key exchange. Possible values are + .Bd -literal -offset 3n + gss-gex-sha1-, + gss-group1-sha1-, +-gss-group14-sha1- ++gss-group14-sha1-, ++gss-group14-sha256-, ++gss-group16-sha512- + .Ed + .Pp + The default is +diff --git a/sshconnect2.c b/sshconnect2.c +index 8db98293..5d6b8be0 100644 +--- a/sshconnect2.c ++++ b/sshconnect2.c +@@ -253,6 +253,8 @@ ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port) + if (options.gss_keyex) { + kex->kex[KEX_GSS_GRP1_SHA1] = kexgss_client; + kex->kex[KEX_GSS_GRP14_SHA1] = kexgss_client; ++ kex->kex[KEX_GSS_GRP14_SHA256] = kexgss_client; ++ kex->kex[KEX_GSS_GRP16_SHA512] = kexgss_client; + kex->kex[KEX_GSS_GEX_SHA1] = kexgss_client; + } + #endif +diff --git a/sshd.c b/sshd.c +index 895df26f..e4c879a2 100644 +--- a/sshd.c ++++ b/sshd.c +@@ -2244,6 +2244,8 @@ do_ssh2_kex(void) + if (options.gss_keyex) { + kex->kex[KEX_GSS_GRP1_SHA1] = kexgss_server; + kex->kex[KEX_GSS_GRP14_SHA1] = kexgss_server; ++ kex->kex[KEX_GSS_GRP14_SHA256] = kexgss_server; ++ kex->kex[KEX_GSS_GRP16_SHA512] = kexgss_server; + kex->kex[KEX_GSS_GEX_SHA1] = kexgss_server; + } + #endif +diff --git a/sshd_config.5 b/sshd_config.5 +index bf81f6af..0793418b 100644 +--- a/sshd_config.5 ++++ b/sshd_config.5 +@@ -675,7 +675,9 @@ key exchange. Possible values are + .Bd -literal -offset 3n + gss-gex-sha1-, + gss-group1-sha1-, +-gss-group14-sha1- ++gss-group14-sha1-, ++gss-group14-sha256-, ++gss-group16-sha512- + .Ed + .Pp + The default is +-- +2.13.5 + + +From 7d56144903fc625c33da7fabf103f4f6bba4d43a Mon Sep 17 00:00:00 2001 +From: Jakub Jelen +Date: Tue, 29 Aug 2017 15:32:14 +0200 +Subject: [PATCH 2/3] GSSAPI Key exchange using ECDH and SHA2 + +--- + gss-genr.c | 10 ++ + kex.c | 3 + + kex.h | 4 + + kexgssc.c | 392 ++++++++++++++++++++++++++++++++++++++++++++++++++++- + kexgsss.c | 333 +++++++++++++++++++++++++++++++++++++++++++++ + monitor.c | 5 +- + regress/kextype.sh | 1 + + regress/rekey.sh | 2 + + ssh-gss.h | 2 + + ssh_config.5 | 4 +- + sshconnect2.c | 2 + + sshd.c | 2 + + sshd_config.5 | 4 +- + 13 files changed, 754 insertions(+), 10 deletions(-) + +diff --git a/gss-genr.c b/gss-genr.c +index c6eff3d7..22040244 100644 +--- a/gss-genr.c ++++ b/gss-genr.c +@@ -198,6 +198,16 @@ ssh_gssapi_id_kex(Gssctxt *ctx, char *name, int kex_type) { + return GSS_C_NO_OID; + name += sizeof(KEX_GSS_GEX_SHA1_ID) - 1; + break; ++ case KEX_GSS_NISTP256_SHA256: ++ if (strlen(name) < sizeof(KEX_GSS_NISTP256_SHA256_ID)) ++ return GSS_C_NO_OID; ++ name += sizeof(KEX_GSS_NISTP256_SHA256_ID) - 1; ++ break; ++ case KEX_GSS_C25519_SHA256: ++ if (strlen(name) < sizeof(KEX_GSS_C25519_SHA256_ID)) ++ return GSS_C_NO_OID; ++ name += sizeof(KEX_GSS_C25519_SHA256_ID) - 1; ++ break; + default: + return GSS_C_NO_OID; + } +diff --git a/kex.c b/kex.c +index e798fecb..bdeeada9 100644 +--- a/kex.c ++++ b/kex.c +@@ -114,6 +114,9 @@ static const struct kexalg kexalgs[] = { + { KEX_GSS_GRP14_SHA1_ID, KEX_GSS_GRP14_SHA1, 0, SSH_DIGEST_SHA1 }, + { KEX_GSS_GRP14_SHA256_ID, KEX_GSS_GRP14_SHA256, 0, SSH_DIGEST_SHA256 }, + { KEX_GSS_GRP16_SHA512_ID, KEX_GSS_GRP16_SHA512, 0, SSH_DIGEST_SHA512 }, ++ { KEX_GSS_NISTP256_SHA256_ID, KEX_GSS_NISTP256_SHA256, ++ NID_X9_62_prime256v1, SSH_DIGEST_SHA256 }, ++ { KEX_GSS_C25519_SHA256_ID, KEX_GSS_C25519_SHA256, 0, SSH_DIGEST_SHA256 }, + #endif + { NULL, -1, -1, -1}, + }; +diff --git a/kex.h b/kex.h +index f27958ae..7def8561 100644 +--- a/kex.h ++++ b/kex.h +@@ -105,6 +105,8 @@ enum kex_exchange { + KEX_GSS_GRP14_SHA256, + KEX_GSS_GRP16_SHA512, + KEX_GSS_GEX_SHA1, ++ KEX_GSS_NISTP256_SHA256, ++ KEX_GSS_C25519_SHA256, + #endif + KEX_MAX + }; +@@ -211,6 +213,8 @@ int kexecdh_server(struct ssh *); + int kexc25519_client(struct ssh *); + int kexc25519_server(struct ssh *); + #ifdef GSSAPI ++int kexecgss_client(struct ssh *); ++int kexecgss_server(struct ssh *); + int kexgss_client(struct ssh *); + int kexgss_server(struct ssh *); + #endif +diff --git a/kexgssc.c b/kexgssc.c +index ed23f06d..bdb3109a 100644 +--- a/kexgssc.c ++++ b/kexgssc.c +@@ -43,6 +43,7 @@ + #include "packet.h" + #include "dh.h" + #include "digest.h" ++#include "ssherr.h" + + #include "ssh-gss.h" + +@@ -52,7 +53,7 @@ kexgss_client(struct ssh *ssh) { + gss_buffer_desc recv_tok, gssbuf, msg_tok, *token_ptr; + Gssctxt *ctxt; + OM_uint32 maj_status, min_status, ret_flags; +- u_int klen, kout, slen = 0, strlen; ++ u_int klen, kout, slen = 0, packet_len; + DH *dh; + BIGNUM *dh_server_pub = NULL; + BIGNUM *shared_secret = NULL; +@@ -201,20 +202,20 @@ kexgss_client(struct ssh *ssh) { + debug("Received GSSAPI_CONTINUE"); + if (maj_status == GSS_S_COMPLETE) + fatal("GSSAPI Continue received from server when complete"); +- recv_tok.value = packet_get_string(&strlen); +- recv_tok.length = strlen; ++ recv_tok.value = packet_get_string(&packet_len); ++ recv_tok.length = packet_len; + break; + case SSH2_MSG_KEXGSS_COMPLETE: + debug("Received GSSAPI_COMPLETE"); + packet_get_bignum2(dh_server_pub); +- msg_tok.value = packet_get_string(&strlen); +- msg_tok.length = strlen; ++ msg_tok.value = packet_get_string(&packet_len); ++ msg_tok.length = packet_len; + + /* Is there a token included? */ + if (packet_get_char()) { + recv_tok.value= +- packet_get_string(&strlen); +- recv_tok.length = strlen; ++ packet_get_string(&packet_len); ++ recv_tok.length = packet_len; + /* If we're already complete - protocol error */ + if (maj_status == GSS_S_COMPLETE) + packet_disconnect("Protocol error: received token when complete"); +@@ -344,4 +345,382 @@ kexgss_client(struct ssh *ssh) { + return kex_send_newkeys(ssh); + } + ++int ++kexecgss_client(struct ssh *ssh) { ++ gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; ++ gss_buffer_desc recv_tok, gssbuf, msg_tok, *token_ptr; ++ Gssctxt *ctxt; ++ OM_uint32 maj_status, min_status, ret_flags; ++ u_int klen = 0, slen = 0, packet_len; ++ u_char *server_pub = NULL; ++ u_int server_pub_len = 0; ++ BIGNUM *shared_secret = NULL; ++ u_char *kbuf = NULL; ++ u_char *serverhostkey = NULL; ++ u_char *empty = ""; ++ char *msg; ++ char *lang; ++ int type = 0; ++ int first = 1; ++ u_char hash[SSH_DIGEST_MAX_LENGTH]; ++ size_t hashlen; ++ const EC_GROUP *group = NULL; ++ const EC_POINT *public_key; ++ struct sshbuf *Q_C = NULL; ++ struct kex *kex = ssh->kex; ++ EC_POINT *server_public = NULL; ++ struct sshbuf *c25519_shared_secret = NULL; ++ int r; ++ ++ /* Initialise our GSSAPI world */ ++ ssh_gssapi_build_ctx(&ctxt); ++ if (ssh_gssapi_id_kex(ctxt, kex->name, kex->kex_type) ++ == GSS_C_NO_OID) ++ fatal("Couldn't identify host exchange"); ++ ++ if (ssh_gssapi_import_name(ctxt, kex->gss_host)) ++ fatal("Couldn't import hostname"); ++ ++ if (kex->gss_client && ++ ssh_gssapi_client_identity(ctxt, kex->gss_client)) ++ fatal("Couldn't acquire client credentials"); ++ ++ if ((Q_C = sshbuf_new()) == NULL) { ++ r = SSH_ERR_ALLOC_FAIL; ++ goto out; ++ } ++ ++ switch (kex->kex_type) { ++ case KEX_GSS_NISTP256_SHA256: ++ if ((kex->ec_client_key = EC_KEY_new_by_curve_name(kex->ec_nid)) == NULL) { ++ r = SSH_ERR_ALLOC_FAIL; ++ goto out; ++ } ++ if (EC_KEY_generate_key(kex->ec_client_key) != 1) { ++ r = SSH_ERR_LIBCRYPTO_ERROR; ++ goto out; ++ } ++ group = EC_KEY_get0_group(kex->ec_client_key); ++ public_key = EC_KEY_get0_public_key(kex->ec_client_key); ++#ifdef DEBUG_KEXECDH ++ fputs("client private key:\n", stderr); ++ sshkey_dump_ec_key(kex->ec_client_key); ++#endif ++ ++ sshbuf_put_ec(Q_C, public_key, group); ++ break; ++ case KEX_GSS_C25519_SHA256: ++ kexc25519_keygen(kex->c25519_client_key, kex->c25519_client_pubkey); ++#ifdef DEBUG_KEXECDH ++ dump_digest("client private key:", kex->c25519_client_key, ++ sizeof(kex->c25519_client_key)); ++#endif ++ ++ if ((r = sshbuf_put_string(Q_C, kex->c25519_client_pubkey, ++ sizeof(kex->c25519_client_pubkey))) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ break; ++ default: ++ fatal("%s: Unexpected KEX type %d", __func__, kex->kex_type); ++ } ++ ++ token_ptr = GSS_C_NO_BUFFER; ++ ++ do { ++ /* Step 2 - call GSS_Init_sec_context() */ ++ debug("Calling gss_init_sec_context"); ++ ++ maj_status = ssh_gssapi_init_ctx(ctxt, ++ kex->gss_deleg_creds, token_ptr, &send_tok, ++ &ret_flags); ++ ++ if (GSS_ERROR(maj_status)) { ++ if (send_tok.length != 0) { ++ packet_start(SSH2_MSG_KEXGSS_CONTINUE); ++ packet_put_string(send_tok.value, ++ send_tok.length); ++ } ++ fatal("gss_init_context failed"); ++ } ++ ++ /* If we've got an old receive buffer get rid of it */ ++ if (token_ptr != GSS_C_NO_BUFFER) ++ free(recv_tok.value); ++ ++ if (maj_status == GSS_S_COMPLETE) { ++ /* If mutual state flag is not true, kex fails */ ++ if (!(ret_flags & GSS_C_MUTUAL_FLAG)) ++ fatal("Mutual authentication failed"); ++ ++ /* If integ avail flag is not true kex fails */ ++ if (!(ret_flags & GSS_C_INTEG_FLAG)) ++ fatal("Integrity check failed"); ++ } ++ ++ /* ++ * If we have data to send, then the last message that we ++ * received cannot have been a 'complete'. ++ */ ++ if (send_tok.length != 0) { ++ if (first) { ++ const u_char * ptr; ++ size_t len; ++ ++ packet_start(SSH2_MSG_KEXGSS_INIT); ++ packet_put_string(send_tok.value, ++ send_tok.length); ++ sshbuf_get_string_direct(Q_C, &ptr, &len); ++ packet_put_string(ptr, len); ++ first = 0; ++ } else { ++ packet_start(SSH2_MSG_KEXGSS_CONTINUE); ++ packet_put_string(send_tok.value, ++ send_tok.length); ++ } ++ packet_send(); ++ gss_release_buffer(&min_status, &send_tok); ++ ++ /* If we've sent them data, they should reply */ ++ do { ++ type = packet_read(); ++ if (type == SSH2_MSG_KEXGSS_HOSTKEY) { ++ debug("Received KEXGSS_HOSTKEY"); ++ if (serverhostkey) ++ fatal("Server host key received more than once"); ++ serverhostkey = ++ packet_get_string(&slen); ++ } ++ } while (type == SSH2_MSG_KEXGSS_HOSTKEY); ++ ++ switch (type) { ++ case SSH2_MSG_KEXGSS_CONTINUE: ++ debug("Received GSSAPI_CONTINUE"); ++ if (maj_status == GSS_S_COMPLETE) ++ fatal("GSSAPI Continue received from server when complete"); ++ recv_tok.value = packet_get_string(&packet_len); ++ recv_tok.length = packet_len; ++ break; ++ case SSH2_MSG_KEXGSS_COMPLETE: ++ debug("Received GSSAPI_COMPLETE"); ++ server_pub = packet_get_string(&server_pub_len); ++ msg_tok.value = packet_get_string(&packet_len); ++ msg_tok.length = packet_len; ++ ++ /* Is there a token included? */ ++ if (packet_get_char()) { ++ recv_tok.value= ++ packet_get_string(&packet_len); ++ recv_tok.length = packet_len; ++ /* If we're already complete - protocol error */ ++ if (maj_status == GSS_S_COMPLETE) ++ packet_disconnect("Protocol error: received token when complete"); ++ } else { ++ /* No token included */ ++ if (maj_status != GSS_S_COMPLETE) ++ packet_disconnect("Protocol error: did not receive final token"); ++ } ++ break; ++ case SSH2_MSG_KEXGSS_ERROR: ++ debug("Received Error"); ++ maj_status = packet_get_int(); ++ min_status = packet_get_int(); ++ msg = packet_get_string(NULL); ++ lang = packet_get_string(NULL); ++ fatal("GSSAPI Error: \n%.400s",msg); ++ default: ++ packet_disconnect("Protocol error: didn't expect packet type %d", ++ type); ++ } ++ token_ptr = &recv_tok; ++ } else { ++ /* No data, and not complete */ ++ if (maj_status != GSS_S_COMPLETE) ++ fatal("Not complete, and no token output"); ++ } ++ } while (maj_status & GSS_S_CONTINUE_NEEDED); ++ ++ /* ++ * We _must_ have received a COMPLETE message in reply from the ++ * server, which will have set dh_server_pub and msg_tok ++ */ ++ ++ if (type != SSH2_MSG_KEXGSS_COMPLETE) ++ fatal("Didn't receive a SSH2_MSG_KEXGSS_COMPLETE when I expected it"); ++ ++ /* 7. C verifies that the key Q_S is valid */ ++ /* 8. C computes shared secret */ ++ switch (kex->kex_type) { ++ case KEX_GSS_NISTP256_SHA256: ++ if (server_pub_len != 65) ++ fatal("The received NIST-P256 key did not match" ++ "expected length (expected 65, got %d)", server_pub_len); ++ ++ if (server_pub[0] != POINT_CONVERSION_UNCOMPRESSED) ++ fatal("The received NIST-P256 key does not have first octet 0x04"); ++ ++ if ((server_public = EC_POINT_new(group)) == NULL) { ++ r = SSH_ERR_ALLOC_FAIL; ++ goto out; ++ } ++ ++ if (!EC_POINT_oct2point(group, server_public, server_pub, ++ server_pub_len, NULL)) ++ fatal("Can not decode received NIST-P256 client key"); ++#ifdef DEBUG_KEXECDH ++ fputs("server public key:\n", stderr); ++ sshkey_dump_ec_point(group, server_public); ++#endif ++ ++ if (sshkey_ec_validate_public(group, server_public) != 0) { ++ sshpkt_disconnect(ssh, "invalid client public key"); ++ r = SSH_ERR_MESSAGE_INCOMPLETE; ++ goto out; ++ } ++ ++ if (!EC_POINT_is_on_curve(group, server_public, NULL)) ++ fatal("Received NIST-P256 client key is not on curve"); ++ ++ /* Calculate shared_secret */ ++ klen = (EC_GROUP_get_degree(group) + 7) / 8; ++ if ((kbuf = malloc(klen)) == NULL || ++ (shared_secret = BN_new()) == NULL) { ++ r = SSH_ERR_ALLOC_FAIL; ++ goto out; ++ } ++ if (ECDH_compute_key(kbuf, klen, server_public, ++ kex->ec_client_key, NULL) != (int)klen || ++ BN_bin2bn(kbuf, klen, shared_secret) == NULL) { ++ r = SSH_ERR_LIBCRYPTO_ERROR; ++ goto out; ++ } ++#ifdef DEBUG_KEXECDH ++ dump_digest("shared secret", kbuf, klen); ++#endif ++ break; ++ case KEX_GSS_C25519_SHA256: ++ if (server_pub_len != 32) ++ fatal("The received curve25519 key did not match" ++ "expected length (expected 32, got %d)", server_pub_len); ++ ++ if (server_pub[server_pub_len-1] & 0x80) ++ fatal("The received key has MSB of last octet set!"); ++#ifdef DEBUG_KEXECDH ++ dump_digest("server public key:", server_pub, CURVE25519_SIZE); ++#endif ++ ++ /* generate shared secret */ ++ if ((c25519_shared_secret = sshbuf_new()) == NULL) { ++ r = SSH_ERR_ALLOC_FAIL; ++ goto out; ++ } ++ if ((r = kexc25519_shared_key(kex->c25519_client_key, ++ server_pub, c25519_shared_secret)) < 0) ++ goto out; ++ ++ /* if all octets of the shared secret are zero octets, ++ * is already checked in kexc25519_shared_key() */ ++ break; ++ default: ++ fatal("%s: Unexpected KEX type %d", __func__, kex->kex_type); ++ } ++ ++ hashlen = sizeof(hash); ++ switch (kex->kex_type) { ++ case KEX_GSS_NISTP256_SHA256: ++ kex_ecdh_hash( ++ kex->hash_alg, ++ group, ++ kex->client_version_string, ++ kex->server_version_string, ++ sshbuf_ptr(kex->my), sshbuf_len(kex->my), ++ sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), ++ (serverhostkey ? serverhostkey : empty), slen, ++ EC_KEY_get0_public_key(kex->ec_client_key), ++ server_public, ++ shared_secret, ++ hash, &hashlen ++ ); ++ break; ++ case KEX_GSS_C25519_SHA256: ++ kex_c25519_hash( ++ kex->hash_alg, ++ kex->client_version_string, kex->server_version_string, ++ sshbuf_ptr(kex->my), sshbuf_len(kex->my), ++ sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), ++ (serverhostkey ? serverhostkey : empty), slen, ++ kex->c25519_client_pubkey, server_pub, ++ sshbuf_ptr(c25519_shared_secret), sshbuf_len(c25519_shared_secret), ++ hash, &hashlen ++ ); ++ break; ++ default: ++ fatal("%s: Unexpected KEX type %d", __func__, kex->kex_type); ++ } ++ ++ gssbuf.value = hash; ++ gssbuf.length = hashlen; ++ ++ /* Verify that the hash matches the MIC we just got. */ ++ if (GSS_ERROR(ssh_gssapi_checkmic(ctxt, &gssbuf, &msg_tok))) ++ packet_disconnect("Hash's MIC didn't verify"); ++ ++ free(msg_tok.value); ++ ++ /* save session id */ ++ if (kex->session_id == NULL) { ++ kex->session_id_len = hashlen; ++ kex->session_id = xmalloc(kex->session_id_len); ++ memcpy(kex->session_id, hash, kex->session_id_len); ++ } ++ ++ if (kex->gss_deleg_creds) ++ ssh_gssapi_credentials_updated(ctxt); ++ ++ if (gss_kex_context == NULL) ++ gss_kex_context = ctxt; ++ else ++ ssh_gssapi_delete_ctx(&ctxt); ++ ++ /* Finally derive the keys and send them */ ++ switch (kex->kex_type) { ++ case KEX_GSS_NISTP256_SHA256: ++ if ((r = kex_derive_keys_bn(ssh, hash, hashlen, shared_secret)) != 0) ++ goto out; ++ break; ++ case KEX_GSS_C25519_SHA256: ++ if ((r = kex_derive_keys(ssh, hash, hashlen, c25519_shared_secret)) != 0) ++ goto out; ++ break; ++ default: ++ fatal("%s: Unexpected KEX type %d", __func__, kex->kex_type); ++ } ++ r = kex_send_newkeys(ssh); ++out: ++ free(serverhostkey); ++ explicit_bzero(hash, sizeof(hash)); ++ sshbuf_free(Q_C); ++ if (server_pub) ++ free(server_pub); ++ switch (kex->kex_type) { ++ case KEX_GSS_NISTP256_SHA256: ++ if (kex->ec_client_key) { ++ EC_KEY_free(kex->ec_client_key); ++ kex->ec_client_key = NULL; ++ } ++ if (server_public) ++ EC_POINT_clear_free(server_public); ++ if (kbuf) { ++ explicit_bzero(kbuf, klen); ++ free(kbuf); ++ } ++ if (shared_secret) ++ BN_clear_free(shared_secret); ++ break; ++ case KEX_GSS_C25519_SHA256: ++ explicit_bzero(kex->c25519_client_key, sizeof(kex->c25519_client_key)); ++ sshbuf_free(c25519_shared_secret); ++ break; ++ } ++ return r; ++} + #endif /* GSSAPI */ +diff --git a/kexgsss.c b/kexgsss.c +index b7da8823..a7c42803 100644 +--- a/kexgsss.c ++++ b/kexgsss.c +@@ -46,6 +46,7 @@ + #include "servconf.h" + #include "ssh-gss.h" + #include "digest.h" ++#include "ssherr.h" + + extern ServerOptions options; + +@@ -303,4 +304,338 @@ kexgss_server(struct ssh *ssh) + ssh_gssapi_rekey_creds(); + return 0; + } ++ ++int ++kexecgss_server(struct ssh *ssh) ++{ ++ OM_uint32 maj_status, min_status; ++ ++ /* ++ * Some GSSAPI implementations use the input value of ret_flags (an ++ * output variable) as a means of triggering mechanism specific ++ * features. Initializing it to zero avoids inadvertently ++ * activating this non-standard behaviour. ++ */ ++ ++ OM_uint32 ret_flags = 0; ++ gss_buffer_desc gssbuf, recv_tok, msg_tok; ++ gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; ++ Gssctxt *ctxt = NULL; ++ u_int slen, klen = 0; ++ u_char *kbuf = NULL; ++ BIGNUM *shared_secret = NULL; ++ int type = 0; ++ gss_OID oid; ++ char *mechs; ++ u_char hash[SSH_DIGEST_MAX_LENGTH]; ++ size_t hashlen; ++ u_char *client_pub = NULL; ++ u_int client_pub_len = 0; ++ const EC_GROUP *group = NULL; ++ EC_POINT *client_public = NULL; ++ EC_KEY *server_key = NULL; ++ const EC_POINT *public_key; ++ u_char c25519_server_key[CURVE25519_SIZE]; ++ u_char c25519_server_pubkey[CURVE25519_SIZE]; ++ struct sshbuf *c25519_shared_secret = NULL; ++ struct sshbuf *Q_S; ++ struct kex *kex = ssh->kex; ++ int r; ++ ++ /* Initialise GSSAPI */ ++ ++ /* If we're rekeying, privsep means that some of the private structures ++ * in the GSSAPI code are no longer available. This kludges them back ++ * into life ++ */ ++ if (!ssh_gssapi_oid_table_ok()) ++ if ((mechs = ssh_gssapi_server_mechanisms())) ++ free(mechs); ++ ++ debug2("%s: Identifying %s", __func__, kex->name); ++ oid = ssh_gssapi_id_kex(NULL, kex->name, kex->kex_type); ++ if (oid == GSS_C_NO_OID) ++ fatal("Unknown gssapi mechanism"); ++ ++ debug2("%s: Acquiring credentials", __func__); ++ ++ if (GSS_ERROR(PRIVSEP(ssh_gssapi_server_ctx(&ctxt, oid)))) ++ fatal("Unable to acquire credentials for the server"); ++ ++ if ((Q_S = sshbuf_new()) == NULL) { ++ r = SSH_ERR_ALLOC_FAIL; ++ goto out; ++ } ++ ++ /* 5. S generates an ephemeral key pair (do the allocations early) */ ++ switch (kex->kex_type) { ++ case KEX_GSS_NISTP256_SHA256: ++ if ((server_key = EC_KEY_new_by_curve_name(kex->ec_nid)) == NULL) { ++ r = SSH_ERR_ALLOC_FAIL; ++ goto out; ++ } ++ if (EC_KEY_generate_key(server_key) != 1) { ++ r = SSH_ERR_LIBCRYPTO_ERROR; ++ goto out; ++ } ++ group = EC_KEY_get0_group(server_key); ++ public_key = EC_KEY_get0_public_key(server_key); ++ ++ sshbuf_put_ec(Q_S, public_key, group); ++ break; ++ case KEX_GSS_C25519_SHA256: ++ kexc25519_keygen(c25519_server_key, c25519_server_pubkey); ++#ifdef DEBUG_KEXECDH ++ dump_digest("server private key:", c25519_server_key, ++ sizeof(c25519_server_key)); ++#endif ++ if ((r = sshbuf_put_string(Q_S, c25519_server_pubkey, ++ sizeof(c25519_server_pubkey))) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ break; ++ default: ++ fatal("%s: Unexpected KEX type %d", __func__, kex->kex_type); ++ } ++ ++ do { ++ debug("Wait SSH2_MSG_GSSAPI_INIT"); ++ type = packet_read(); ++ switch(type) { ++ case SSH2_MSG_KEXGSS_INIT: ++ if (client_pub != NULL) ++ fatal("Received KEXGSS_INIT after initialising"); ++ recv_tok.value = packet_get_string(&slen); ++ recv_tok.length = slen; ++ ++ client_pub = packet_get_string(&client_pub_len); ++ ++ /* Send SSH_MSG_KEXGSS_HOSTKEY here, if we want */ ++ break; ++ case SSH2_MSG_KEXGSS_CONTINUE: ++ recv_tok.value = packet_get_string(&slen); ++ recv_tok.length = slen; ++ break; ++ default: ++ packet_disconnect( ++ "Protocol error: didn't expect packet type %d", ++ type); ++ } ++ ++ maj_status = PRIVSEP(ssh_gssapi_accept_ctx(ctxt, &recv_tok, ++ &send_tok, &ret_flags)); ++ ++ free(recv_tok.value); ++ ++ if (maj_status != GSS_S_COMPLETE && send_tok.length == 0) ++ fatal("Zero length token output when incomplete"); ++ ++ if (client_pub == NULL) ++ fatal("No client public key"); ++ ++ if (maj_status & GSS_S_CONTINUE_NEEDED) { ++ debug("Sending GSSAPI_CONTINUE"); ++ packet_start(SSH2_MSG_KEXGSS_CONTINUE); ++ packet_put_string(send_tok.value, send_tok.length); ++ packet_send(); ++ gss_release_buffer(&min_status, &send_tok); ++ } ++ } while (maj_status & GSS_S_CONTINUE_NEEDED); ++ ++ if (GSS_ERROR(maj_status)) { ++ if (send_tok.length > 0) { ++ packet_start(SSH2_MSG_KEXGSS_CONTINUE); ++ packet_put_string(send_tok.value, send_tok.length); ++ packet_send(); ++ } ++ fatal("accept_ctx died"); ++ } ++ ++ if (!(ret_flags & GSS_C_MUTUAL_FLAG)) ++ fatal("Mutual Authentication flag wasn't set"); ++ ++ if (!(ret_flags & GSS_C_INTEG_FLAG)) ++ fatal("Integrity flag wasn't set"); ++ ++ /* 3. S verifies that the (client) key is valid */ ++ /* calculate shared secret */ ++ switch (kex->kex_type) { ++ case KEX_GSS_NISTP256_SHA256: ++ if (client_pub_len != 65) ++ fatal("The received NIST-P256 key did not match" ++ "expected length (expected 65, got %d)", client_pub_len); ++ ++ if (client_pub[0] != POINT_CONVERSION_UNCOMPRESSED) ++ fatal("The received NIST-P256 key does not have first octet 0x04"); ++ ++ if ((client_public = EC_POINT_new(group)) == NULL) { ++ r = SSH_ERR_ALLOC_FAIL; ++ goto out; ++ } ++ ++ if (!EC_POINT_oct2point(group, client_public, client_pub, ++ client_pub_len, NULL)) ++ fatal("Can not decode received NIST-P256 client key"); ++ ++ if (sshkey_ec_validate_public(group, client_public) != 0) { ++ sshpkt_disconnect(ssh, "invalid client public key"); ++ r = SSH_ERR_MESSAGE_INCOMPLETE; ++ goto out; ++ } ++ ++ if (!EC_POINT_is_on_curve(group, client_public, NULL)) ++ fatal("Received NIST-P256 client key is not on curve"); ++ ++ /* Calculate shared_secret */ ++ klen = (EC_GROUP_get_degree(group) + 7) / 8; ++ if ((kbuf = malloc(klen)) == NULL || ++ (shared_secret = BN_new()) == NULL) { ++ r = SSH_ERR_ALLOC_FAIL; ++ goto out; ++ } ++ if (ECDH_compute_key(kbuf, klen, client_public, ++ server_key, NULL) != (int)klen || ++ BN_bin2bn(kbuf, klen, shared_secret) == NULL) { ++ r = SSH_ERR_LIBCRYPTO_ERROR; ++ goto out; ++ } ++ break; ++ case KEX_GSS_C25519_SHA256: ++ if (client_pub_len != 32) ++ fatal("The received curve25519 key did not match" ++ "expected length (expected 32, got %d)", client_pub_len); ++ ++ if (client_pub[client_pub_len-1] & 0x80) ++ fatal("The received key has MSB of last octet set!"); ++ ++ /* generate shared secret */ ++ if ((c25519_shared_secret = sshbuf_new()) == NULL) { ++ r = SSH_ERR_ALLOC_FAIL; ++ goto out; ++ } ++ if ((r = kexc25519_shared_key(c25519_server_key, ++ client_pub, c25519_shared_secret)) < 0) ++ goto out; ++ ++ /* if all octets of the shared secret are zero octets, ++ * is already checked in kexc25519_shared_key() */ ++ break; ++ default: ++ fatal("%s: Unexpected KEX type %d", __func__, kex->kex_type); ++ } ++ ++ hashlen = sizeof(hash); ++ switch (kex->kex_type) { ++ case KEX_GSS_NISTP256_SHA256: ++ kex_ecdh_hash( ++ kex->hash_alg, ++ group, ++ kex->client_version_string, ++ kex->server_version_string, ++ sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), ++ sshbuf_ptr(kex->my), sshbuf_len(kex->my), ++ NULL, 0, ++ client_public, ++ EC_KEY_get0_public_key(server_key), ++ shared_secret, ++ hash, &hashlen ++ ); ++ break; ++ case KEX_GSS_C25519_SHA256: ++ kex_c25519_hash( ++ kex->hash_alg, ++ kex->client_version_string, kex->server_version_string, ++ sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), ++ sshbuf_ptr(kex->my), sshbuf_len(kex->my), ++ NULL, 0, ++ client_pub, c25519_server_pubkey, ++ sshbuf_ptr(c25519_shared_secret), sshbuf_len(c25519_shared_secret), ++ hash, &hashlen ++ ); ++ break; ++ default: ++ fatal("%s: Unexpected KEX type %d", __func__, kex->kex_type); ++ } ++ ++ if (kex->session_id == NULL) { ++ kex->session_id_len = hashlen; ++ kex->session_id = xmalloc(kex->session_id_len); ++ memcpy(kex->session_id, hash, kex->session_id_len); ++ } ++ ++ gssbuf.value = hash; ++ gssbuf.length = hashlen; ++ ++ if (GSS_ERROR(PRIVSEP(ssh_gssapi_sign(ctxt,&gssbuf,&msg_tok)))) ++ fatal("Couldn't get MIC"); ++ ++ packet_start(SSH2_MSG_KEXGSS_COMPLETE); ++ { ++ const u_char *ptr; ++ size_t len; ++ if ((r = sshbuf_get_string_direct(Q_S, &ptr, &len)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ packet_put_string(ptr, len); ++ } ++ packet_put_string(msg_tok.value, msg_tok.length); ++ ++ if (send_tok.length != 0) { ++ packet_put_char(1); /* true */ ++ packet_put_string(send_tok.value, send_tok.length); ++ } else { ++ packet_put_char(0); /* false */ ++ } ++ packet_send(); ++ ++ gss_release_buffer(&min_status, &send_tok); ++ gss_release_buffer(&min_status, &msg_tok); ++ ++ if (gss_kex_context == NULL) ++ gss_kex_context = ctxt; ++ else ++ ssh_gssapi_delete_ctx(&ctxt); ++ ++ /* Finally derive the keys and send them */ ++ switch (kex->kex_type) { ++ case KEX_GSS_NISTP256_SHA256: ++ if ((r = kex_derive_keys_bn(ssh, hash, hashlen, shared_secret)) != 0) ++ goto out; ++ break; ++ case KEX_GSS_C25519_SHA256: ++ if ((r = kex_derive_keys(ssh, hash, hashlen, c25519_shared_secret)) != 0) ++ goto out; ++ break; ++ default: ++ fatal("%s: Unexpected KEX type %d", __func__, kex->kex_type); ++ } ++ if ((r = kex_send_newkeys(ssh)) != 0) ++ goto out; ++ ++ /* If this was a rekey, then save out any delegated credentials we ++ * just exchanged. */ ++ if (options.gss_store_rekey) ++ ssh_gssapi_rekey_creds(); ++out: ++ explicit_bzero(hash, sizeof(hash)); ++ if (Q_S) ++ sshbuf_free(Q_S); ++ if (client_pub) ++ free(client_pub); ++ switch (kex->kex_type) { ++ case KEX_GSS_NISTP256_SHA256: ++ if (server_key) ++ EC_KEY_free(server_key); ++ if (kbuf) { ++ explicit_bzero(kbuf, klen); ++ free(kbuf); ++ } ++ if (shared_secret) ++ BN_clear_free(shared_secret); ++ break; ++ case KEX_GSS_C25519_SHA256: ++ explicit_bzero(c25519_server_key, sizeof(c25519_server_key)); ++ sshbuf_free(c25519_shared_secret); ++ break; ++ } ++ return r; ++} + #endif /* GSSAPI */ +diff --git a/monitor.c b/monitor.c +index d6bc7ac7..b11616c8 100644 +--- a/monitor.c ++++ b/monitor.c +@@ -1651,6 +1651,8 @@ monitor_apply_keystate(struct monitor *pmonitor) + kex->kex[KEX_GSS_GRP14_SHA256] = kexgss_server; + kex->kex[KEX_GSS_GRP16_SHA512] = kexgss_server; + kex->kex[KEX_GSS_GEX_SHA1] = kexgss_server; ++ kex->kex[KEX_GSS_NISTP256_SHA256] = kexecgss_server; ++ kex->kex[KEX_GSS_C25519_SHA256] = kexecgss_server; + } + #endif + kex->load_host_public_key=&get_hostkey_public_by_type; +@@ -1867,7 +1869,8 @@ mm_answer_gss_sign(int socket, Buffer *m) + + if ((r = sshbuf_get_string(m, (u_char **)&data.value, &data.length)) != 0) + fatal("%s: buffer error: %s", __func__, ssh_err(r)); +- if (data.length != 20) ++ /* Lengths of SHA-1, SHA-256 and SHA-512 hashes that are used */ ++ if (data.length != 20 && data.length != 32 && data.length != 64) + fatal("%s: data length incorrect: %d", __func__, + (int) data.length); + +diff --git a/regress/kextype.sh b/regress/kextype.sh +index 45f4f16d..d5b4a713 100644 +--- a/regress/kextype.sh ++++ b/regress/kextype.sh +@@ -15,6 +15,7 @@ echo "KexAlgorithms=$KEXOPT" >> $OBJ/sshd_proxy + tries="1 2 3 4" + for k in `${SSH} -Q kex`; do + if [ $k = "gss-gex-sha1-" -o $k = "gss-group1-sha1-" -o \ ++ $k = "gss-nistp256-sha256-" -o $k = "gss-curve25519-sha256-" -o \ + $k = "gss-group14-sha1-" -o $k = "gss-group14-sha256-" -o \ + $k = "gss-group16-sha512-" ]; then + continue +diff --git a/regress/rekey.sh b/regress/rekey.sh +index a2921bef..b118c6c8 100644 +--- a/regress/rekey.sh ++++ b/regress/rekey.sh +@@ -39,6 +39,7 @@ increase_datafile_size 300 + opts="" + for i in `${SSH} -Q kex`; do + if [ $i = "gss-gex-sha1-" -o $i = "gss-group1-sha1-" -o \ ++ $i = "gss-nistp256-sha256-" -o $i = "gss-curve25519-sha256-" -o \ + $i = "gss-group14-sha1-" -o $i = "gss-group14-sha256-" -o \ + $i = "gss-group16-sha512-" ]; then + continue +@@ -62,6 +63,7 @@ if ${SSH} -Q cipher-auth | grep '^.*$' >/dev/null 2>&1 ; then + for c in `${SSH} -Q cipher-auth`; do + for kex in `${SSH} -Q kex`; do + if [ $kex = "gss-gex-sha1-" -o $kex = "gss-group1-sha1-" -o \ ++ $kex = "gss-nistp256-sha256-" -o $kex = "gss-curve25519-sha256-" -o \ + $kex = "gss-group14-sha1-" -o $kex = "gss-group14-sha256-" -o \ + $kex = "gss-group16-sha512-" ]; then + continue +diff --git a/ssh-gss.h b/ssh-gss.h +index 7bf8d75e..1f73721d 100644 +--- a/ssh-gss.h ++++ b/ssh-gss.h +@@ -73,6 +73,8 @@ + #define KEX_GSS_GRP14_SHA256_ID "gss-group14-sha256-" + #define KEX_GSS_GRP16_SHA512_ID "gss-group16-sha512-" + #define KEX_GSS_GEX_SHA1_ID "gss-gex-sha1-" ++#define KEX_GSS_NISTP256_SHA256_ID "gss-nistp256-sha256-" ++#define KEX_GSS_C25519_SHA256_ID "gss-curve25519-sha256-" + + #define GSS_KEX_DEFAULT_KEX \ + KEX_GSS_GEX_SHA1_ID "," \ +diff --git a/ssh_config.5 b/ssh_config.5 +index 3d6da510..1dc29bf1 100644 +--- a/ssh_config.5 ++++ b/ssh_config.5 +@@ -762,7 +762,9 @@ gss-gex-sha1-, + gss-group1-sha1-, + gss-group14-sha1-, + gss-group14-sha256-, +-gss-group16-sha512- ++gss-group16-sha512-, ++gss-nistp256-sha256-, ++gss-curve25519-sha256- + .Ed + .Pp + The default is +diff --git a/sshconnect2.c b/sshconnect2.c +index 5d6b8be0..280ae5a6 100644 +--- a/sshconnect2.c ++++ b/sshconnect2.c +@@ -256,6 +256,8 @@ ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port) + kex->kex[KEX_GSS_GRP14_SHA256] = kexgss_client; + kex->kex[KEX_GSS_GRP16_SHA512] = kexgss_client; + kex->kex[KEX_GSS_GEX_SHA1] = kexgss_client; ++ kex->kex[KEX_GSS_NISTP256_SHA256] = kexecgss_client; ++ kex->kex[KEX_GSS_C25519_SHA256] = kexecgss_client; + } + #endif + kex->kex[KEX_C25519_SHA256] = kexc25519_client; +diff --git a/sshd.c b/sshd.c +index e4c879a2..a35735d8 100644 +--- a/sshd.c ++++ b/sshd.c +@@ -2247,6 +2247,8 @@ do_ssh2_kex(void) + kex->kex[KEX_GSS_GRP14_SHA256] = kexgss_server; + kex->kex[KEX_GSS_GRP16_SHA512] = kexgss_server; + kex->kex[KEX_GSS_GEX_SHA1] = kexgss_server; ++ kex->kex[KEX_GSS_NISTP256_SHA256] = kexecgss_server; ++ kex->kex[KEX_GSS_C25519_SHA256] = kexecgss_server; + } + #endif + kex->server = 1; +diff --git a/sshd_config.5 b/sshd_config.5 +index 0793418b..888316bf 100644 +--- a/sshd_config.5 ++++ b/sshd_config.5 +@@ -677,7 +677,9 @@ gss-gex-sha1-, + gss-group1-sha1-, + gss-group14-sha1-, + gss-group14-sha256-, +-gss-group16-sha512- ++gss-group16-sha512-, ++gss-nistp256-sha256-, ++gss-curve25519-sha256- + .Ed + .Pp + The default is +-- +2.13.5 + + +From 0431695660d5eb1dd1169d42a1624c75a92aa5d2 Mon Sep 17 00:00:00 2001 +From: Jakub Jelen +Date: Wed, 30 Aug 2017 15:30:51 +0200 +Subject: [PATCH 3/3] Simplify rough edges of GSSAPI Kex + +--- + gss-genr.c | 53 +++++++++++++++++------------------------------------ + regress/kextype.sh | 10 ++++------ + regress/rekey.sh | 20 ++++++++------------ + 3 files changed, 29 insertions(+), 54 deletions(-) + +diff --git a/gss-genr.c b/gss-genr.c +index 22040244..c671be31 100644 +--- a/gss-genr.c ++++ b/gss-genr.c +@@ -171,47 +171,28 @@ ssh_gssapi_kex_mechs(gss_OID_set gss_supported, ssh_gssapi_check_fn *check, + gss_OID + ssh_gssapi_id_kex(Gssctxt *ctx, char *name, int kex_type) { + int i = 0; +- +- switch (kex_type) { +- case KEX_GSS_GRP1_SHA1: +- if (strlen(name) < sizeof(KEX_GSS_GRP1_SHA1_ID)) +- return GSS_C_NO_OID; +- name += sizeof(KEX_GSS_GRP1_SHA1_ID) - 1; +- break; +- case KEX_GSS_GRP14_SHA1: +- if (strlen(name) < sizeof(KEX_GSS_GRP14_SHA1_ID)) +- return GSS_C_NO_OID; +- name += sizeof(KEX_GSS_GRP14_SHA1_ID) - 1; +- break; +- case KEX_GSS_GRP14_SHA256: +- if (strlen(name) < sizeof(KEX_GSS_GRP14_SHA256_ID)) +- return GSS_C_NO_OID; +- name += sizeof(KEX_GSS_GRP14_SHA256_ID) - 1; +- break; +- case KEX_GSS_GRP16_SHA512: +- if (strlen(name) < sizeof(KEX_GSS_GRP16_SHA512_ID)) +- return GSS_C_NO_OID; +- name += sizeof(KEX_GSS_GRP16_SHA512_ID) - 1; +- break; +- case KEX_GSS_GEX_SHA1: +- if (strlen(name) < sizeof(KEX_GSS_GEX_SHA1_ID)) +- return GSS_C_NO_OID; +- name += sizeof(KEX_GSS_GEX_SHA1_ID) - 1; +- break; +- case KEX_GSS_NISTP256_SHA256: +- if (strlen(name) < sizeof(KEX_GSS_NISTP256_SHA256_ID)) +- return GSS_C_NO_OID; +- name += sizeof(KEX_GSS_NISTP256_SHA256_ID) - 1; +- break; +- case KEX_GSS_C25519_SHA256: +- if (strlen(name) < sizeof(KEX_GSS_C25519_SHA256_ID)) +- return GSS_C_NO_OID; +- name += sizeof(KEX_GSS_C25519_SHA256_ID) - 1; ++ ++#define SKIP_KEX_NAME(type) \ ++ case type: \ ++ if (strlen(name) < sizeof(type##_ID)) \ ++ return GSS_C_NO_OID; \ ++ name += sizeof(type##_ID) - 1; \ + break; ++ ++ switch (kex_type) { ++ SKIP_KEX_NAME(KEX_GSS_GRP1_SHA1) ++ SKIP_KEX_NAME(KEX_GSS_GRP14_SHA1) ++ SKIP_KEX_NAME(KEX_GSS_GRP14_SHA256) ++ SKIP_KEX_NAME(KEX_GSS_GRP16_SHA512) ++ SKIP_KEX_NAME(KEX_GSS_GEX_SHA1) ++ SKIP_KEX_NAME(KEX_GSS_NISTP256_SHA256) ++ SKIP_KEX_NAME(KEX_GSS_C25519_SHA256) + default: + return GSS_C_NO_OID; + } + ++#undef SKIP_KEX_NAME ++ + while (gss_enc2oid[i].encoded != NULL && + strcmp(name, gss_enc2oid[i].encoded) != 0) + i++; +diff --git a/regress/kextype.sh b/regress/kextype.sh +index d5b4a713..6b4af28a 100644 +--- a/regress/kextype.sh ++++ b/regress/kextype.sh +@@ -14,12 +14,10 @@ echo "KexAlgorithms=$KEXOPT" >> $OBJ/sshd_proxy + + tries="1 2 3 4" + for k in `${SSH} -Q kex`; do +- if [ $k = "gss-gex-sha1-" -o $k = "gss-group1-sha1-" -o \ +- $k = "gss-nistp256-sha256-" -o $k = "gss-curve25519-sha256-" -o \ +- $k = "gss-group14-sha1-" -o $k = "gss-group14-sha256-" -o \ +- $k = "gss-group16-sha512-" ]; then +- continue +- fi ++ # ignore GSSAPI key exchange mechanisms (all of them start with gss-) ++ case $k in ++ gss-* ) continue ;; ++ esac + verbose "kex $k" + for i in $tries; do + ${SSH} -F $OBJ/ssh_proxy -o KexAlgorithms=$k x true +diff --git a/regress/rekey.sh b/regress/rekey.sh +index b118c6c8..d6a8742f 100644 +--- a/regress/rekey.sh ++++ b/regress/rekey.sh +@@ -38,12 +38,10 @@ increase_datafile_size 300 + + opts="" + for i in `${SSH} -Q kex`; do +- if [ $i = "gss-gex-sha1-" -o $i = "gss-group1-sha1-" -o \ +- $i = "gss-nistp256-sha256-" -o $i = "gss-curve25519-sha256-" -o \ +- $i = "gss-group14-sha1-" -o $i = "gss-group14-sha256-" -o \ +- $i = "gss-group16-sha512-" ]; then +- continue +- fi ++ # ignore GSSAPI key exchange mechanisms (all of them start with gss-) ++ case $i in ++ gss-* ) continue ;; ++ esac + opts="$opts KexAlgorithms=$i" + done + for i in `${SSH} -Q cipher`; do +@@ -62,12 +60,10 @@ done + if ${SSH} -Q cipher-auth | grep '^.*$' >/dev/null 2>&1 ; then + for c in `${SSH} -Q cipher-auth`; do + for kex in `${SSH} -Q kex`; do +- if [ $kex = "gss-gex-sha1-" -o $kex = "gss-group1-sha1-" -o \ +- $kex = "gss-nistp256-sha256-" -o $kex = "gss-curve25519-sha256-" -o \ +- $kex = "gss-group14-sha1-" -o $kex = "gss-group14-sha256-" -o \ +- $kex = "gss-group16-sha512-" ]; then +- continue +- fi ++ # ignore GSSAPI key exchange mechanisms (all of them start with gss-) ++ case $kex in ++ gss-* ) continue ;; ++ esac + verbose "client rekey $c $kex" + ssh_data_rekeying "KexAlgorithms=$kex" -oRekeyLimit=256k -oCiphers=$c + done +-- +2.13.5 + diff --git a/openssh-7.5p1-sandbox.patch b/openssh-7.5p1-sandbox.patch new file mode 100644 index 0000000..b761962 --- /dev/null +++ b/openssh-7.5p1-sandbox.patch @@ -0,0 +1,108 @@ +In order to use the OpenSSL-ibmpkcs11 engine it is needed to allow flock +and ipc calls, because this engine calls OpenCryptoki (a PKCS#11 +implementation) which calls the libraries that will communicate with the +crypto cards. OpenCryptoki makes use of flock and ipc and, as of now, +this is only need on s390 architecture. + +Signed-off-by: Eduardo Barretto +--- + sandbox-seccomp-filter.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/sandbox-seccomp-filter.c b/sandbox-seccomp-filter.c +index ca75cc7..6e7de31 100644 +--- a/sandbox-seccomp-filter.c ++++ b/sandbox-seccomp-filter.c +@@ -166,6 +166,9 @@ static const struct sock_filter preauth_insns[] = { + #ifdef __NR_exit_group + SC_ALLOW(__NR_exit_group), + #endif ++#if defined(__NR_flock) && defined(__s390__) ++ SC_ALLOW(__NR_flock), ++#endif + #ifdef __NR_geteuid + SC_ALLOW(__NR_geteuid), + #endif +@@ -178,6 +181,9 @@ static const struct sock_filter preauth_insns[] = { + #ifdef __NR_gettimeofday + SC_ALLOW(__NR_gettimeofday), + #endif ++#if defined(__NR_ipc) && defined(__s390__) ++ SC_ALLOW(__NR_ipc), ++#endif + #ifdef __NR_getuid + SC_ALLOW(__NR_getuid), + #endif +-- +1.9.1 + +getuid and geteuid are needed when using an openssl engine that calls a +crypto card, e.g. ICA (libica). +Those syscalls are also needed by the distros for audit code. + +Signed-off-by: Eduardo Barretto +--- + sandbox-seccomp-filter.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/sandbox-seccomp-filter.c b/sandbox-seccomp-filter.c +index 6e7de31..e86aa2c 100644 +--- a/sandbox-seccomp-filter.c ++++ b/sandbox-seccomp-filter.c +@@ -175,6 +175,18 @@ static const struct sock_filter preauth_insns[] = { + #ifdef __NR_getpid + SC_ALLOW(__NR_getpid), + #endif ++#ifdef __NR_getuid ++ SC_ALLOW(__NR_getuid), ++#endif ++#ifdef __NR_getuid32 ++ SC_ALLOW(__NR_getuid32), ++#endif ++#ifdef __NR_geteuid ++ SC_ALLOW(__NR_geteuid), ++#endif ++#ifdef __NR_geteuid32 ++ SC_ALLOW(__NR_geteuid32), ++#endif + #ifdef __NR_getrandom + SC_ALLOW(__NR_getrandom), + #endif +-- 1.9.1 + +The EP11 crypto card needs to make an ioctl call, which receives an +specific argument. This crypto card is for s390 only. + +Signed-off-by: Eduardo Barretto +--- + sandbox-seccomp-filter.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/sandbox-seccomp-filter.c b/sandbox-seccomp-filter.c +index e86aa2c..98062f1 100644 +--- a/sandbox-seccomp-filter.c ++++ b/sandbox-seccomp-filter.c +@@ -250,6 +250,8 @@ static const struct sock_filter preauth_insns[] = { + SC_ALLOW_ARG(__NR_ioctl, 1, Z90STAT_STATUS_MASK), + SC_ALLOW_ARG(__NR_ioctl, 1, ICARSAMODEXPO), + SC_ALLOW_ARG(__NR_ioctl, 1, ICARSACRT), ++ /* Allow ioctls for EP11 crypto card on s390 */ ++ SC_ALLOW_ARG(__NR_ioctl, 1, ZSENDEP11CPRB), + #endif + #if defined(__x86_64__) && defined(__ILP32__) && defined(__X32_SYSCALL_BIT) + /* +-- +1.9.1 +diff -up openssh-7.6p1/sandbox-seccomp-filter.c.sandbox openssh-7.6p1/sandbox-seccomp-filter.c +--- openssh-7.6p1/sandbox-seccomp-filter.c.sandbox 2017-12-12 13:59:30.563874059 +0100 ++++ openssh-7.6p1/sandbox-seccomp-filter.c 2017-12-12 13:59:14.842784083 +0100 +@@ -190,6 +190,9 @@ static const struct sock_filter preauth_ + #ifdef __NR_geteuid32 + SC_ALLOW(__NR_geteuid32), + #endif ++#ifdef __NR_gettid ++ SC_ALLOW(__NR_gettid), ++#endif + #ifdef __NR_getrandom + SC_ALLOW(__NR_getrandom), + #endif diff --git a/openssh-7.6p1-audit.patch b/openssh-7.6p1-audit.patch new file mode 100644 index 0000000..e184894 --- /dev/null +++ b/openssh-7.6p1-audit.patch @@ -0,0 +1,2172 @@ +diff -up openssh-7.6p1/audit-bsm.c.audit openssh-7.6p1/audit-bsm.c +--- openssh-7.6p1/audit-bsm.c.audit 2017-10-02 21:34:26.000000000 +0200 ++++ openssh-7.6p1/audit-bsm.c 2017-10-04 17:18:32.834505048 +0200 +@@ -373,10 +373,23 @@ audit_connection_from(const char *host, + #endif + } + +-void ++int + audit_run_command(const char *command) + { + /* not implemented */ ++ return 0; ++} ++ ++void ++audit_end_command(int handle, const char *command) ++{ ++ /* not implemented */ ++} ++ ++void ++audit_count_session_open(void) ++{ ++ /* not necessary */ + } + + void +@@ -391,6 +404,12 @@ audit_session_close(struct logininfo *li + /* not implemented */ + } + ++int ++audit_keyusage(int host_user, char *fp, int rv) ++{ ++ /* not implemented */ ++} ++ + void + audit_event(ssh_audit_event_t event) + { +@@ -452,4 +471,34 @@ audit_event(ssh_audit_event_t event) + debug("%s: unhandled event %d", __func__, event); + } + } ++ ++void ++audit_unsupported_body(int what) ++{ ++ /* not implemented */ ++} ++ ++void ++audit_kex_body(int ctos, char *enc, char *mac, char *compress, char *pfs, pid_t pid, uid_t uid) ++{ ++ /* not implemented */ ++} ++ ++void ++audit_session_key_free_body(int ctos, pid_t pid, uid_t uid) ++{ ++ /* not implemented */ ++} ++ ++void ++audit_destroy_sensitive_data(const char *fp) ++{ ++ /* not implemented */ ++} ++ ++void ++audit_destroy_sensitive_data(const char *fp, pid_t pid, uid_t uid) ++{ ++ /* not implemented */ ++} + #endif /* BSM */ +diff -up openssh-7.6p1/audit.c.audit openssh-7.6p1/audit.c +--- openssh-7.6p1/audit.c.audit 2017-10-02 21:34:26.000000000 +0200 ++++ openssh-7.6p1/audit.c 2017-10-04 17:18:32.834505048 +0200 +@@ -34,6 +35,12 @@ + #include "log.h" + #include "hostfile.h" + #include "auth.h" ++#include "ssh-gss.h" ++#include "monitor_wrap.h" ++#include "xmalloc.h" ++#include "misc.h" ++#include "servconf.h" ++#include "ssherr.h" + + /* + * Care must be taken when using this since it WILL NOT be initialized when +@@ -41,6 +47,7 @@ + * audit_event(CONNECTION_ABANDON) is called. Test for NULL before using. + */ + extern Authctxt *the_authctxt; ++extern ServerOptions options; + + /* Maybe add the audit class to struct Authmethod? */ + ssh_audit_event_t +@@ -69,13 +76,10 @@ audit_classify_auth(const char *method) + const char * + audit_username(void) + { +- static const char unknownuser[] = "(unknown user)"; +- static const char invaliduser[] = "(invalid user)"; ++ static const char unknownuser[] = "(unknown)"; + +- if (the_authctxt == NULL || the_authctxt->user == NULL) ++ if (the_authctxt == NULL || the_authctxt->user == NULL || !the_authctxt->valid) + return (unknownuser); +- if (!the_authctxt->valid) +- return (invaliduser); + return (the_authctxt->user); + } + +@@ -109,6 +113,35 @@ audit_event_lookup(ssh_audit_event_t ev) + return(event_lookup[i].name); + } + ++void ++audit_key(int host_user, int *rv, const struct sshkey *key) ++{ ++ char *fp; ++ ++ fp = sshkey_fingerprint(key, options.fingerprint_hash, SSH_FP_HEX); ++ if (audit_keyusage(host_user, fp, (*rv == 0)) == 0) ++ *rv = -SSH_ERR_INTERNAL_ERROR; ++ free(fp); ++} ++ ++void ++audit_unsupported(int what) ++{ ++ PRIVSEP(audit_unsupported_body(what)); ++} ++ ++void ++audit_kex(int ctos, char *enc, char *mac, char *comp, char *pfs) ++{ ++ PRIVSEP(audit_kex_body(ctos, enc, mac, comp, pfs, getpid(), getuid())); ++} ++ ++void ++audit_session_key_free(int ctos) ++{ ++ PRIVSEP(audit_session_key_free_body(ctos, getpid(), getuid())); ++} ++ + # ifndef CUSTOM_SSH_AUDIT_EVENTS + /* + * Null implementations of audit functions. +@@ -138,6 +173,17 @@ audit_event(ssh_audit_event_t event) + } + + /* ++ * Called when a child process has called, or will soon call, ++ * audit_session_open. ++ */ ++void ++audit_count_session_open(void) ++{ ++ debug("audit count session open euid %d user %s", geteuid(), ++ audit_username()); ++} ++ ++/* + * Called when a user session is started. Argument is the tty allocated to + * the session, or NULL if no tty was allocated. + * +@@ -172,13 +218,82 @@ audit_session_close(struct logininfo *li + /* + * This will be called when a user runs a non-interactive command. Note that + * it may be called multiple times for a single connection since SSH2 allows +- * multiple sessions within a single connection. ++ * multiple sessions within a single connection. Returns a "handle" for ++ * audit_end_command. + */ +-void ++int + audit_run_command(const char *command) + { + debug("audit run command euid %d user %s command '%.200s'", geteuid(), + audit_username(), command); ++ return 0; ++} ++ ++/* ++ * This will be called when the non-interactive command finishes. Note that ++ * it may be called multiple times for a single connection since SSH2 allows ++ * multiple sessions within a single connection. "handle" should come from ++ * the corresponding audit_run_command. ++ */ ++void ++audit_end_command(int handle, const char *command) ++{ ++ debug("audit end nopty exec euid %d user %s command '%.200s'", geteuid(), ++ audit_username(), command); ++} ++ ++/* ++ * This will be called when user is successfully autherized by the RSA1/RSA/DSA key. ++ * ++ * Type is the key type, len is the key length(byte) and fp is the fingerprint of the key. ++ */ ++int ++audit_keyusage(int host_user, char *fp, int rv) ++{ ++ debug("audit %s key usage euid %d user %s fingerprint %s, result %d", ++ host_user ? "pubkey" : "hostbased", geteuid(), audit_username(), ++ fp, rv); ++} ++ ++/* ++ * This will be called when the protocol negotiation fails. ++ */ ++void ++audit_unsupported_body(int what) ++{ ++ debug("audit unsupported protocol euid %d type %d", geteuid(), what); ++} ++ ++/* ++ * This will be called on succesfull protocol negotiation. ++ */ ++void ++audit_kex_body(int ctos, char *enc, char *mac, char *compress, char *pfs, pid_t pid, ++ uid_t uid) ++{ ++ debug("audit protocol negotiation euid %d direction %d cipher %s mac %s compresion %s pfs %s from pid %ld uid %u", ++ (unsigned)geteuid(), ctos, enc, mac, compress, pfs, (long)pid, ++ (unsigned)uid); ++} ++ ++/* ++ * This will be called on succesfull session key discard ++ */ ++void ++audit_session_key_free_body(int ctos, pid_t pid, uid_t uid) ++{ ++ debug("audit session key discard euid %u direction %d from pid %ld uid %u", ++ (unsigned)geteuid(), ctos, (long)pid, (unsigned)uid); ++} ++ ++/* ++ * This will be called on destroy private part of the server key ++ */ ++void ++audit_destroy_sensitive_data(const char *fp, pid_t pid, uid_t uid) ++{ ++ debug("audit destroy sensitive data euid %d fingerprint %s from pid %ld uid %u", ++ geteuid(), fp, (long)pid, (unsigned)uid); + } + # endif /* !defined CUSTOM_SSH_AUDIT_EVENTS */ + #endif /* SSH_AUDIT_EVENTS */ +diff -up openssh-7.6p1/audit.h.audit openssh-7.6p1/audit.h +--- openssh-7.6p1/audit.h.audit 2017-10-02 21:34:26.000000000 +0200 ++++ openssh-7.6p1/audit.h 2017-10-04 17:18:32.834505048 +0200 +@@ -26,6 +26,7 @@ + # define _SSH_AUDIT_H + + #include "loginrec.h" ++#include "sshkey.h" + + enum ssh_audit_event_type { + SSH_LOGIN_EXCEED_MAXTRIES, +@@ -43,13 +44,32 @@ enum ssh_audit_event_type { + SSH_CONNECTION_ABANDON, /* closed without completing auth */ + SSH_AUDIT_UNKNOWN + }; ++ ++enum ssh_audit_kex { ++ SSH_AUDIT_UNSUPPORTED_CIPHER, ++ SSH_AUDIT_UNSUPPORTED_MAC, ++ SSH_AUDIT_UNSUPPORTED_COMPRESSION ++}; + typedef enum ssh_audit_event_type ssh_audit_event_t; + ++int listening_for_clients(void); ++ + void audit_connection_from(const char *, int); + void audit_event(ssh_audit_event_t); ++void audit_count_session_open(void); + void audit_session_open(struct logininfo *); + void audit_session_close(struct logininfo *); +-void audit_run_command(const char *); ++int audit_run_command(const char *); ++void audit_end_command(int, const char *); + ssh_audit_event_t audit_classify_auth(const char *); ++int audit_keyusage(int, char *, int); ++void audit_key(int, int *, const struct sshkey *); ++void audit_unsupported(int); ++void audit_kex(int, char *, char *, char *, char *); ++void audit_unsupported_body(int); ++void audit_kex_body(int, char *, char *, char *, char *, pid_t, uid_t); ++void audit_session_key_free(int ctos); ++void audit_session_key_free_body(int ctos, pid_t, uid_t); ++void audit_destroy_sensitive_data(const char *, pid_t, uid_t); + + #endif /* _SSH_AUDIT_H */ +diff -up openssh-7.6p1/audit-linux.c.audit openssh-7.6p1/audit-linux.c +--- openssh-7.6p1/audit-linux.c.audit 2017-10-02 21:34:26.000000000 +0200 ++++ openssh-7.6p1/audit-linux.c 2017-10-04 17:18:32.835505053 +0200 +@@ -33,27 +33,40 @@ + + #include "log.h" + #include "audit.h" ++#include "sshkey.h" ++#include "hostfile.h" ++#include "auth.h" ++#include "misc.h" /* servconf.h needs misc.h for struct ForwardOptions */ ++#include "servconf.h" + #include "canohost.h" + #include "packet.h" +- ++#include "cipher.h" ++#include "channels.h" ++#include "session.h" ++ ++#define AUDIT_LOG_SIZE 256 ++ ++extern ServerOptions options; ++extern Authctxt *the_authctxt; ++extern u_int utmp_len; + const char *audit_username(void); + +-int +-linux_audit_record_event(int uid, const char *username, const char *hostname, +- const char *ip, const char *ttyn, int success) ++static void ++linux_audit_user_logxxx(int uid, const char *username, ++ const char *ip, const char *ttyn, int success, int event) + { + int audit_fd, rc, saved_errno; + + if ((audit_fd = audit_open()) < 0) { + if (errno == EINVAL || errno == EPROTONOSUPPORT || + errno == EAFNOSUPPORT) +- return 1; /* No audit support in kernel */ ++ return; /* No audit support in kernel */ + else +- return 0; /* Must prevent login */ ++ goto fatal_report; /* Must prevent login */ + } +- rc = audit_log_acct_message(audit_fd, AUDIT_USER_LOGIN, ++ rc = audit_log_acct_message(audit_fd, event, + NULL, "login", username ? username : "(unknown)", +- username == NULL ? uid : -1, hostname, ip, ttyn, success); ++ username == NULL ? uid : -1, NULL, ip, ttyn, success); + saved_errno = errno; + close(audit_fd); + +@@ -65,9 +78,96 @@ linux_audit_record_event(int uid, const + rc = 0; + errno = saved_errno; + +- return rc >= 0; ++ if (rc < 0) { ++fatal_report: ++ fatal("linux_audit_write_entry failed: %s", strerror(errno)); ++ } ++} ++ ++static void ++linux_audit_user_auth(int uid, const char *username, ++ const char *ip, const char *ttyn, int success, int event) ++{ ++ int audit_fd, rc, saved_errno; ++ static const char *event_name[] = { ++ "maxtries exceeded", ++ "root denied", ++ "success", ++ "none", ++ "password", ++ "challenge-response", ++ "pubkey", ++ "hostbased", ++ "gssapi", ++ "invalid user", ++ "nologin", ++ "connection closed", ++ "connection abandoned", ++ "unknown" ++ }; ++ ++ audit_fd = audit_open(); ++ if (audit_fd < 0) { ++ if (errno == EINVAL || errno == EPROTONOSUPPORT || ++ errno == EAFNOSUPPORT) ++ return; /* No audit support in kernel */ ++ else ++ goto fatal_report; /* Must prevent login */ ++ } ++ ++ if ((event < 0) || (event > SSH_AUDIT_UNKNOWN)) ++ event = SSH_AUDIT_UNKNOWN; ++ ++ rc = audit_log_acct_message(audit_fd, AUDIT_USER_AUTH, ++ NULL, event_name[event], username ? username : "(unknown)", ++ username == NULL ? uid : -1, NULL, ip, ttyn, success); ++ saved_errno = errno; ++ close(audit_fd); ++ /* ++ * Do not report error if the error is EPERM and sshd is run as non ++ * root user. ++ */ ++ if ((rc == -EPERM) && (geteuid() != 0)) ++ rc = 0; ++ errno = saved_errno; ++ if (rc < 0) { ++fatal_report: ++ fatal("linux_audit_write_entry failed: %s", strerror(errno)); ++ } ++} ++ ++int ++audit_keyusage(int host_user, char *fp, int rv) ++{ ++ char buf[AUDIT_LOG_SIZE]; ++ int audit_fd, rc, saved_errno; ++ ++ audit_fd = audit_open(); ++ if (audit_fd < 0) { ++ if (errno == EINVAL || errno == EPROTONOSUPPORT || ++ errno == EAFNOSUPPORT) ++ return 1; /* No audit support in kernel */ ++ else ++ return 0; /* Must prevent login */ ++ } ++ snprintf(buf, sizeof(buf), "%s_auth grantors=auth-key", host_user ? "pubkey" : "hostbased"); ++ rc = audit_log_acct_message(audit_fd, AUDIT_USER_AUTH, NULL, ++ buf, audit_username(), -1, NULL, ssh_remote_ipaddr(active_state), NULL, rv); ++ if ((rc < 0) && ((rc != -1) || (getuid() == 0))) ++ goto out; ++ snprintf(buf, sizeof(buf), "op=negotiate kind=auth-key fp=%s", fp); ++ rc = audit_log_user_message(audit_fd, AUDIT_CRYPTO_KEY_USER, buf, NULL, ++ ssh_remote_ipaddr(active_state), NULL, rv); ++out: ++ saved_errno = errno; ++ audit_close(audit_fd); ++ errno = saved_errno; ++ /* do not report error if the error is EPERM and sshd is run as non root user */ ++ return (rc >= 0) || ((rc == -EPERM) && (getuid() != 0)); + } + ++static int user_login_count = 0; ++ + /* Below is the sshd audit API code */ + + void +@@ -76,24 +177,55 @@ audit_connection_from(const char *host, + /* not implemented */ + } + +-void ++int + audit_run_command(const char *command) + { +- /* not implemented */ ++ if (!user_login_count++) ++ linux_audit_user_logxxx(the_authctxt->pw->pw_uid, NULL, ++ ssh_remote_ipaddr(active_state), ++ "ssh", 1, AUDIT_USER_LOGIN); ++ linux_audit_user_logxxx(the_authctxt->pw->pw_uid, NULL, ++ ssh_remote_ipaddr(active_state), ++ "ssh", 1, AUDIT_USER_START); ++ return 0; ++} ++ ++void ++audit_end_command(int handle, const char *command) ++{ ++ linux_audit_user_logxxx(the_authctxt->pw->pw_uid, NULL, ++ ssh_remote_ipaddr(active_state), ++ "ssh", 1, AUDIT_USER_END); ++ if (user_login_count && !--user_login_count) ++ linux_audit_user_logxxx(the_authctxt->pw->pw_uid, NULL, ++ ssh_remote_ipaddr(active_state), ++ "ssh", 1, AUDIT_USER_LOGOUT); ++} ++ ++void ++audit_count_session_open(void) ++{ ++ user_login_count++; + } + + void + audit_session_open(struct logininfo *li) + { +- if (linux_audit_record_event(li->uid, NULL, li->hostname, NULL, +- li->line, 1) == 0) +- fatal("linux_audit_write_entry failed: %s", strerror(errno)); ++ if (!user_login_count++) ++ linux_audit_user_logxxx(li->uid, NULL, li->hostname, ++ li->line, 1, AUDIT_USER_LOGIN); ++ linux_audit_user_logxxx(li->uid, NULL, li->hostname, ++ li->line, 1, AUDIT_USER_START); + } + + void + audit_session_close(struct logininfo *li) + { +- /* not implemented */ ++ linux_audit_user_logxxx(li->uid, NULL, li->hostname, ++ li->line, 1, AUDIT_USER_END); ++ if (user_login_count && !--user_login_count) ++ linux_audit_user_logxxx(li->uid, NULL, li->hostname, ++ li->line, 1, AUDIT_USER_LOGOUT); + } + + void +@@ -102,25 +231,155 @@ audit_event(ssh_audit_event_t event) + struct ssh *ssh = active_state; /* XXX */ + + switch(event) { +- case SSH_AUTH_SUCCESS: +- case SSH_CONNECTION_CLOSE: + case SSH_NOLOGIN: +- case SSH_LOGIN_EXCEED_MAXTRIES: + case SSH_LOGIN_ROOT_DENIED: ++ linux_audit_user_auth(-1, audit_username(), ++ ssh_remote_ipaddr(ssh), "ssh", 0, event); ++ linux_audit_user_logxxx(-1, audit_username(), ++ ssh_remote_ipaddr(ssh), "ssh", 0, AUDIT_USER_LOGIN); + break; +- case SSH_AUTH_FAIL_NONE: + case SSH_AUTH_FAIL_PASSWD: ++ if (options.use_pam) ++ break; ++ case SSH_LOGIN_EXCEED_MAXTRIES: + case SSH_AUTH_FAIL_KBDINT: + case SSH_AUTH_FAIL_PUBKEY: + case SSH_AUTH_FAIL_HOSTBASED: + case SSH_AUTH_FAIL_GSSAPI: ++ linux_audit_user_auth(-1, audit_username(), ++ ssh_remote_ipaddr(ssh), "ssh", 0, event); ++ break; ++ ++ case SSH_CONNECTION_CLOSE: ++ if (user_login_count) { ++ while (user_login_count--) ++ linux_audit_user_logxxx(the_authctxt->pw->pw_uid, NULL, ++ ssh_remote_ipaddr(ssh), ++ "ssh", 1, AUDIT_USER_END); ++ linux_audit_user_logxxx(the_authctxt->pw->pw_uid, NULL, ++ ssh_remote_ipaddr(ssh), ++ "ssh", 1, AUDIT_USER_LOGOUT); ++ } ++ break; ++ ++ case SSH_CONNECTION_ABANDON: + case SSH_INVALID_USER: +- linux_audit_record_event(-1, audit_username(), NULL, +- ssh_remote_ipaddr(ssh), "sshd", 0); ++ linux_audit_user_logxxx(-1, audit_username(), ++ ssh_remote_ipaddr(ssh), "ssh", 0, AUDIT_USER_LOGIN); + break; + default: + debug("%s: unhandled event %d", __func__, event); + break; + } + } ++ ++void ++audit_unsupported_body(int what) ++{ ++#ifdef AUDIT_CRYPTO_SESSION ++ char buf[AUDIT_LOG_SIZE]; ++ const static char *name[] = { "cipher", "mac", "comp" }; ++ char *s; ++ int audit_fd; ++ ++ snprintf(buf, sizeof(buf), "op=unsupported-%s direction=? cipher=? ksize=? rport=%d laddr=%s lport=%d ", ++ name[what], ssh_remote_port(active_state), (s = get_local_ipaddr(packet_get_connection_in())), ++ ssh_local_port(active_state)); ++ free(s); ++ audit_fd = audit_open(); ++ if (audit_fd < 0) ++ /* no problem, the next instruction will be fatal() */ ++ return; ++ audit_log_user_message(audit_fd, AUDIT_CRYPTO_SESSION, ++ buf, NULL, ssh_remote_ipaddr(active_state), NULL, 0); ++ audit_close(audit_fd); ++#endif ++} ++ ++const static char *direction[] = { "from-server", "from-client", "both" }; ++ ++void ++audit_kex_body(int ctos, char *enc, char *mac, char *compress, ++ char *pfs, pid_t pid, uid_t uid) ++{ ++#ifdef AUDIT_CRYPTO_SESSION ++ char buf[AUDIT_LOG_SIZE]; ++ int audit_fd, audit_ok; ++ const struct sshcipher *cipher = cipher_by_name(enc); ++ char *s; ++ ++ snprintf(buf, sizeof(buf), "op=start direction=%s cipher=%s ksize=%d mac=%s pfs=%s spid=%jd suid=%jd rport=%d laddr=%s lport=%d ", ++ direction[ctos], enc, cipher ? 8 * cipher->key_len : 0, mac, pfs, ++ (intmax_t)pid, (intmax_t)uid, ++ ssh_remote_port(active_state), (s = get_local_ipaddr(packet_get_connection_in())), ssh_local_port(active_state)); ++ free(s); ++ audit_fd = audit_open(); ++ if (audit_fd < 0) { ++ if (errno == EINVAL || errno == EPROTONOSUPPORT || ++ errno == EAFNOSUPPORT) ++ return; /* No audit support in kernel */ ++ else ++ fatal("cannot open audit"); /* Must prevent login */ ++ } ++ audit_ok = audit_log_user_message(audit_fd, AUDIT_CRYPTO_SESSION, ++ buf, NULL, ssh_remote_ipaddr(active_state), NULL, 1); ++ audit_close(audit_fd); ++ /* do not abort if the error is EPERM and sshd is run as non root user */ ++ if ((audit_ok < 0) && ((audit_ok != -1) || (getuid() == 0))) ++ fatal("cannot write into audit"); /* Must prevent login */ ++#endif ++} ++ ++void ++audit_session_key_free_body(int ctos, pid_t pid, uid_t uid) ++{ ++ char buf[AUDIT_LOG_SIZE]; ++ int audit_fd, audit_ok; ++ char *s; ++ ++ snprintf(buf, sizeof(buf), "op=destroy kind=session fp=? direction=%s spid=%jd suid=%jd rport=%d laddr=%s lport=%d ", ++ direction[ctos], (intmax_t)pid, (intmax_t)uid, ++ ssh_remote_port(active_state), ++ (s = get_local_ipaddr(packet_get_connection_in())), ++ ssh_local_port(active_state)); ++ free(s); ++ audit_fd = audit_open(); ++ if (audit_fd < 0) { ++ if (errno != EINVAL && errno != EPROTONOSUPPORT && ++ errno != EAFNOSUPPORT) ++ error("cannot open audit"); ++ return; ++ } ++ audit_ok = audit_log_user_message(audit_fd, AUDIT_CRYPTO_KEY_USER, ++ buf, NULL, ssh_remote_ipaddr(active_state), NULL, 1); ++ audit_close(audit_fd); ++ /* do not abort if the error is EPERM and sshd is run as non root user */ ++ if ((audit_ok < 0) && ((audit_ok != -1) || (getuid() == 0))) ++ error("cannot write into audit"); ++} ++ ++void ++audit_destroy_sensitive_data(const char *fp, pid_t pid, uid_t uid) ++{ ++ char buf[AUDIT_LOG_SIZE]; ++ int audit_fd, audit_ok; ++ ++ snprintf(buf, sizeof(buf), "op=destroy kind=server fp=%s direction=? spid=%jd suid=%jd ", ++ fp, (intmax_t)pid, (intmax_t)uid); ++ audit_fd = audit_open(); ++ if (audit_fd < 0) { ++ if (errno != EINVAL && errno != EPROTONOSUPPORT && ++ errno != EAFNOSUPPORT) ++ error("cannot open audit"); ++ return; ++ } ++ audit_ok = audit_log_user_message(audit_fd, AUDIT_CRYPTO_KEY_USER, ++ buf, NULL, ++ listening_for_clients() ? NULL : ssh_remote_ipaddr(active_state), ++ NULL, 1); ++ audit_close(audit_fd); ++ /* do not abort if the error is EPERM and sshd is run as non root user */ ++ if ((audit_ok < 0) && ((audit_ok != -1) || (getuid() == 0))) ++ error("cannot write into audit"); ++} + #endif /* USE_LINUX_AUDIT */ +diff -up openssh-7.6p1/auditstub.c.audit openssh-7.6p1/auditstub.c +--- openssh-7.6p1/auditstub.c.audit 2017-10-04 17:18:32.835505053 +0200 ++++ openssh-7.6p1/auditstub.c 2017-10-04 17:18:32.835505053 +0200 +@@ -0,0 +1,50 @@ ++/* $Id: auditstub.c,v 1.1 jfch Exp $ */ ++ ++/* ++ * Copyright 2010 Red Hat, Inc. All rights reserved. ++ * Use is subject to license terms. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ * ++ * Red Hat author: Jan F. Chadima ++ */ ++ ++#include ++ ++void ++audit_unsupported(int n) ++{ ++} ++ ++void ++audit_kex(int ctos, char *enc, char *mac, char *comp, char *pfs) ++{ ++} ++ ++void ++audit_session_key_free(int ctos) ++{ ++} ++ ++void ++audit_session_key_free_body(int ctos, pid_t pid, uid_t uid) ++{ ++} +diff -up openssh-7.6p1/auth2.c.audit openssh-7.6p1/auth2.c +--- openssh-7.6p1/auth2.c.audit 2017-10-04 17:18:32.746504598 +0200 ++++ openssh-7.6p1/auth2.c 2017-10-04 17:18:32.835505053 +0200 +@@ -255,9 +255,6 @@ input_userauth_request(int type, u_int32 + } else { + /* Invalid user, fake password information */ + authctxt->pw = fakepw(); +-#ifdef SSH_AUDIT_EVENTS +- PRIVSEP(audit_event(SSH_INVALID_USER)); +-#endif + } + #ifdef USE_PAM + if (options.use_pam) +diff -up openssh-7.6p1/auth2-hostbased.c.audit openssh-7.6p1/auth2-hostbased.c +--- openssh-7.6p1/auth2-hostbased.c.audit 2017-10-04 17:18:32.683504276 +0200 ++++ openssh-7.6p1/auth2-hostbased.c 2017-10-04 17:18:32.835505053 +0200 +@@ -152,7 +152,7 @@ userauth_hostbased(struct ssh *ssh) + /* test for allowed key and correct signature */ + authenticated = 0; + if (PRIVSEP(hostbased_key_allowed(authctxt->pw, cuser, chost, key)) && +- PRIVSEP(sshkey_verify(key, sig, slen, ++ PRIVSEP(hostbased_key_verify(key, sig, slen, + sshbuf_ptr(b), sshbuf_len(b), pkalg, ssh->compat)) == 0) + authenticated = 1; + +@@ -169,6 +169,19 @@ done: + return authenticated; + } + ++int ++hostbased_key_verify(const struct sshkey *key, const u_char *sig, size_t slen, ++ const u_char *data, size_t datalen, const char *pkalg, u_int compat) ++{ ++ int rv; ++ ++ rv = sshkey_verify(key, sig, slen, data, datalen, pkalg, compat); ++#ifdef SSH_AUDIT_EVENTS ++ audit_key(0, &rv, key); ++#endif ++ return rv; ++} ++ + /* return 1 if given hostkey is allowed */ + int + hostbased_key_allowed(struct passwd *pw, const char *cuser, char *chost, +diff -up openssh-7.6p1/auth2-pubkey.c.audit openssh-7.6p1/auth2-pubkey.c +--- openssh-7.6p1/auth2-pubkey.c.audit 2017-10-04 17:18:32.828505018 +0200 ++++ openssh-7.6p1/auth2-pubkey.c 2017-10-04 17:18:32.835505053 +0200 +@@ -206,7 +206,7 @@ userauth_pubkey(struct ssh *ssh) + /* test for correct signature */ + authenticated = 0; + if (PRIVSEP(user_key_allowed(ssh, pw, key, 1, &authopts)) && +- PRIVSEP(sshkey_verify(key, sig, slen, ++ PRIVSEP(user_key_verify(key, sig, slen, + sshbuf_ptr(b), sshbuf_len(b), + (ssh->compat & SSH_BUG_SIGTYPE) == 0 ? pkalg : NULL, + ssh->compat)) == 0) { +@@ -250,6 +250,19 @@ done: + return authenticated; + } + ++int ++user_key_verify(const struct sshkey *key, const u_char *sig, size_t slen, ++ const u_char *data, size_t datalen, const char *pkalg, u_int compat) ++{ ++ int rv; ++ ++ rv = sshkey_verify(key, sig, slen, data, datalen, pkalg, compat); ++#ifdef SSH_AUDIT_EVENTS ++ audit_key(1, &rv, key); ++#endif ++ return rv; ++} ++ + static int + match_principals_option(const char *principal_list, struct sshkey_cert *cert) + { +diff -up openssh-7.6p1/auth.c.audit openssh-7.6p1/auth.c +--- openssh-7.6p1/auth.c.audit 2017-10-04 17:18:32.746504598 +0200 ++++ openssh-7.6p1/auth.c 2017-10-04 17:18:32.835505053 +0200 +@@ -360,7 +360,7 @@ auth_log(Authctxt *authctxt, int authent + # endif + #endif + #ifdef SSH_AUDIT_EVENTS +- if (authenticated == 0 && !authctxt->postponed) ++ if (authenticated == 0 && !authctxt->postponed && !partial) + audit_event(audit_classify_auth(method)); + #endif + } +@@ -599,9 +599,6 @@ getpwnamallow(const char *user) + record_failed_login(user, + auth_get_canonical_hostname(ssh, options.use_dns), "ssh"); + #endif +-#ifdef SSH_AUDIT_EVENTS +- audit_event(SSH_INVALID_USER); +-#endif /* SSH_AUDIT_EVENTS */ + return (NULL); + } + if (!allowed_user(pw)) +diff -up openssh-7.6p1/auth.h.audit openssh-7.6p1/auth.h +--- openssh-7.6p1/auth.h.audit 2017-10-04 17:18:32.768504711 +0200 ++++ openssh-7.6p1/auth.h 2017-10-04 17:18:32.836505059 +0200 +@@ -198,6 +198,8 @@ struct passwd * getpwnamallow(const char + + char *expand_authorized_keys(const char *, struct passwd *pw); + char *authorized_principals_file(struct passwd *); ++int user_key_verify(const struct sshkey *, const u_char *, size_t, ++ const u_char *, size_t, const char *, u_int); + + FILE *auth_openkeyfile(const char *, struct passwd *, int); + FILE *auth_openprincipals(const char *, struct passwd *, int); +@@ -217,6 +218,8 @@ struct sshkey *get_hostkey_private_by_ty + int get_hostkey_index(struct sshkey *, int, struct ssh *); + int sshd_hostkey_sign(struct sshkey *, struct sshkey *, u_char **, + size_t *, const u_char *, size_t, const char *, u_int); ++int hostbased_key_verify(const struct sshkey *, const u_char *, size_t, ++ const u_char *, size_t, const char *, u_int); + + /* Key / cert options linkage to auth layer */ + const struct sshauthopt *auth_options(struct ssh *); +diff -up openssh-7.6p1/cipher.c.audit openssh-7.6p1/cipher.c +--- openssh-7.6p1/cipher.c.audit 2017-10-02 21:34:26.000000000 +0200 ++++ openssh-7.6p1/cipher.c 2017-10-04 17:18:32.836505059 +0200 +@@ -61,25 +61,6 @@ struct sshcipher_ctx { + const struct sshcipher *cipher; + }; + +-struct sshcipher { +- char *name; +- u_int block_size; +- u_int key_len; +- u_int iv_len; /* defaults to block_size */ +- u_int auth_len; +- u_int flags; +-#define CFLAG_CBC (1<<0) +-#define CFLAG_CHACHAPOLY (1<<1) +-#define CFLAG_AESCTR (1<<2) +-#define CFLAG_NONE (1<<3) +-#define CFLAG_INTERNAL CFLAG_NONE /* Don't use "none" for packets */ +-#ifdef WITH_OPENSSL +- const EVP_CIPHER *(*evptype)(void); +-#else +- void *ignored; +-#endif +-}; +- + static const struct sshcipher ciphers[] = { + #ifdef WITH_OPENSSL + #ifndef OPENSSL_NO_DES +@@ -409,7 +409,7 @@ cipher_get_length(struct sshcipher_ctx * + void + cipher_free(struct sshcipher_ctx *cc) + { +- if (cc == NULL) ++ if (cc == NULL || cc->cipher == NULL) + return; + if ((cc->cipher->flags & CFLAG_CHACHAPOLY) != 0) + explicit_bzero(&cc->cp_ctx, sizeof(cc->cp_ctx)); +diff -up openssh-7.6p1/cipher.h.audit openssh-7.6p1/cipher.h +--- openssh-7.6p1/cipher.h.audit 2017-10-02 21:34:26.000000000 +0200 ++++ openssh-7.6p1/cipher.h 2017-10-04 17:18:32.836505059 +0200 +@@ -45,7 +45,25 @@ + #define CIPHER_ENCRYPT 1 + #define CIPHER_DECRYPT 0 + +-struct sshcipher; ++struct sshcipher { ++ char *name; ++ u_int block_size; ++ u_int key_len; ++ u_int iv_len; /* defaults to block_size */ ++ u_int auth_len; ++ u_int flags; ++#define CFLAG_CBC (1<<0) ++#define CFLAG_CHACHAPOLY (1<<1) ++#define CFLAG_AESCTR (1<<2) ++#define CFLAG_NONE (1<<3) ++#define CFLAG_INTERNAL CFLAG_NONE /* Don't use "none" for packets */ ++#ifdef WITH_OPENSSL ++ const EVP_CIPHER *(*evptype)(void); ++#else ++ void *ignored; ++#endif ++}; ++ + struct sshcipher_ctx; + + const struct sshcipher *cipher_by_name(const char *); +diff -up openssh-7.6p1/kex.c.audit openssh-7.6p1/kex.c +--- openssh-7.6p1/kex.c.audit 2017-10-04 17:18:32.822504987 +0200 ++++ openssh-7.6p1/kex.c 2017-10-04 17:18:32.836505059 +0200 +@@ -54,6 +54,7 @@ + #include "ssherr.h" + #include "sshbuf.h" + #include "digest.h" ++#include "audit.h" + + #ifdef GSSAPI + #include "ssh-gss.h" +@@ -692,8 +693,12 @@ choose_enc(struct sshenc *enc, char *cli + { + char *name = match_list(client, server, NULL); + +- if (name == NULL) ++ if (name == NULL) { ++#ifdef SSH_AUDIT_EVENTS ++ audit_unsupported(SSH_AUDIT_UNSUPPORTED_CIPHER); ++#endif + return SSH_ERR_NO_CIPHER_ALG_MATCH; ++ } + if ((enc->cipher = cipher_by_name(name)) == NULL) { + free(name); + return SSH_ERR_INTERNAL_ERROR; +@@ -713,8 +718,12 @@ choose_mac(struct ssh *ssh, struct sshma + { + char *name = match_list(client, server, NULL); + +- if (name == NULL) ++ if (name == NULL) { ++#ifdef SSH_AUDIT_EVENTS ++ audit_unsupported(SSH_AUDIT_UNSUPPORTED_MAC); ++#endif + return SSH_ERR_NO_MAC_ALG_MATCH; ++ } + if (mac_setup(mac, name) < 0) { + free(name); + return SSH_ERR_INTERNAL_ERROR; +@@ -733,8 +742,12 @@ choose_comp(struct sshcomp *comp, char * + { + char *name = match_list(client, server, NULL); + +- if (name == NULL) ++ if (name == NULL) { ++#ifdef SSH_AUDIT_EVENTS ++ audit_unsupported(SSH_AUDIT_UNSUPPORTED_COMPRESSION); ++#endif + return SSH_ERR_NO_COMPRESS_ALG_MATCH; ++ } + if (strcmp(name, "zlib@openssh.com") == 0) { + comp->type = COMP_DELAYED; + } else if (strcmp(name, "zlib") == 0) { +@@ -904,6 +917,10 @@ kex_choose_conf(struct ssh *ssh) + dh_need = MAXIMUM(dh_need, newkeys->enc.block_size); + dh_need = MAXIMUM(dh_need, newkeys->enc.iv_len); + dh_need = MAXIMUM(dh_need, newkeys->mac.key_len); ++ debug("kex: %s need=%d dh_need=%d", kex->name, need, dh_need); ++#ifdef SSH_AUDIT_EVENTS ++ audit_kex(mode, newkeys->enc.name, newkeys->mac.name, newkeys->comp.name, kex->name); ++#endif + } + /* XXX need runden? */ + kex->we_need = need; +@@ -1037,3 +1054,33 @@ dump_digest(char *msg, u_char *digest, i + sshbuf_dump_data(digest, len, stderr); + } + #endif ++ ++static void ++enc_destroy(struct sshenc *enc) ++{ ++ if (enc == NULL) ++ return; ++ ++ if (enc->key) { ++ memset(enc->key, 0, enc->key_len); ++ free(enc->key); ++ } ++ ++ if (enc->iv) { ++ memset(enc->iv, 0, enc->iv_len); ++ free(enc->iv); ++ } ++ ++ memset(enc, 0, sizeof(*enc)); ++} ++ ++void ++newkeys_destroy(struct newkeys *newkeys) ++{ ++ if (newkeys == NULL) ++ return; ++ ++ enc_destroy(&newkeys->enc); ++ mac_destroy(&newkeys->mac); ++ memset(&newkeys->comp, 0, sizeof(newkeys->comp)); ++} +diff -up openssh-7.6p1/kex.h.audit openssh-7.6p1/kex.h +--- openssh-7.6p1/kex.h.audit 2017-10-04 17:18:32.822504987 +0200 ++++ openssh-7.6p1/kex.h 2017-10-04 17:18:32.836505059 +0200 +@@ -219,6 +219,8 @@ int kexgss_client(struct ssh *); + int kexgss_server(struct ssh *); + #endif + ++void newkeys_destroy(struct newkeys *newkeys); ++ + int kex_dh_hash(int, const char *, const char *, + const u_char *, size_t, const u_char *, size_t, const u_char *, size_t, + const BIGNUM *, const BIGNUM *, const BIGNUM *, u_char *, size_t *); +diff -up openssh-7.6p1/mac.c.audit openssh-7.6p1/mac.c +--- openssh-7.6p1/mac.c.audit 2017-10-02 21:34:26.000000000 +0200 ++++ openssh-7.6p1/mac.c 2017-10-04 17:18:32.836505059 +0200 +@@ -242,6 +242,20 @@ mac_clear(struct sshmac *mac) + mac->umac_ctx = NULL; + } + ++void ++mac_destroy(struct sshmac *mac) ++{ ++ if (mac == NULL) ++ return; ++ ++ if (mac->key) { ++ memset(mac->key, 0, mac->key_len); ++ free(mac->key); ++ } ++ ++ memset(mac, 0, sizeof(*mac)); ++} ++ + /* XXX copied from ciphers_valid */ + #define MAC_SEP "," + int +diff -up openssh-7.6p1/mac.h.audit openssh-7.6p1/mac.h +--- openssh-7.6p1/mac.h.audit 2017-10-02 21:34:26.000000000 +0200 ++++ openssh-7.6p1/mac.h 2017-10-04 17:18:32.837505064 +0200 +@@ -49,5 +49,6 @@ int mac_compute(struct sshmac *, u_int3 + int mac_check(struct sshmac *, u_int32_t, const u_char *, size_t, + const u_char *, size_t); + void mac_clear(struct sshmac *); ++void mac_destroy(struct sshmac *); + + #endif /* SSHMAC_H */ +diff -up openssh-7.6p1/Makefile.in.audit openssh-7.6p1/Makefile.in +--- openssh-7.6p1/Makefile.in.audit 2017-10-04 17:18:32.749504614 +0200 ++++ openssh-7.6p1/Makefile.in 2017-10-04 17:18:32.837505064 +0200 +@@ -100,7 +100,8 @@ LIBSSH_OBJS=${LIBOPENSSH_OBJS} \ + kex.o kexdh.o kexgex.o kexecdh.o kexc25519.o \ + kexdhc.o kexgexc.o kexecdhc.o kexc25519c.o \ + kexdhs.o kexgexs.o kexecdhs.o kexc25519s.o \ +- platform-pledge.o platform-tracing.o platform-misc.o ++ platform-pledge.o platform-tracing.o platform-misc.o \ ++ auditstub.o + + SSHOBJS= ssh.o readconf.o clientloop.o sshtty.o \ + sshconnect.o sshconnect2.o mux.o +diff -up openssh-7.6p1/monitor.c.audit openssh-7.6p1/monitor.c +--- openssh-7.6p1/monitor.c.audit 2017-10-04 17:18:32.824504997 +0200 ++++ openssh-7.6p1/monitor.c 2017-10-04 17:18:32.837505064 +0200 +@@ -102,6 +102,7 @@ + #include "compat.h" + #include "ssh2.h" + #include "authfd.h" ++#include "audit.h" + #include "match.h" + #include "ssherr.h" + +@@ -117,6 +118,8 @@ extern Buffer auth_debug; + extern struct sshbuf *loginmsg; + extern struct sshauthopt *auth_opts; /* XXX move to permanent ssh->authctxt? */ + ++extern void destroy_sensitive_data(int); ++ + /* State exported from the child */ + static struct sshbuf *child_state; + +@@ -167,6 +170,11 @@ int mm_answer_gss_updatecreds(int, Buffe + #ifdef SSH_AUDIT_EVENTS + int mm_answer_audit_event(int, struct sshbuf *); + int mm_answer_audit_command(int, struct sshbuf *); ++int mm_answer_audit_end_command(int, struct sshbuf *); ++int mm_answer_audit_unsupported_body(int, struct sshbuf *); ++int mm_answer_audit_kex_body(int, struct sshbuf *); ++int mm_answer_audit_session_key_free_body(int, struct sshbuf *); ++int mm_answer_audit_server_key_free(int, struct sshbuf *); + #endif + + static int monitor_read_log(struct monitor *); +@@ -222,6 +230,10 @@ struct mon_table mon_dispatch_proto20[] + #endif + #ifdef SSH_AUDIT_EVENTS + {MONITOR_REQ_AUDIT_EVENT, MON_PERMIT, mm_answer_audit_event}, ++ {MONITOR_REQ_AUDIT_UNSUPPORTED, MON_PERMIT, mm_answer_audit_unsupported_body}, ++ {MONITOR_REQ_AUDIT_KEX, MON_PERMIT, mm_answer_audit_kex_body}, ++ {MONITOR_REQ_AUDIT_SESSION_KEY_FREE, MON_PERMIT, mm_answer_audit_session_key_free_body}, ++ {MONITOR_REQ_AUDIT_SERVER_KEY_FREE, MON_PERMIT, mm_answer_audit_server_key_free}, + #endif + #ifdef BSD_AUTH + {MONITOR_REQ_BSDAUTHQUERY, MON_ISAUTH, mm_answer_bsdauthquery}, +@@ -260,6 +272,11 @@ struct mon_table mon_dispatch_postauth20 + #ifdef SSH_AUDIT_EVENTS + {MONITOR_REQ_AUDIT_EVENT, MON_PERMIT, mm_answer_audit_event}, + {MONITOR_REQ_AUDIT_COMMAND, MON_PERMIT, mm_answer_audit_command}, ++ {MONITOR_REQ_AUDIT_END_COMMAND, MON_PERMIT, mm_answer_audit_end_command}, ++ {MONITOR_REQ_AUDIT_UNSUPPORTED, MON_PERMIT, mm_answer_audit_unsupported_body}, ++ {MONITOR_REQ_AUDIT_KEX, MON_PERMIT, mm_answer_audit_kex_body}, ++ {MONITOR_REQ_AUDIT_SESSION_KEY_FREE, MON_PERMIT, mm_answer_audit_session_key_free_body}, ++ {MONITOR_REQ_AUDIT_SERVER_KEY_FREE, MON_PERMIT, mm_answer_audit_server_key_free}, + #endif + {0, 0, NULL} + }; +@@ -1396,8 +1413,10 @@ mm_answer_keyverify(int sock, struct ssh + char *sigalg; + size_t signaturelen, datalen, bloblen; + int r, ret, valid_data = 0, encoded_ret; ++ int type = 0; + +- if ((r = sshbuf_get_string(m, &blob, &bloblen)) != 0 || ++ if ((r = sshbuf_get_u32(m, &type)) != 0 || ++ (r = sshbuf_get_string(m, &blob, &bloblen)) != 0 || + (r = sshbuf_get_string(m, &signature, &signaturelen)) != 0 || + (r = sshbuf_get_string(m, &data, &datalen)) != 0 || + (r = sshbuf_get_cstring(m, &sigalg, NULL)) != 0) +@@ -1405,6 +1424,8 @@ mm_answer_keyverify(int sock, struct ssh + if (hostbased_cuser == NULL || hostbased_chost == NULL || + !monitor_allowed_key(blob, bloblen)) + fatal("%s: bad key, not previously allowed", __func__); ++ if (type != key_blobtype) ++ fatal("%s: bad key type", __func__); + + /* Empty signature algorithm means NULL. */ + if (*sigalg == '\0') { +@@ -1414,21 +1435,24 @@ mm_answer_keyverify(int sock, struct ssh + case MM_USERKEY: + valid_data = monitor_valid_userblob(data, datalen); + auth_method = "publickey"; ++ ret = user_key_verify(key, signature, signaturelen, data, ++ datalen, sigalg, active_state->compat); + break; + case MM_HOSTKEY: + valid_data = monitor_valid_hostbasedblob(data, datalen, + hostbased_cuser, hostbased_chost); ++ ret = hostbased_key_verify(key, signature, signaturelen, data, ++ datalen, sigalg, active_state->compat); + auth_method = "hostbased"; + break; + default: + valid_data = 0; ++ ret = 0; + break; + } + if (!valid_data) + fatal("%s: bad signature data blob", __func__); + +- ret = sshkey_verify(key, signature, signaturelen, data, datalen, +- sigalg, active_state->compat); + debug3("%s: %s %p signature %s", __func__, auth_method, key, + (ret == 0) ? "verified" : "unverified"); + auth2_record_key(authctxt, ret == 0, key); +@@ -1485,6 +1509,12 @@ mm_session_close(Session *s) + debug3("%s: tty %s ptyfd %d", __func__, s->tty, s->ptyfd); + session_pty_cleanup2(s); + } ++#ifdef SSH_AUDIT_EVENTS ++ if (s->command != NULL) { ++ debug3("%s: command %d", __func__, s->command_handle); ++ session_end_command2(s); ++ } ++#endif + session_unused(s->self); + } + +@@ -1588,6 +1618,8 @@ mm_answer_term(int sock, Buffer *req) + sshpam_cleanup(); + #endif + ++ destroy_sensitive_data(0); ++ + while (waitpid(pmonitor->m_pid, &status, 0) == -1) + if (errno != EINTR) + exit(1); +@@ -1630,12 +1662,47 @@ mm_answer_audit_command(int socket, Buff + { + char *cmd; + int r; ++ Session *s; + + debug3("%s entering", __func__); + if ((r = sshbuf_get_cstring(m, &cmd, NULL)) != 0) + fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ + /* sanity check command, if so how? */ +- audit_run_command(cmd); ++ s = session_new(); ++ if (s == NULL) ++ fatal("%s: error allocating a session", __func__); ++ s->command = cmd; ++#ifdef SSH_AUDIT_EVENTS ++ s->command_handle = audit_run_command(cmd); ++#endif ++ ++ sshbuf_reset(m); ++ sshbuf_put_u32(m, s->self); ++ ++ mm_request_send(socket, MONITOR_ANS_AUDIT_COMMAND, m); ++ ++ return (0); ++} ++ ++int ++mm_answer_audit_end_command(int socket, struct sshbuf *m) ++{ ++ int handle, r; ++ size_t len; ++ u_char *cmd = NULL; ++ Session *s; ++ ++ debug3("%s entering", __func__); ++ if ((r = sshbuf_get_u32(m, &handle)) != 0 || ++ (r = sshbuf_get_string(m, &cmd, &len)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ s = session_by_id(handle); ++ if (s == NULL || s->ttyfd != -1 || s->command == NULL || ++ strcmp(s->command, cmd) != 0) ++ fatal("%s: invalid handle", __func__); ++ mm_session_close(s); + free(cmd); + return (0); + } +@@ -1702,6 +1768,7 @@ monitor_apply_keystate(struct monitor *p + void + mm_get_keystate(struct monitor *pmonitor) + { ++ struct sshbuf *m; + debug3("%s: Waiting for new keys", __func__); + + if ((child_state = sshbuf_new()) == NULL) +@@ -1709,6 +1776,19 @@ mm_get_keystate(struct monitor *pmonitor + mm_request_receive_expect(pmonitor->m_sendfd, MONITOR_REQ_KEYEXPORT, + child_state); + debug3("%s: GOT new keys", __func__); ++ ++#ifdef SSH_AUDIT_EVENTS ++ m = sshbuf_new(); ++ mm_request_receive_expect(pmonitor->m_sendfd, ++ MONITOR_REQ_AUDIT_SESSION_KEY_FREE, m); ++ mm_answer_audit_session_key_free_body(pmonitor->m_sendfd, m); ++ sshbuf_free(m); ++#endif ++ ++ /* Drain any buffered messages from the child */ ++ while (pmonitor->m_log_recvfd >= 0 && monitor_read_log(pmonitor) == 0) ++ ; ++ + } + + +@@ -1976,3 +2056,102 @@ mm_answer_gss_updatecreds(int socket, Bu + + #endif /* GSSAPI */ + ++#ifdef SSH_AUDIT_EVENTS ++int ++mm_answer_audit_unsupported_body(int sock, struct sshbuf *m) ++{ ++ int what, r; ++ ++ if ((r = sshbuf_get_u32(m, &what)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ audit_unsupported_body(what); ++ ++ sshbuf_reset(m); ++ ++ mm_request_send(sock, MONITOR_ANS_AUDIT_UNSUPPORTED, m); ++ return 0; ++} ++ ++int ++mm_answer_audit_kex_body(int sock, struct sshbuf *m) ++{ ++ int ctos, r; ++ char *cipher, *mac, *compress, *pfs; ++ u_int64_t tmp; ++ pid_t pid; ++ uid_t uid; ++ ++ if ((r = sshbuf_get_u32(m, &ctos)) != 0 || ++ (r = sshbuf_get_cstring(m, &cipher, NULL)) != 0 || ++ (r = sshbuf_get_cstring(m, &mac, NULL)) != 0 || ++ (r = sshbuf_get_cstring(m, &compress, NULL)) != 0 || ++ (r = sshbuf_get_cstring(m, &pfs, NULL)) != 0 || ++ (r = sshbuf_get_u64(m, &tmp)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ pid = (pid_t) tmp; ++ if ((r = sshbuf_get_u64(m, &tmp)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ uid = (pid_t) tmp; ++ ++ audit_kex_body(ctos, cipher, mac, compress, pfs, pid, uid); ++ ++ free(cipher); ++ free(mac); ++ free(compress); ++ free(pfs); ++ sshbuf_reset(m); ++ ++ mm_request_send(sock, MONITOR_ANS_AUDIT_KEX, m); ++ return 0; ++} ++ ++int ++mm_answer_audit_session_key_free_body(int sock, struct sshbuf *m) ++{ ++ int ctos, r; ++ u_int64_t tmp; ++ pid_t pid; ++ uid_t uid; ++ ++ if ((r = sshbuf_get_u32(m, &ctos)) != 0 || ++ (r = sshbuf_get_u64(m, &tmp)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ pid = (pid_t) tmp; ++ if ((r = sshbuf_get_u64(m, &tmp)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ uid = (uid_t) tmp; ++ ++ audit_session_key_free_body(ctos, pid, uid); ++ ++ sshbuf_reset(m); ++ ++ mm_request_send(sock, MONITOR_ANS_AUDIT_SESSION_KEY_FREE, m); ++ return 0; ++} ++ ++int ++mm_answer_audit_server_key_free(int sock, struct sshbuf *m) ++{ ++ size_t len, r; ++ char *fp; ++ u_int64_t tmp; ++ pid_t pid; ++ uid_t uid; ++ ++ if ((r = sshbuf_get_cstring(m, &fp, &len)) != 0 || ++ (r = sshbuf_get_u64(m, &tmp)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ pid = (pid_t) tmp; ++ if ((r = sshbuf_get_u64(m, &tmp)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ uid = (uid_t) tmp; ++ ++ audit_destroy_sensitive_data(fp, pid, uid); ++ ++ free(fp); ++ sshbuf_reset(m); ++ ++ return 0; ++} ++#endif /* SSH_AUDIT_EVENTS */ +diff -up openssh-7.6p1/monitor.h.audit openssh-7.6p1/monitor.h +--- openssh-7.6p1/monitor.h.audit 2017-10-04 17:18:32.781504777 +0200 ++++ openssh-7.6p1/monitor.h 2017-10-04 17:18:32.837505064 +0200 +@@ -69,7 +69,13 @@ enum monitor_reqtype { + MONITOR_REQ_PAM_QUERY = 106, MONITOR_ANS_PAM_QUERY = 107, + MONITOR_REQ_PAM_RESPOND = 108, MONITOR_ANS_PAM_RESPOND = 109, + MONITOR_REQ_PAM_FREE_CTX = 110, MONITOR_ANS_PAM_FREE_CTX = 111, +- MONITOR_REQ_AUDIT_EVENT = 112, MONITOR_REQ_AUDIT_COMMAND = 113, ++ MONITOR_REQ_AUDIT_EVENT = 112, ++ MONITOR_REQ_AUDIT_COMMAND = 114, MONITOR_ANS_AUDIT_COMMAND = 115, ++ MONITOR_REQ_AUDIT_END_COMMAND = 116, ++ MONITOR_REQ_AUDIT_UNSUPPORTED = 118, MONITOR_ANS_AUDIT_UNSUPPORTED = 119, ++ MONITOR_REQ_AUDIT_KEX = 120, MONITOR_ANS_AUDIT_KEX = 121, ++ MONITOR_REQ_AUDIT_SESSION_KEY_FREE = 122, MONITOR_ANS_AUDIT_SESSION_KEY_FREE = 123, ++ MONITOR_REQ_AUDIT_SERVER_KEY_FREE = 124 + + }; + +diff -up openssh-7.6p1/monitor_wrap.c.audit openssh-7.6p1/monitor_wrap.c +--- openssh-7.6p1/monitor_wrap.c.audit 2017-10-04 17:18:32.750504619 +0200 ++++ openssh-7.6p1/monitor_wrap.c 2017-10-04 17:18:32.838505069 +0200 +@@ -463,7 +463,7 @@ mm_key_allowed(enum mm_keytype type, con + */ + + int +-mm_sshkey_verify(const struct sshkey *key, const u_char *sig, size_t siglen, ++mm_sshkey_verify(enum mm_keytype type, const struct sshkey *key, const u_char *sig, size_t siglen, + const u_char *data, size_t datalen, const char *sigalg, u_int compat) + { + struct sshbuf *m; +@@ -478,7 +478,8 @@ mm_sshkey_verify(const struct sshkey *ke + + if ((m = sshbuf_new()) == NULL) + fatal("%s: sshbuf_new failed", __func__); +- if ((r = sshkey_puts(key, m)) != 0 || ++ if ((r = sshbuf_put_u32(m, type)) != 0 || ++ (r = sshkey_puts(key, m)) != 0 || + (r = sshbuf_put_string(m, sig, siglen)) != 0 || + (r = sshbuf_put_string(m, data, datalen)) != 0 || + (r = sshbuf_put_cstring(m, sigalg == NULL ? "" : sigalg)) != 0) +@@ -497,6 +498,20 @@ mm_sshkey_verify(const struct sshkey *ke + return 0; + } + ++int ++mm_hostbased_key_verify(const struct sshkey *key, const u_char *sig, size_t siglen, ++ const u_char *data, size_t datalen, const char *pkalg, u_int compat) ++{ ++ return mm_sshkey_verify(MM_HOSTKEY, key, sig, siglen, data, datalen, pkalg, compat); ++} ++ ++int ++mm_user_key_verify(const struct sshkey *key, const u_char *sig, size_t siglen, ++ const u_char *data, size_t datalen, const char *pkalg, u_int compat) ++{ ++ return mm_sshkey_verify(MM_USERKEY, key, sig, siglen, data, datalen, pkalg, compat); ++} ++ + void + mm_send_keystate(struct monitor *monitor) + { +@@ -874,11 +889,12 @@ mm_audit_event(ssh_audit_event_t event) + sshbuf_free(m); + } + +-void ++int + mm_audit_run_command(const char *command) + { + struct sshbuf *m; + int r; ++ int handle; + + debug3("%s entering command %s", __func__, command); + +@@ -885,6 +901,30 @@ mm_audit_run_command(const char *command + fatal("%s: buffer error: %s", __func__, ssh_err(r)); + + mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUDIT_COMMAND, m); ++ mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_AUDIT_COMMAND, m); ++ ++ if ((r = sshbuf_get_u32(m, &handle)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ sshbuf_free(m); ++ ++ return (handle); ++} ++ ++void ++mm_audit_end_command(int handle, const char *command) ++{ ++ int r; ++ struct sshbuf *m; ++ ++ debug3("%s entering command %s", __func__, command); ++ ++ if ((m = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ if ((r = sshbuf_put_u32(m, handle)) != 0 || ++ (r = sshbuf_put_cstring(m, command)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUDIT_END_COMMAND, m); + sshbuf_free(m); + } + #endif /* SSH_AUDIT_EVENTS */ +@@ -1020,3 +1056,83 @@ mm_ssh_gssapi_update_creds(ssh_gssapi_cc + return (ok); + } + #endif /* GSSAPI */ ++#ifdef SSH_AUDIT_EVENTS ++void ++mm_audit_unsupported_body(int what) ++{ ++ int r; ++ struct sshbuf *m; ++ ++ if ((m = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ if ((r = sshbuf_put_u32(m, what)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUDIT_UNSUPPORTED, m); ++ mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_AUDIT_UNSUPPORTED, ++ m); ++ ++ sshbuf_free(m); ++} ++ ++void ++mm_audit_kex_body(int ctos, char *cipher, char *mac, char *compress, char *fps, pid_t pid, ++ uid_t uid) ++{ ++ int r; ++ struct sshbuf *m; ++ ++ if ((m = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ if ((r = sshbuf_put_u32(m, ctos)) != 0 || ++ (r = sshbuf_put_cstring(m, cipher)) != 0 || ++ (r = sshbuf_put_cstring(m, (mac ? mac : ""))) != 0 || ++ (r = sshbuf_put_cstring(m, compress)) != 0 || ++ (r = sshbuf_put_cstring(m, fps)) != 0 || ++ (r = sshbuf_put_u64(m, pid)) != 0 || ++ (r = sshbuf_put_u64(m, uid)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUDIT_KEX, m); ++ mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_AUDIT_KEX, ++ m); ++ ++ sshbuf_free(m); ++} ++ ++void ++mm_audit_session_key_free_body(int ctos, pid_t pid, uid_t uid) ++{ ++ int r; ++ struct sshbuf *m; ++ ++ if ((m = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ if ((r = sshbuf_put_u32(m, ctos)) != 0 || ++ (r = sshbuf_put_u64(m, pid)) != 0 || ++ (r = sshbuf_put_u64(m, uid)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUDIT_SESSION_KEY_FREE, m); ++ mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_AUDIT_SESSION_KEY_FREE, ++ m); ++ sshbuf_free(m); ++} ++ ++void ++mm_audit_destroy_sensitive_data(const char *fp, pid_t pid, uid_t uid) ++{ ++ int r; ++ struct sshbuf *m; ++ ++ if ((m = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ if ((r = sshbuf_put_cstring(m, fp)) != 0 || ++ (r = sshbuf_put_u64(m, pid)) != 0 || ++ (r = sshbuf_put_u64(m, uid)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUDIT_SERVER_KEY_FREE, m); ++ sshbuf_free(m); ++} ++#endif /* SSH_AUDIT_EVENTS */ +diff -up openssh-7.6p1/monitor_wrap.h.audit openssh-7.6p1/monitor_wrap.h +--- openssh-7.6p1/monitor_wrap.h.audit 2017-10-04 17:18:32.750504619 +0200 ++++ openssh-7.6p1/monitor_wrap.h 2017-10-04 17:18:32.838505069 +0200 +@@ -53,7 +53,9 @@ int mm_key_allowed(enum mm_keytype, cons + struct sshauthopt **); + int mm_hostbased_key_allowed(struct passwd *, const char *, + const char *, struct sshkey *); +-int mm_sshkey_verify(const struct sshkey *, const u_char *, size_t, ++int mm_hostbased_key_verify(const struct sshkey *, const u_char *, size_t, ++ const u_char *, size_t, const char *, u_int); ++int mm_user_key_verify(const struct sshkey *, const u_char *, size_t, + const u_char *, size_t, const char *, u_int); + + #ifdef GSSAPI +@@ -78,7 +80,12 @@ void mm_sshpam_free_ctx(void *); + #ifdef SSH_AUDIT_EVENTS + #include "audit.h" + void mm_audit_event(ssh_audit_event_t); +-void mm_audit_run_command(const char *); ++int mm_audit_run_command(const char *); ++void mm_audit_end_command(int, const char *); ++void mm_audit_unsupported_body(int); ++void mm_audit_kex_body(int, char *, char *, char *, char *, pid_t, uid_t); ++void mm_audit_session_key_free_body(int, pid_t, uid_t); ++void mm_audit_destroy_sensitive_data(const char *, pid_t, uid_t); + #endif + + struct Session; +diff -up openssh-7.6p1/packet.c.audit openssh-7.6p1/packet.c +--- openssh-7.6p1/packet.c.audit 2017-10-04 17:18:32.672504220 +0200 ++++ openssh-7.6p1/packet.c 2017-10-04 17:25:48.141741390 +0200 +@@ -67,6 +67,7 @@ + #include + + #include "xmalloc.h" ++#include "audit.h" + #include "crc32.h" + #include "compat.h" + #include "ssh2.h" +@@ -502,6 +503,13 @@ ssh_packet_get_connection_out(struct ssh + return ssh->state->connection_out; + } + ++static int ++packet_state_has_keys (const struct session_state *state) ++{ ++ return state != NULL && ++ (state->newkeys[MODE_IN] != NULL || state->newkeys[MODE_OUT] != NULL); ++} ++ + /* + * Returns the IP-address of the remote host as a string. The returned + * string must not be freed. +@@ -566,22 +574,19 @@ ssh_packet_close_internal(struct ssh *ss + { + struct session_state *state = ssh->state; + u_int mode; ++ u_int had_keys = packet_state_has_keys(state); + + if (!state->initialized) + return; + state->initialized = 0; +- if (do_close) { +- if (state->connection_in == state->connection_out) { +- close(state->connection_out); +- } else { +- close(state->connection_in); +- close(state->connection_out); +- } +- } + sshbuf_free(state->input); ++ state->input = NULL; + sshbuf_free(state->output); ++ state->output = NULL; + sshbuf_free(state->outgoing_packet); ++ state->outgoing_packet = NULL; + sshbuf_free(state->incoming_packet); ++ state->incoming_packet = NULL; + for (mode = 0; mode < MODE_MAX; mode++) { + kex_free_newkeys(state->newkeys[mode]); /* current keys */ + state->newkeys[mode] = NULL; +@@ -615,8 +616,18 @@ ssh_packet_close_internal(struct ssh *ss + } + cipher_free(state->send_context); + cipher_free(state->receive_context); ++ if (had_keys && state->server_side) { ++ /* Assuming this is called only from privsep child */ ++ audit_session_key_free(MODE_MAX); ++ } + state->send_context = state->receive_context = NULL; + if (do_close) { ++ if (state->connection_in == state->connection_out) { ++ close(state->connection_out); ++ } else { ++ close(state->connection_in); ++ close(state->connection_out); ++ } + free(ssh->local_ipaddr); + ssh->local_ipaddr = NULL; + free(ssh->remote_ipaddr); +@@ -854,6 +863,7 @@ ssh_set_newkeys(struct ssh *ssh, int mod + (unsigned long long)state->p_read.blocks, + (unsigned long long)state->p_send.bytes, + (unsigned long long)state->p_send.blocks); ++ audit_session_key_free(mode); + cipher_free(*ccp); + *ccp = NULL; + kex_free_newkeys(state->newkeys[mode]); +@@ -2135,6 +2145,72 @@ ssh_packet_get_output(struct ssh *ssh) + return (void *)ssh->state->output; + } + ++static void ++newkeys_destroy_and_free(struct newkeys *newkeys) ++{ ++ if (newkeys == NULL) ++ return; ++ ++ free(newkeys->enc.name); ++ ++ if (newkeys->mac.enabled) { ++ mac_clear(&newkeys->mac); ++ free(newkeys->mac.name); ++ } ++ ++ free(newkeys->comp.name); ++ ++ newkeys_destroy(newkeys); ++ free(newkeys); ++} ++ ++static void ++packet_destroy_state(struct session_state *state) ++{ ++ if (state == NULL) ++ return; ++ ++ cipher_free(state->receive_context); ++ cipher_free(state->send_context); ++ ++ sshbuf_free(state->input); ++ state->input = NULL; ++ sshbuf_free(state->output); ++ state->output = NULL; ++ sshbuf_free(state->outgoing_packet); ++ state->outgoing_packet = NULL; ++ sshbuf_free(state->incoming_packet); ++ state->incoming_packet = NULL; ++ if (state->compression_buffer) { ++ sshbuf_free(state->compression_buffer); ++ state->compression_buffer = NULL; ++ } ++ newkeys_destroy_and_free(state->newkeys[MODE_IN]); ++ state->newkeys[MODE_IN] = NULL; ++ newkeys_destroy_and_free(state->newkeys[MODE_OUT]); ++ state->newkeys[MODE_OUT] = NULL; ++ mac_destroy(state->packet_discard_mac); ++// TAILQ_HEAD(, packet) outgoing; ++// memset(state, 0, sizeof(state)); ++} ++ ++void ++packet_destroy_all(int audit_it, int privsep) ++{ ++ if (audit_it) ++ audit_it = (active_state != NULL && packet_state_has_keys(active_state->state)); ++ if (active_state != NULL) ++ packet_destroy_state(active_state->state); ++ if (audit_it) { ++#ifdef SSH_AUDIT_EVENTS ++ if (privsep) ++ audit_session_key_free(MODE_MAX); ++ else ++ audit_session_key_free_body(MODE_MAX, getpid(), getuid()); ++#endif ++ } ++} ++ + /* Reset after_authentication and reset compression in post-auth privsep */ + static int + ssh_packet_set_postauth(struct ssh *ssh) +diff -up openssh-7.6p1/packet.h.audit openssh-7.6p1/packet.h +--- openssh-7.6p1/packet.h.audit 2017-10-02 21:34:26.000000000 +0200 ++++ openssh-7.6p1/packet.h 2017-10-04 17:18:32.838505069 +0200 +@@ -217,4 +217,5 @@ extern struct ssh *active_state; + # undef EC_POINT + #endif + ++void packet_destroy_all(int, int); + #endif /* PACKET_H */ +diff -up openssh-7.6p1/session.c.audit openssh-7.6p1/session.c +--- openssh-7.6p1/session.c.audit 2017-10-04 17:18:32.812504936 +0200 ++++ openssh-7.6p1/session.c 2017-10-04 17:18:32.839505074 +0200 +@@ -138,7 +138,7 @@ extern char *__progname; + extern int debug_flag; + extern u_int utmp_len; + extern int startup_pipe; +-extern void destroy_sensitive_data(void); ++extern void destroy_sensitive_data(int); + extern struct sshbuf *loginmsg; + extern struct sshauthopt *auth_opts; + char *tun_fwd_ifnames; /* serverloop.c */ +@@ -605,6 +605,14 @@ do_exec_pty(struct ssh *ssh, Session *s, + /* Parent. Close the slave side of the pseudo tty. */ + close(ttyfd); + ++#if !defined(HAVE_OSF_SIA) && defined(SSH_AUDIT_EVENTS) ++ /* do_login in the child did not affect state in this process, ++ compensate. From an architectural standpoint, this is extremely ++ ugly. */ ++ if (command != NULL) ++ audit_count_session_open(); ++#endif ++ + /* Enter interactive session. */ + s->ptymaster = ptymaster; + packet_set_interactive(1, +@@ -724,15 +732,19 @@ do_exec(struct ssh *ssh, Session *s, con + s->self); + + #ifdef SSH_AUDIT_EVENTS ++ if (s->command != NULL || s->command_handle != -1) ++ fatal("do_exec: command already set"); + if (command != NULL) +- PRIVSEP(audit_run_command(command)); ++ s->command = xstrdup(command); + else if (s->ttyfd == -1) { + char *shell = s->pw->pw_shell; + + if (shell[0] == '\0') /* empty shell means /bin/sh */ + shell =_PATH_BSHELL; +- PRIVSEP(audit_run_command(shell)); ++ s->command = xstrdup(shell); + } ++ if (s->command != NULL && s->ptyfd == -1) ++ s->command_handle = PRIVSEP(audit_run_command(s->command)); + #endif + if (s->ttyfd != -1) + ret = do_exec_pty(ssh, s, command); +@@ -1499,8 +1511,11 @@ do_child(struct ssh *ssh, Session *s, co + int r = 0; + + /* remove hostkey from the child's memory */ +- destroy_sensitive_data(); ++ destroy_sensitive_data(1); + packet_clear_keys(); ++ /* Don't audit this - both us and the parent would be talking to the ++ monitor over a single socket, with no synchronization. */ ++ packet_destroy_all(0, 1); + + /* Force a password change */ + if (s->authctxt->force_pwchange) { +@@ -1714,6 +1729,9 @@ session_unused(int id) + sessions[id].ttyfd = -1; + sessions[id].ptymaster = -1; + sessions[id].x11_chanids = NULL; ++#ifdef SSH_AUDIT_EVENTS ++ sessions[id].command_handle = -1; ++#endif + sessions[id].next_unused = sessions_first_unused; + sessions_first_unused = id; + } +@@ -1796,6 +1814,19 @@ session_open(Authctxt *authctxt, int cha + } + + Session * ++session_by_id(int id) ++{ ++ if (id >= 0 && id < sessions_nalloc) { ++ Session *s = &sessions[id]; ++ if (s->used) ++ return s; ++ } ++ debug("%s: unknown id %d", __func__, id); ++ session_dump(); ++ return NULL; ++} ++ ++Session * + session_by_tty(char *tty) + { + int i; +@@ -2307,6 +2338,32 @@ session_exit_message(struct ssh *ssh, Se + chan_write_failed(ssh, c); + } + ++#ifdef SSH_AUDIT_EVENTS ++void ++session_end_command2(Session *s) ++{ ++ if (s->command != NULL) { ++ if (s->command_handle != -1) ++ audit_end_command(s->command_handle, s->command); ++ free(s->command); ++ s->command = NULL; ++ s->command_handle = -1; ++ } ++} ++ ++static void ++session_end_command(Session *s) ++{ ++ if (s->command != NULL) { ++ if (s->command_handle != -1) ++ PRIVSEP(audit_end_command(s->command_handle, s->command)); ++ free(s->command); ++ s->command = NULL; ++ s->command_handle = -1; ++ } ++} ++#endif ++ + void + session_close(struct ssh *ssh, Session *s) + { +@@ -2320,6 +2377,10 @@ session_close(struct ssh *ssh, Session * + + if (s->ttyfd != -1) + session_pty_cleanup(s); ++#ifdef SSH_AUDIT_EVENTS ++ if (s->command) ++ session_end_command(s); ++#endif + free(s->term); + free(s->display); + free(s->x11_chanids); +@@ -2528,6 +2589,15 @@ do_authenticated2(struct ssh *ssh, Authc + server_loop2(ssh, authctxt); + } + ++static void ++do_cleanup_one_session(Session *s) ++{ ++ session_pty_cleanup2(s); ++#ifdef SSH_AUDIT_EVENTS ++ session_end_command2(s); ++#endif ++} ++ + void + do_cleanup(struct ssh *ssh, Authctxt *authctxt) + { +@@ -2585,7 +2655,7 @@ do_cleanup(struct ssh *ssh, Authctxt *au + * or if running in monitor. + */ + if (!use_privsep || mm_is_monitor()) +- session_destroy_all(ssh, session_pty_cleanup2); ++ session_destroy_all(ssh, do_cleanup_one_session); + } + + /* Return a name for the remote host that fits inside utmp_size */ +diff -up openssh-7.6p1/session.h.audit openssh-7.6p1/session.h +--- openssh-7.6p1/session.h.audit 2017-10-02 21:34:26.000000000 +0200 ++++ openssh-7.6p1/session.h 2017-10-04 17:18:32.839505074 +0200 +@@ -60,6 +60,12 @@ struct Session { + char *name; + char *val; + } *env; ++ ++ /* exec */ ++#ifdef SSH_AUDIT_EVENTS ++ int command_handle; ++ char *command; ++#endif + }; + + void do_authenticated(struct ssh *, Authctxt *); +@@ -72,8 +78,10 @@ void session_close_by_pid(struct ssh *s + void session_close_by_channel(struct ssh *, int, void *); + void session_destroy_all(struct ssh *, void (*)(Session *)); + void session_pty_cleanup2(Session *); ++void session_end_command2(Session *); + + Session *session_new(void); ++Session *session_by_id(int); + Session *session_by_tty(char *); + void session_close(struct ssh *, Session *); + void do_setusercontext(struct passwd *); +diff -up openssh-7.6p1/sshd.c.audit openssh-7.6p1/sshd.c +--- openssh-7.6p1/sshd.c.audit 2017-10-04 17:18:32.830505028 +0200 ++++ openssh-7.6p1/sshd.c 2017-10-04 17:18:32.839505074 +0200 +@@ -122,6 +122,7 @@ + #include "ssh-gss.h" + #endif + #include "monitor_wrap.h" ++#include "audit.h" + #include "ssh-sandbox.h" + #include "auth-options.h" + #include "version.h" +@@ -248,7 +249,7 @@ Buffer loginmsg; + struct passwd *privsep_pw = NULL; + + /* Prototypes for various functions defined later in this file. */ +-void destroy_sensitive_data(void); ++void destroy_sensitive_data(int); + void demote_sensitive_data(void); + static void do_ssh2_kex(void); + +@@ -265,6 +266,15 @@ close_listen_socks(void) + num_listen_socks = -1; + } + ++/* ++ * Is this process listening for clients (i.e. not specific to any specific ++ * client connection?) ++ */ ++int listening_for_clients(void) ++{ ++ return num_listen_socks >= 0; ++} ++ + static void + close_startup_pipes(void) + { +@@ -475,18 +485,45 @@ sshd_exchange_identification(struct ssh + } + } + +-/* Destroy the host and server keys. They will no longer be needed. */ ++/* ++ * Destroy the host and server keys. They will no longer be needed. Careful, ++ * this can be called from cleanup_exit() - i.e. from just about anywhere. ++ */ + void +-destroy_sensitive_data(void) ++destroy_sensitive_data(int privsep) + { + u_int i; ++#ifdef SSH_AUDIT_EVENTS ++ pid_t pid; ++ uid_t uid; + ++ pid = getpid(); ++ uid = getuid(); ++#endif + for (i = 0; i < options.num_host_key_files; i++) { + if (sensitive_data.host_keys[i]) { ++ char *fp; ++ ++ if (sshkey_is_private(sensitive_data.host_keys[i])) ++ fp = sshkey_fingerprint(sensitive_data.host_keys[i], options.fingerprint_hash, SSH_FP_HEX); ++ else ++ fp = NULL; + sshkey_free(sensitive_data.host_keys[i]); + sensitive_data.host_keys[i] = NULL; ++ if (fp != NULL) { ++#ifdef SSH_AUDIT_EVENTS ++ if (privsep) ++ PRIVSEP(audit_destroy_sensitive_data(fp, ++ pid, uid)); ++ else ++ audit_destroy_sensitive_data(fp, ++ pid, uid); ++#endif ++ free(fp); ++ } + } +- if (sensitive_data.host_certificates[i]) { ++ if (sensitive_data.host_certificates ++ && sensitive_data.host_certificates[i]) { + sshkey_free(sensitive_data.host_certificates[i]); + sensitive_data.host_certificates[i] = NULL; + } +@@ -499,16 +536,34 @@ demote_sensitive_data(void) + struct sshkey *tmp; + u_int i; + int r; ++#ifdef SSH_AUDIT_EVENTS ++ pid_t pid; ++ uid_t uid; + ++ pid = getpid(); ++ uid = getuid(); ++#endif + for (i = 0; i < options.num_host_key_files; i++) { + if (sensitive_data.host_keys[i]) { ++ char *fp; ++ ++ if (sshkey_is_private(sensitive_data.host_keys[i])) ++ fp = sshkey_fingerprint(sensitive_data.host_keys[i], options.fingerprint_hash, SSH_FP_HEX); ++ else ++ fp = NULL; + if ((r = sshkey_demote(sensitive_data.host_keys[i], + &tmp)) != 0) + fatal("could not demote host %s key: %s", + sshkey_type(sensitive_data.host_keys[i]), + ssh_err(r)); + sshkey_free(sensitive_data.host_keys[i]); + sensitive_data.host_keys[i] = tmp; ++ if (fp != NULL) { ++#ifdef SSH_AUDIT_EVENTS ++ audit_destroy_sensitive_data(fp, pid, uid); ++#endif ++ free(fp); ++ } + } + /* Certs do not need demotion */ + } +@@ -587,7 +642,7 @@ privsep_preauth(Authctxt *authctxt) + + if (use_privsep == PRIVSEP_ON) + box = ssh_sandbox_init(pmonitor); +- pid = fork(); ++ pmonitor->m_pid = pid = fork(); + if (pid == -1) { + fatal("fork of unprivileged child failed"); + } else if (pid != 0) { +@@ -1162,6 +1217,7 @@ server_accept_loop(int *sock_in, int *so + if (received_sigterm) { + logit("Received signal %d; terminating.", + (int) received_sigterm); ++ destroy_sensitive_data(0); + close_listen_socks(); + if (options.pid_file != NULL) + unlink(options.pid_file); +@@ -2165,6 +2221,9 @@ main(int ac, char **av) + do_authenticated(ssh, authctxt); + + /* The connection has been terminated. */ ++ packet_destroy_all(1, 1); ++ destroy_sensitive_data(1); ++ + packet_get_bytes(&ibytes, &obytes); + verbose("Transferred: sent %llu, received %llu bytes", + (unsigned long long)obytes, (unsigned long long)ibytes); +@@ -2344,6 +2403,15 @@ void + cleanup_exit(int i) + { + struct ssh *ssh = active_state; /* XXX */ ++ static int in_cleanup = 0; ++ int is_privsep_child; ++ ++ /* cleanup_exit can be called at the very least from the privsep ++ wrappers used for auditing. Make sure we don't recurse ++ indefinitely. */ ++ if (in_cleanup) ++ _exit(i); ++ in_cleanup = 1; + + if (the_authctxt) { + do_cleanup(ssh, the_authctxt); +@@ -2356,9 +2424,14 @@ cleanup_exit(int i) + pmonitor->m_pid, strerror(errno)); + } + } ++ is_privsep_child = use_privsep && pmonitor != NULL && pmonitor->m_pid == 0; ++ if (sensitive_data.host_keys != NULL) ++ destroy_sensitive_data(is_privsep_child); ++ packet_destroy_all(1, is_privsep_child); + #ifdef SSH_AUDIT_EVENTS + /* done after do_cleanup so it can cancel the PAM auth 'thread' */ +- if (!use_privsep || mm_is_monitor()) ++ if ((the_authctxt == NULL || !the_authctxt->authenticated) && ++ (!use_privsep || mm_is_monitor())) + audit_event(SSH_CONNECTION_ABANDON); + #endif + _exit(i); +diff -up openssh-7.6p1/sshkey.c.audit openssh-7.6p1/sshkey.c +--- openssh-7.6p1/sshkey.c.audit 2017-10-04 17:18:32.758504660 +0200 ++++ openssh-7.6p1/sshkey.c 2017-10-04 17:18:32.839505074 +0200 +@@ -295,6 +295,32 @@ sshkey_type_is_valid_ca(int type) + } + + int ++sshkey_is_private(const struct sshkey *k) ++{ ++ switch (k->type) { ++#ifdef WITH_OPENSSL ++ case KEY_RSA_CERT: ++ case KEY_RSA: ++ return k->rsa->d != NULL; ++ case KEY_DSA_CERT: ++ case KEY_DSA: ++ return k->dsa->priv_key != NULL; ++#ifdef OPENSSL_HAS_ECC ++ case KEY_ECDSA_CERT: ++ case KEY_ECDSA: ++ return EC_KEY_get0_private_key(k->ecdsa) != NULL; ++#endif /* OPENSSL_HAS_ECC */ ++#endif /* WITH_OPENSSL */ ++ case KEY_ED25519_CERT: ++ case KEY_ED25519: ++ return (k->ed25519_pk != NULL); ++ default: ++ /* fatal("key_is_private: bad key type %d", k->type); */ ++ return 0; ++ } ++} ++ ++int + sshkey_is_cert(const struct sshkey *k) + { + if (k == NULL) +diff -up openssh-7.6p1/sshkey.h.audit openssh-7.6p1/sshkey.h +--- openssh-7.6p1/sshkey.h.audit 2017-10-04 17:18:32.758504660 +0200 ++++ openssh-7.6p1/sshkey.h 2017-10-04 17:18:32.840505079 +0200 +@@ -133,6 +133,7 @@ u_int sshkey_size(const struct sshkey + int sshkey_generate(int type, u_int bits, struct sshkey **keyp); + int sshkey_from_private(const struct sshkey *, struct sshkey **); + int sshkey_type_from_name(const char *); ++int sshkey_is_private(const struct sshkey *); + int sshkey_is_cert(const struct sshkey *); + int sshkey_type_is_cert(int); + int sshkey_type_plain(int); diff --git a/openssh-7.6p1-cleanup-selinux.patch b/openssh-7.6p1-cleanup-selinux.patch new file mode 100644 index 0000000..3b5001a --- /dev/null +++ b/openssh-7.6p1-cleanup-selinux.patch @@ -0,0 +1,253 @@ +diff -up openssh/auth2-pubkey.c.refactor openssh/auth2-pubkey.c +--- openssh/auth2-pubkey.c.refactor 2017-09-27 13:10:19.556830609 +0200 ++++ openssh/auth2-pubkey.c 2017-09-27 13:10:19.677831274 +0200 +@@ -72,6 +72,9 @@ + extern ServerOptions options; + extern u_char *session_id2; + extern u_int session_id2_len; ++extern int inetd_flag; ++extern int rexeced_flag; ++extern Authctxt *the_authctxt; + + static char * + format_key(const struct sshkey *key) +@@ -432,7 +435,8 @@ match_principals_command(struct passwd * + + if ((pid = subprocess("AuthorizedPrincipalsCommand", runas_pw, command, + ac, av, &f, +- SSH_SUBPROCESS_STDOUT_CAPTURE|SSH_SUBPROCESS_STDERR_DISCARD)) == 0) ++ SSH_SUBPROCESS_STDOUT_CAPTURE|SSH_SUBPROCESS_STDERR_DISCARD, ++ (inetd_flag && !rexeced_flag), the_authctxt)) == 0) + goto out; + + uid_swapped = 1; +@@ -762,7 +766,8 @@ user_key_command_allowed2(struct passwd + + if ((pid = subprocess("AuthorizedKeysCommand", runas_pw, command, + ac, av, &f, +- SSH_SUBPROCESS_STDOUT_CAPTURE|SSH_SUBPROCESS_STDERR_DISCARD)) == 0) ++ SSH_SUBPROCESS_STDOUT_CAPTURE|SSH_SUBPROCESS_STDERR_DISCARD, ++ (inetd_flag && !rexeced_flag), the_authctxt)) == 0) + goto out; + + uid_swapped = 1; +diff -up openssh/auth.c.refactor openssh/auth.c +--- openssh/auth.c.refactor 2017-09-27 13:10:19.640831071 +0200 ++++ openssh/auth.c 2017-09-27 13:10:19.678831279 +0200 +@@ -1435,7 +1435,8 @@ argv_assemble(int argc, char **argv) + */ + pid_t + subprocess(const char *tag, struct passwd *pw, const char *command, +- int ac, char **av, FILE **child, u_int flags) ++ int ac, char **av, FILE **child, u_int flags, int inetd, ++ void *the_authctxt) + { + FILE *f = NULL; + struct stat st; +@@ -1551,7 +1552,7 @@ subprocess(const char *tag, struct passw + } + + #ifdef WITH_SELINUX +- if (sshd_selinux_setup_env_variables() < 0) { ++ if (sshd_selinux_setup_env_variables(inetd, the_authctxt) < 0) { + error ("failed to copy environment: %s", + strerror(errno)); + _exit(127); +diff -up openssh/auth.h.refactor openssh/auth.h +--- openssh/auth.h.refactor 2017-09-25 01:48:10.000000000 +0200 ++++ openssh/auth.h 2017-09-27 13:10:19.678831279 +0200 +@@ -144,7 +144,7 @@ int exited_cleanly(pid_t, const char *, + #define SSH_SUBPROCESS_STDOUT_CAPTURE (1<<1) /* Redirect stdout */ + #define SSH_SUBPROCESS_STDERR_DISCARD (1<<2) /* Discard stderr */ + pid_t subprocess(const char *, struct passwd *, +- const char *, int, char **, FILE **, u_int flags); ++ const char *, int, char **, FILE **, u_int flags, int, void *); + + int sys_auth_passwd(struct ssh *, const char *); + +diff -up openssh/openbsd-compat/port-linux.h.refactor openssh/openbsd-compat/port-linux.h +--- openssh/openbsd-compat/port-linux.h.refactor 2017-09-27 13:10:19.634831038 +0200 ++++ openssh/openbsd-compat/port-linux.h 2017-09-27 13:10:54.954025248 +0200 +@@ -26,8 +26,8 @@ void ssh_selinux_setfscreatecon(const ch + + int sshd_selinux_enabled(void); + void sshd_selinux_copy_context(void); +-void sshd_selinux_setup_exec_context(char *); +-int sshd_selinux_setup_env_variables(void); ++void sshd_selinux_setup_exec_context(char *, int, int(char *, const char *), void *, int); ++int sshd_selinux_setup_env_variables(int inetd, void *); + void sshd_selinux_change_privsep_preauth_context(void); + #endif + +diff -up openssh/openbsd-compat/port-linux-sshd.c.refactor openssh/openbsd-compat/port-linux-sshd.c +--- openssh/openbsd-compat/port-linux-sshd.c.refactor 2017-09-27 13:10:19.634831038 +0200 ++++ openssh/openbsd-compat/port-linux-sshd.c 2017-09-27 13:12:06.811420371 +0200 +@@ -48,11 +48,6 @@ + #include + #endif + +-extern ServerOptions options; +-extern Authctxt *the_authctxt; +-extern int inetd_flag; +-extern int rexeced_flag; +- + /* Wrapper around is_selinux_enabled() to log its return value once only */ + int + sshd_selinux_enabled(void) +@@ -222,7 +217,8 @@ get_user_context(const char *sename, con + } + + static void +-ssh_selinux_get_role_level(char **role, const char **level) ++ssh_selinux_get_role_level(char **role, const char **level, ++ Authctxt *the_authctxt) + { + *role = NULL; + *level = NULL; +@@ -240,8 +236,8 @@ ssh_selinux_get_role_level(char **role, + + /* Return the default security context for the given username */ + static int +-sshd_selinux_getctxbyname(char *pwname, +- security_context_t *default_sc, security_context_t *user_sc) ++sshd_selinux_getctxbyname(char *pwname, security_context_t *default_sc, ++ security_context_t *user_sc, int inetd, Authctxt *the_authctxt) + { + char *sename, *lvl; + char *role; +@@ -249,7 +245,7 @@ sshd_selinux_getctxbyname(char *pwname, + int r = 0; + context_t con = NULL; + +- ssh_selinux_get_role_level(&role, &reqlvl); ++ ssh_selinux_get_role_level(&role, &reqlvl, the_authctxt); + + #ifdef HAVE_GETSEUSERBYNAME + if ((r=getseuserbyname(pwname, &sename, &lvl)) != 0) { +@@ -271,7 +267,7 @@ sshd_selinux_getctxbyname(char *pwname, + + if (r == 0) { + /* If launched from xinetd, we must use current level */ +- if (inetd_flag && !rexeced_flag) { ++ if (inetd) { + security_context_t sshdsc=NULL; + + if (getcon_raw(&sshdsc) < 0) +@@ -332,7 +328,8 @@ sshd_selinux_getctxbyname(char *pwname, + + /* Setup environment variables for pam_selinux */ + static int +-sshd_selinux_setup_variables(int(*set_it)(char *, const char *)) ++sshd_selinux_setup_variables(int(*set_it)(char *, const char *), int inetd, ++ Authctxt *the_authctxt) + { + const char *reqlvl; + char *role; +@@ -341,11 +338,11 @@ sshd_selinux_setup_variables(int(*set_it + + debug3("%s: setting execution context", __func__); + +- ssh_selinux_get_role_level(&role, &reqlvl); ++ ssh_selinux_get_role_level(&role, &reqlvl, the_authctxt); + + rv = set_it("SELINUX_ROLE_REQUESTED", role ? role : ""); + +- if (inetd_flag && !rexeced_flag) { ++ if (inetd) { + use_current = "1"; + } else { + use_current = ""; +@@ -361,9 +358,10 @@ sshd_selinux_setup_variables(int(*set_it + } + + static int +-sshd_selinux_setup_pam_variables(void) ++sshd_selinux_setup_pam_variables(int inetd, ++ int(pam_setenv)(char *, const char *), Authctxt *the_authctxt) + { +- return sshd_selinux_setup_variables(do_pam_putenv); ++ return sshd_selinux_setup_variables(pam_setenv, inetd, the_authctxt); + } + + static int +@@ -373,25 +371,28 @@ do_setenv(char *name, const char *value) + } + + int +-sshd_selinux_setup_env_variables(void) ++sshd_selinux_setup_env_variables(int inetd, void *the_authctxt) + { +- return sshd_selinux_setup_variables(do_setenv); ++ Authctxt *authctxt = (Authctxt *) the_authctxt; ++ return sshd_selinux_setup_variables(do_setenv, inetd, authctxt); + } + + /* Set the execution context to the default for the specified user */ + void +-sshd_selinux_setup_exec_context(char *pwname) ++sshd_selinux_setup_exec_context(char *pwname, int inetd, ++ int(pam_setenv)(char *, const char *), void *the_authctxt, int use_pam) + { + security_context_t user_ctx = NULL; + int r = 0; + security_context_t default_ctx = NULL; ++ Authctxt *authctxt = (Authctxt *) the_authctxt; + + if (!sshd_selinux_enabled()) + return; + +- if (options.use_pam) { ++ if (use_pam) { + /* do not compute context, just setup environment for pam_selinux */ +- if (sshd_selinux_setup_pam_variables()) { ++ if (sshd_selinux_setup_pam_variables(inetd, pam_setenv, authctxt)) { + switch (security_getenforce()) { + case -1: + fatal("%s: security_getenforce() failed", __func__); +@@ -409,7 +410,7 @@ sshd_selinux_setup_exec_context(char *pw + + debug3("%s: setting execution context", __func__); + +- r = sshd_selinux_getctxbyname(pwname, &default_ctx, &user_ctx); ++ r = sshd_selinux_getctxbyname(pwname, &default_ctx, &user_ctx, inetd, authctxt); + if (r >= 0) { + r = setexeccon(user_ctx); + if (r < 0) { +diff -up openssh/platform.c.refactor openssh/platform.c +--- openssh/platform.c.refactor 2017-09-27 13:10:19.574830708 +0200 ++++ openssh/platform.c 2017-09-27 13:11:45.475303050 +0200 +@@ -33,6 +33,9 @@ + + extern int use_privsep; + extern ServerOptions options; ++extern int inetd_flag; ++extern int rexeced_flag; ++extern Authctxt *the_authctxt; + + void + platform_pre_listen(void) +@@ -184,7 +187,9 @@ platform_setusercontext_post_groups(stru + } + #endif /* HAVE_SETPCRED */ + #ifdef WITH_SELINUX +- sshd_selinux_setup_exec_context(pw->pw_name); ++ sshd_selinux_setup_exec_context(pw->pw_name, ++ (inetd_flag && !rexeced_flag), do_pam_putenv, the_authctxt, ++ options.use_pam); + #endif + } + +diff -up openssh/sshd.c.refactor openssh/sshd.c +--- openssh/sshd.c.refactor 2017-09-27 13:10:19.674831257 +0200 ++++ openssh/sshd.c 2017-09-27 13:12:01.635391909 +0200 +@@ -2135,7 +2135,9 @@ main(int ac, char **av) + } + #endif + #ifdef WITH_SELINUX +- sshd_selinux_setup_exec_context(authctxt->pw->pw_name); ++ sshd_selinux_setup_exec_context(authctxt->pw->pw_name, ++ (inetd_flag && !rexeced_flag), do_pam_putenv, the_authctxt, ++ options.use_pam); + #endif + #ifdef USE_PAM + if (options.use_pam) { diff --git a/openssh-7.6p1-pkcs11-ecdsa.patch b/openssh-7.6p1-pkcs11-ecdsa.patch new file mode 100644 index 0000000..2e73d45 --- /dev/null +++ b/openssh-7.6p1-pkcs11-ecdsa.patch @@ -0,0 +1,801 @@ +diff -up openssh-7.6p1/ssh-pkcs11-client.c.pkcs11-ecdsa openssh-7.6p1/ssh-pkcs11-client.c +--- openssh-7.6p1/ssh-pkcs11-client.c.pkcs11-ecdsa 2018-02-16 13:25:59.426469253 +0100 ++++ openssh-7.6p1/ssh-pkcs11-client.c 2018-02-16 13:25:59.428469265 +0100 +@@ -31,6 +31,15 @@ + #include + + #include ++#ifdef OPENSSL_HAS_ECC ++#include ++#if ((defined(LIBRESSL_VERSION_NUMBER) && \ ++ (LIBRESSL_VERSION_NUMBER >= 0x20010002L))) || \ ++ (defined(ECDSA_F_ECDSA_METHOD_NEW)) || \ ++ (OPENSSL_VERSION_NUMBER >= 0x00010100L) ++#define ENABLE_PKCS11_ECDSA 1 ++#endif ++#endif + + #include "pathnames.h" + #include "xmalloc.h" +@@ -139,9 +147,9 @@ pkcs11_rsa_private_encrypt(int flen, con + return (ret); + } + +-/* redirect the private key encrypt operation to the ssh-pkcs11-helper */ ++/* redirect the RSA private key encrypt operation to the ssh-pkcs11-helper */ + static int +-wrap_key(RSA *rsa) ++wrap_rsa_key(RSA *rsa) + { + static RSA_METHOD helper_rsa; + +@@ -152,6 +160,88 @@ wrap_key(RSA *rsa) + return (0); + } + ++#ifdef ENABLE_PKCS11_ECDSA ++static ECDSA_SIG * ++pkcs11_ecdsa_private_sign(const unsigned char *from, int flen, ++ const BIGNUM *inv, const BIGNUM *rp, EC_KEY * ecdsa) ++{ ++ struct sshkey *key = NULL; ++ u_char *blob, *signature = NULL; ++ size_t blen, slen = 0; ++ struct sshbuf *msg = NULL; ++ ECDSA_SIG *ret = NULL; ++ BIGNUM *r = NULL, *s = NULL; ++ int rv; ++ ++ if ((key = sshkey_new(KEY_ECDSA)) == NULL) ++ fatal("%s: sshkey_new failed", __func__); ++ key->ecdsa = ecdsa; ++ key->ecdsa_nid = sshkey_ecdsa_key_to_nid(ecdsa); ++ if (sshkey_to_blob(key, &blob, &blen) == 0) ++ goto out; ++ if ((msg = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ if ((rv = sshbuf_put_u8(msg, SSH2_AGENTC_SIGN_REQUEST)) != 0 || ++ (rv = sshbuf_put_string(msg, blob, blen)) != 0 || ++ (rv = sshbuf_put_string(msg, from, flen)) != 0 || ++ (rv = sshbuf_put_u32(msg, 0)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(rv)); ++ free(blob); ++ send_msg(msg); ++ sshbuf_reset(msg); ++ ++ if (recv_msg(msg) == SSH2_AGENT_SIGN_RESPONSE) { ++ if ((rv = sshbuf_get_string(msg, &signature, &slen)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(rv)); ++ if (slen <= (size_t)ECDSA_size(ecdsa)) { ++ int nlen = slen / 2; ++ ret = ECDSA_SIG_new(); ++ r = BN_new(); ++ s = BN_new(); ++ BN_bin2bn(&signature[0], nlen, r); ++ BN_bin2bn(&signature[nlen], nlen, s); ++ ECDSA_SIG_set0(ret, r, s); ++ } ++ free(signature); ++ } ++out: ++ sshkey_free(key); ++ sshbuf_free(msg); ++ return (ret); ++} ++ ++/* redirect the ECDSA private key encrypt operation to the ssh-pkcs11-helper */ ++static int ++wrap_ecdsa_key(EC_KEY *ecdsa) { ++#if (OPENSSL_VERSION_NUMBER >= 0x00010100L) ++ static EC_KEY_METHOD *helper_ecdsa = NULL; ++ if (helper_ecdsa == NULL) { ++ const EC_KEY_METHOD *def = EC_KEY_get_default_method(); ++ helper_ecdsa = EC_KEY_METHOD_new(def); ++ EC_KEY_METHOD_set_sign(helper_ecdsa, NULL, NULL, pkcs11_ecdsa_private_sign); ++ } ++ EC_KEY_set_method(ecdsa, helper_ecdsa); ++#else ++ static ECDSA_METHOD *helper_ecdsa = NULL; ++ if(helper_ecdsa == NULL) { ++ const ECDSA_METHOD *def = ECDSA_get_default_method(); ++# ifdef ECDSA_F_ECDSA_METHOD_NEW ++ helper_ecdsa = ECDSA_METHOD_new((ECDSA_METHOD *)def); ++ ECDSA_METHOD_set_name(helper_ecdsa, "ssh-pkcs11-helper-ecdsa"); ++ ECDSA_METHOD_set_sign(helper_ecdsa, pkcs11_ecdsa_private_sign); ++# else ++ helper_ecdsa = xcalloc(1, sizeof(*helper_ecdsa)); ++ memcpy(helper_ecdsa, def, sizeof(*helper_ecdsa)); ++ helper_ecdsa->name = "ssh-pkcs11-helper-ecdsa"; ++ helper_ecdsa->ecdsa_do_sign = pkcs11_ecdsa_private_sign; ++# endif ++ } ++ ECDSA_set_method(ecdsa, helper_ecdsa); ++#endif ++ return (0); ++} ++#endif ++ + static int + pkcs11_start_helper(void) + { +@@ -212,7 +281,15 @@ pkcs11_add_provider(char *name, char *pi + __func__, ssh_err(r)); + if ((r = sshkey_from_blob(blob, blen, &k)) != 0) + fatal("%s: bad key: %s", __func__, ssh_err(r)); +- wrap_key(k->rsa); ++ if(k->type == KEY_RSA) { ++ wrap_rsa_key(k->rsa); ++#ifdef ENABLE_PKCS11_ECDSA ++ } else if(k->type == KEY_ECDSA) { ++ wrap_ecdsa_key(k->ecdsa); ++#endif /* ENABLE_PKCS11_ECDSA */ ++ } else { ++ /* Unsupported type */ ++ } + (*keysp)[i] = k; + free(blob); + } +diff -up openssh-7.6p1/ssh-pkcs11.c.pkcs11-ecdsa openssh-7.6p1/ssh-pkcs11.c +--- openssh-7.6p1/ssh-pkcs11.c.pkcs11-ecdsa 2018-02-16 13:25:59.427469259 +0100 ++++ openssh-7.6p1/ssh-pkcs11.c 2018-02-16 13:44:51.270554797 +0100 +@@ -32,6 +32,16 @@ + #include "openbsd-compat/sys-queue.h" + + #include ++#include ++#ifdef OPENSSL_HAS_ECC ++#include ++#if ((defined(LIBRESSL_VERSION_NUMBER) && \ ++ (LIBRESSL_VERSION_NUMBER >= 0x20010002L))) || \ ++ (defined(ECDSA_F_ECDSA_METHOD_NEW)) || \ ++ (OPENSSL_VERSION_NUMBER >= 0x00010100L) ++#define ENABLE_PKCS11_ECDSA 1 ++#endif ++#endif + + #define CRYPTOKI_COMPAT + #include "pkcs11.h" +@@ -67,6 +76,7 @@ TAILQ_HEAD(, pkcs11_provider) pkcs11_pro + struct pkcs11_key { + struct pkcs11_provider *provider; + CK_ULONG slotidx; ++ CK_ULONG key_type; + int (*orig_finish)(RSA *rsa); + RSA_METHOD rsa_method; + char *keyid; +@@ -75,6 +85,9 @@ struct pkcs11_key { + }; + + int pkcs11_interactive = 0; ++#ifdef ENABLE_PKCS11_ECDSA ++static int pkcs11_key_idx = -1; ++#endif /* ENABLE_PKCS11_ECDSA */ + + /* + * This can't be in the ssh-pkcs11-uri, becase we can not depend on +@@ -289,6 +302,40 @@ pkcs11_find(struct pkcs11_provider *p, C + return (ret); + } + ++int pkcs11_login(struct pkcs11_key *k11, CK_FUNCTION_LIST *f, struct pkcs11_slotinfo *si) { ++ char *pin = NULL, prompt[1024]; ++ CK_RV rv; ++ if ((si->token.flags & CKF_LOGIN_REQUIRED) && !si->logged_in) { ++ if (!pkcs11_interactive) { ++ error("need pin entry%s", (si->token.flags & ++ CKF_PROTECTED_AUTHENTICATION_PATH) ? ++ " on reader keypad" : ""); ++ return (-1); ++ } ++ if (si->token.flags & CKF_PROTECTED_AUTHENTICATION_PATH) ++ verbose("Deferring PIN entry to reader keypad."); ++ else { ++ snprintf(prompt, sizeof(prompt), ++ "Enter PIN for '%s': ", si->token.label); ++ pin = read_passphrase(prompt, RP_ALLOW_EOF); ++ if (pin == NULL) ++ return (-1); /* bail out */ ++ } ++ rv = f->C_Login(si->session, CKU_USER, (u_char *)pin, ++ (pin != NULL) ? strlen(pin) : 0); ++ if (pin != NULL) { ++ explicit_bzero(pin, strlen(pin)); ++ free(pin); ++ } ++ if (rv != CKR_OK && rv != CKR_USER_ALREADY_LOGGED_IN) { ++ error("C_Login failed: %lu", rv); ++ return (-1); ++ } ++ si->logged_in = 1; ++ } ++ return 0; ++} ++ + /* openssl callback doing the actual signing operation */ + static int + pkcs11_rsa_private_encrypt(int flen, const u_char *from, u_char *to, RSA *rsa, +@@ -310,7 +357,6 @@ pkcs11_rsa_private_encrypt(int flen, con + {CKA_ID, NULL, 0}, + {CKA_SIGN, NULL, sizeof(true_val) } + }; +- char *pin = NULL, prompt[1024]; + int rval = -1; + + key_filter[0].pValue = &private_key_class; +@@ -326,33 +372,8 @@ pkcs11_rsa_private_encrypt(int flen, con + } + f = k11->provider->module->function_list; + si = &k11->provider->module->slotinfo[k11->slotidx]; +- if ((si->token.flags & CKF_LOGIN_REQUIRED) && !si->logged_in) { +- if (!pkcs11_interactive) { +- error("need pin entry%s", (si->token.flags & +- CKF_PROTECTED_AUTHENTICATION_PATH) ? +- " on reader keypad" : ""); +- return (-1); +- } +- if (si->token.flags & CKF_PROTECTED_AUTHENTICATION_PATH) +- verbose("Deferring PIN entry to reader keypad."); +- else { +- snprintf(prompt, sizeof(prompt), +- "Enter PIN for '%s': ", si->token.label); +- pin = read_passphrase(prompt, RP_ALLOW_EOF); +- if (pin == NULL) +- return (-1); /* bail out */ +- } +- rv = f->C_Login(si->session, CKU_USER, (u_char *)pin, +- (pin != NULL) ? strlen(pin) : 0); +- if (pin != NULL) { +- explicit_bzero(pin, strlen(pin)); +- free(pin); +- } +- if (rv != CKR_OK && rv != CKR_USER_ALREADY_LOGGED_IN) { +- error("C_Login failed: %lu", rv); +- return (-1); +- } +- si->logged_in = 1; ++ if(pkcs11_login(k11, f, si)) { ++ return (-1); + } + key_filter[1].pValue = k11->keyid; + key_filter[1].ulValueLen = k11->keyid_len; +@@ -390,6 +411,7 @@ pkcs11_rsa_wrap(struct pkcs11_provider * + const RSA_METHOD *def = RSA_get_default_method(); + + k11 = xcalloc(1, sizeof(*k11)); ++ k11->key_type = CKK_RSA; + k11->provider = provider; + provider->refcount++; /* provider referenced by RSA key */ + k11->slotidx = slotidx; +@@ -415,6 +437,184 @@ pkcs11_rsa_wrap(struct pkcs11_provider * + return (0); + } + ++#ifdef ENABLE_PKCS11_ECDSA ++static ECDSA_SIG *pkcs11_ecdsa_sign(const unsigned char *dgst, int dgst_len, ++ const BIGNUM *inv, const BIGNUM *rp, ++ EC_KEY *ecdsa) { ++ struct pkcs11_key *k11; ++ struct pkcs11_slotinfo *si; ++ CK_FUNCTION_LIST *f; ++ CK_OBJECT_HANDLE obj; ++ CK_ULONG tlen = 0; ++ CK_RV rv; ++ CK_OBJECT_CLASS private_key_class = CKO_PRIVATE_KEY; ++ CK_BBOOL true_val = CK_TRUE; ++ CK_MECHANISM mech = { ++ CKM_ECDSA, NULL_PTR, 0 ++ }; ++ CK_ATTRIBUTE key_filter[] = { ++ {CKA_CLASS, NULL, sizeof(private_key_class) }, ++ {CKA_ID, NULL, 0}, ++ {CKA_SIGN, NULL, sizeof(true_val) } ++ }; ++ ECDSA_SIG *rval = NULL; ++ key_filter[0].pValue = &private_key_class; ++ key_filter[2].pValue = &true_val; ++ ++ #if (OPENSSL_VERSION_NUMBER >= 0x00010100L) ++ if ((k11 = (struct pkcs11_key *)EC_KEY_get_ex_data(ecdsa, pkcs11_key_idx)) == NULL) { ++ error("EC_KEY_get_ex_data failed for ecdsa %p", ecdsa); ++ #else ++ if ((k11 = (struct pkcs11_key *)ECDSA_get_ex_data(ecdsa, pkcs11_key_idx)) == NULL) { ++ error("ECDSA_get_ex_data failed for ecdsa %p", ecdsa); ++ #endif ++ return NULL; ++ } ++ if (!k11->provider || !k11->provider->valid) { ++ error("no pkcs11 (valid) provider for ecdsa %p", ecdsa); ++ return NULL; ++ } ++ f = k11->provider->module->function_list; ++ si = &k11->provider->module->slotinfo[k11->slotidx]; ++ if(pkcs11_login(k11, f, si)) { ++ return NULL; ++ } ++ key_filter[1].pValue = k11->keyid; ++ key_filter[1].ulValueLen = k11->keyid_len; ++ /* try to find object w/CKA_SIGN first, retry w/o */ ++ if (pkcs11_find(k11->provider, k11->slotidx, key_filter, 3, &obj) < 0 && ++ pkcs11_find(k11->provider, k11->slotidx, key_filter, 2, &obj) < 0) { ++ error("cannot find private key"); ++ } else if ((rv = f->C_SignInit(si->session, &mech, obj)) != CKR_OK) { ++ error("C_SignInit failed: %lu", rv); ++ } else { ++ CK_BYTE_PTR buf = NULL; ++ BIGNUM *r = NULL, *s = NULL; ++ int nlen; ++ /* Make a call to C_Sign to find out the size of the signature */ ++ rv = f->C_Sign(si->session, (CK_BYTE *)dgst, dgst_len, NULL, &tlen); ++ if (rv != CKR_OK) { ++ error("C_Sign failed: %lu", rv); ++ return NULL; ++ } ++ if ((buf = xmalloc(tlen)) == NULL) { ++ error("failure to allocate signature buffer"); ++ return NULL; ++ } ++ rv = f->C_Sign(si->session, (CK_BYTE *)dgst, dgst_len, buf, &tlen); ++ if (rv != CKR_OK) { ++ error("C_Sign failed: %lu", rv); ++ } ++ ++ if ((rval = ECDSA_SIG_new()) == NULL || ++ (r = BN_new()) == NULL || ++ (s = BN_new()) == NULL) { ++ error("failure to allocate ECDSA signature"); ++ } else { ++ /* ++ * ECDSA signature is 2 large integers of same size returned ++ * concatenated by PKCS#11, we separate them to create an ++ * ECDSA_SIG for OpenSSL. ++ */ ++ nlen = tlen / 2; ++ BN_bin2bn(&buf[0], nlen, r); ++ BN_bin2bn(&buf[nlen], nlen, s); ++ ECDSA_SIG_set0(rval, r, s); ++ } ++ free(buf); ++ } ++ return (rval); ++} ++ ++#if (OPENSSL_VERSION_NUMBER >= 0x00010100L) ++static EC_KEY_METHOD *get_pkcs11_ecdsa_method(void) { ++ static EC_KEY_METHOD *pkcs11_ecdsa_method = NULL; ++ if(pkcs11_key_idx == -1) { ++ pkcs11_key_idx = EC_KEY_get_ex_new_index(0, NULL, NULL, NULL, 0); ++ } ++ if (pkcs11_ecdsa_method == NULL) { ++ const EC_KEY_METHOD *def = EC_KEY_get_default_method(); ++ pkcs11_ecdsa_method = EC_KEY_METHOD_new(def); ++ EC_KEY_METHOD_set_sign(pkcs11_ecdsa_method, NULL, NULL, pkcs11_ecdsa_sign); ++ } ++#else ++static ECDSA_METHOD *get_pkcs11_ecdsa_method(void) { ++ static ECDSA_METHOD *pkcs11_ecdsa_method = NULL; ++ if(pkcs11_key_idx == -1) { ++ pkcs11_key_idx = ECDSA_get_ex_new_index(0, NULL, NULL, NULL, 0); ++ } ++ if(pkcs11_ecdsa_method == NULL) { ++ const ECDSA_METHOD *def = ECDSA_get_default_method(); ++ #ifdef ECDSA_F_ECDSA_METHOD_NEW ++ pkcs11_ecdsa_method = ECDSA_METHOD_new((ECDSA_METHOD *)def); ++ ECDSA_METHOD_set_name(pkcs11_ecdsa_method, "pkcs11"); ++ ECDSA_METHOD_set_sign(pkcs11_ecdsa_method, pkcs11_ecdsa_sign); ++ #else ++ pkcs11_ecdsa_method = xcalloc(1, sizeof(*pkcs11_ecdsa_method)); ++ memcpy(pkcs11_ecdsa_method, def, sizeof(*pkcs11_ecdsa_method)); ++ pkcs11_ecdsa_method->name = "pkcs11"; ++ pkcs11_ecdsa_method->ecdsa_do_sign = pkcs11_ecdsa_sign; ++ #endif ++ } ++#endif ++ return pkcs11_ecdsa_method; ++} ++ ++static int ++pkcs11_ecdsa_wrap(struct pkcs11_provider *provider, CK_ULONG slotidx, ++ CK_ATTRIBUTE *keyid_attrib, CK_ATTRIBUTE *label_attrib, EC_KEY *ecdsa) ++{ ++ struct pkcs11_key *k11; ++ k11 = xcalloc(1, sizeof(*k11)); ++ k11->key_type = CKK_EC; ++ k11->provider = provider; ++ provider->refcount++; /* provider referenced by ECDSA key */ ++ k11->slotidx = slotidx; ++ /* identify key object on smartcard */ ++ k11->keyid_len = keyid_attrib->ulValueLen; ++ if (k11->keyid_len > 0) { ++ k11->keyid = xmalloc(k11->keyid_len); ++ memcpy(k11->keyid, keyid_attrib->pValue, k11->keyid_len); ++ } ++ if (label_attrib->ulValueLen > 0 ) { ++ k11->label = xmalloc(label_attrib->ulValueLen+1); ++ memcpy(k11->label, label_attrib->pValue, label_attrib->ulValueLen); ++ k11->label[label_attrib->ulValueLen] = 0; ++ } ++ #if (OPENSSL_VERSION_NUMBER >= 0x00010100L) ++ EC_KEY_set_method(ecdsa, get_pkcs11_ecdsa_method()); ++ EC_KEY_set_ex_data(ecdsa, pkcs11_key_idx, k11); ++ #else ++ ECDSA_set_method(ecdsa, get_pkcs11_ecdsa_method()); ++ ECDSA_set_ex_data(ecdsa, pkcs11_key_idx, k11); ++ #endif ++ return (0); ++} ++#endif /* ENABLE_PKCS11_ECDSA */ ++ ++int pkcs11_del_key(struct sshkey *key) { ++#ifdef ENABLE_PKCS11_ECDSA ++ if(key->type == KEY_ECDSA) { ++ struct pkcs11_key *k11 = (struct pkcs11_key *) ++ #if (OPENSSL_VERSION_NUMBER >= 0x00010100L) ++ EC_KEY_get_ex_data(key->ecdsa, pkcs11_key_idx); ++ #else ++ ECDSA_get_ex_data(key->ecdsa, pkcs11_key_idx); ++ #endif ++ if (k11 == NULL) { ++ error("EC_KEY_get_ex_data failed for ecdsa %p", key->ecdsa); ++ } else { ++ if (k11->provider) ++ pkcs11_provider_unref(k11->provider); ++ free(k11->keyid); ++ free(k11); ++ } ++ } ++#endif /* ENABLE_PKCS11_ECDSA */ ++ sshkey_free(key); ++ return (0); ++} ++ + /* remove trailing spaces */ + static void + rmspace(u_char *buf, size_t len) +@@ -482,11 +646,13 @@ static int + pkcs11_fetch_keys(struct pkcs11_provider *p, CK_ULONG slotidx, + struct sshkey ***keysp, int *nkeys, struct pkcs11_uri *uri) + { +- size_t filter_size = 1; ++ size_t filter_size = 2; ++ CK_KEY_TYPE pubkey_type = CKK_RSA; + CK_OBJECT_CLASS pubkey_class = CKO_PUBLIC_KEY; + CK_OBJECT_CLASS cert_class = CKO_CERTIFICATE; + CK_ATTRIBUTE pubkey_filter[] = { + { CKA_CLASS, NULL, sizeof(pubkey_class) }, ++ { CKA_KEY_TYPE, NULL, sizeof(pubkey_type) }, + { CKA_ID, NULL, 0 }, + { CKA_LABEL, NULL, 0 } + }; +@@ -507,29 +673,60 @@ pkcs11_fetch_keys(struct pkcs11_provider + { CKA_SUBJECT, NULL, 0 }, + { CKA_VALUE, NULL, 0 } + }; ++#ifdef ENABLE_PKCS11_ECDSA ++ CK_KEY_TYPE ecdsa_type = CKK_EC; ++ CK_ATTRIBUTE ecdsa_filter[] = { ++ { CKA_CLASS, NULL, sizeof(pubkey_class) }, ++ { CKA_KEY_TYPE, NULL, sizeof(ecdsa_type) }, ++ { CKA_ID, NULL, 0 }, ++ { CKA_LABEL, NULL, 0 } ++ }; ++ CK_ATTRIBUTE ecdsa_attribs[] = { ++ { CKA_ID, NULL, 0 }, ++ { CKA_LABEL, NULL, 0 }, ++ { CKA_EC_PARAMS, NULL, 0 }, ++ { CKA_EC_POINT, NULL, 0 } ++ }; ++ ecdsa_filter[0].pValue = &pubkey_class; ++ ecdsa_filter[1].pValue = &ecdsa_type; ++#endif /* ENABLE_PKCS11_ECDSA */ + pubkey_filter[0].pValue = &pubkey_class; ++ pubkey_filter[1].pValue = &pubkey_type; + cert_filter[0].pValue = &cert_class; + + if (uri->id != NULL) { + pubkey_filter[filter_size].pValue = uri->id; + pubkey_filter[filter_size].ulValueLen = uri->id_len; +- cert_filter[filter_size].pValue = uri->id; +- cert_filter[filter_size].ulValueLen = uri->id_len; ++#ifdef ENABLE_PKCS11_ECDSA ++ ecdsa_filter[filter_size].pValue = uri->id; ++ ecdsa_filter[filter_size].ulValueLen = uri->id_len; ++#endif /* ENABLE_PKCS11_ECDSA */ ++ cert_filter[filter_size-1].pValue = uri->id; ++ cert_filter[filter_size-1].ulValueLen = uri->id_len; + filter_size++; + } + if (uri->object != NULL) { + pubkey_filter[filter_size].pValue = uri->object; + pubkey_filter[filter_size].ulValueLen = strlen(uri->object); + pubkey_filter[filter_size].type = CKA_LABEL; +- cert_filter[filter_size].pValue = uri->object; +- cert_filter[filter_size].ulValueLen = strlen(uri->object); +- cert_filter[filter_size].type = CKA_LABEL; ++#ifdef ENABLE_PKCS11_ECDSA ++ ecdsa_filter[filter_size].pValue = uri->object; ++ ecdsa_filter[filter_size].ulValueLen = strlen(uri->object); ++ ecdsa_filter[filter_size].type = CKA_LABEL; ++#endif /* ENABLE_PKCS11_ECDSA */ ++ cert_filter[filter_size-1].pValue = uri->object; ++ cert_filter[filter_size-1].ulValueLen = strlen(uri->object); ++ cert_filter[filter_size-1].type = CKA_LABEL; + filter_size++; + } + + if (pkcs11_fetch_keys_filter(p, slotidx, pubkey_filter, filter_size, + pubkey_attribs, keysp, nkeys) < 0 || +- pkcs11_fetch_keys_filter(p, slotidx, cert_filter, filter_size, ++#ifdef ENABLE_PKCS11_ECDSA ++ pkcs11_fetch_keys_filter(p, slotidx, ecdsa_filter, filter_size, ++ ecdsa_attribs, keysp, nkeys) < 0|| ++#endif /* ENABLE_PKCS11_ECDSA */ ++ pkcs11_fetch_keys_filter(p, slotidx, cert_filter, filter_size - 1, + cert_attribs, keysp, nkeys) < 0) + return (-1); + return (0); +@@ -553,6 +746,11 @@ pkcs11_fetch_keys_filter(struct pkcs11_p + { + struct sshkey *key; + RSA *rsa; ++#ifdef ENABLE_PKCS11_ECDSA ++ EC_KEY *ecdsa; ++#else ++ void *ecdsa; ++#endif /* ENABLE_PKCS11_ECDSA */ + X509 *x509; + EVP_PKEY *evp = NULL; + int i; +@@ -608,6 +806,9 @@ pkcs11_fetch_keys_filter(struct pkcs11_p + * or ID, label, subject and value for certificates. + */ + rsa = NULL; ++#ifdef ENABLE_PKCS11_ECDSA ++ ecdsa = NULL; ++#endif /* ENABLE_PKCS11_ECDSA */ + if ((rv = f->C_GetAttributeValue(session, obj, attribs, nattribs)) + != CKR_OK) { + error("C_GetAttributeValue failed: %lu", rv); +@@ -620,6 +821,45 @@ pkcs11_fetch_keys_filter(struct pkcs11_p + rsa->e = BN_bin2bn(attribs[3].pValue, + attribs[3].ulValueLen, NULL); + } ++#ifdef ENABLE_PKCS11_ECDSA ++ } else if (attribs[2].type == CKA_EC_PARAMS ) { ++ if ((ecdsa = EC_KEY_new()) == NULL) { ++ error("EC_KEY_new failed"); ++ } else { ++ const unsigned char *ptr1 = attribs[2].pValue; ++ const unsigned char *ptr2 = attribs[3].pValue; ++ CK_ULONG len1 = attribs[2].ulValueLen; ++ CK_ULONG len2 = attribs[3].ulValueLen; ++ ASN1_OCTET_STRING *point = NULL; ++ ++ /* ++ * CKA_EC_PARAMS contains the curve parameters of the key ++ * either referenced as an OID or directly with all values. ++ * CKA_EC_POINT contains the point (public key) on the curve. ++ * The point is should be returned inside a DER-encoded ++ * ASN.1 OCTET STRING value (but some implementation). ++ */ ++ if ((point = d2i_ASN1_OCTET_STRING(NULL, &ptr2, len2))) { ++ /* Pointing to OCTET STRING content */ ++ ptr2 = point->data; ++ len2 = point->length; ++ } else { ++ /* No OCTET STRING */ ++ ptr2 = attribs[3].pValue; ++ } ++ ++ if((d2i_ECParameters(&ecdsa, &ptr1, len1) == NULL) || ++ (o2i_ECPublicKey(&ecdsa, &ptr2, len2) == NULL)) { ++ EC_KEY_free(ecdsa); ++ ecdsa = NULL; ++ error("EC public key parsing failed"); ++ } ++ ++ if(point) { ++ ASN1_OCTET_STRING_free(point); ++ } ++ } ++#endif /* ENABLE_PKCS11_ECDSA */ + } else { + cp = attribs[3].pValue; + if ((x509 = X509_new()) == NULL) { +@@ -639,13 +879,28 @@ pkcs11_fetch_keys_filter(struct pkcs11_p + X509_free(x509); + EVP_PKEY_free(evp); + } +- if (rsa && rsa->n && rsa->e && +- pkcs11_rsa_wrap(p, slotidx, &attribs[0], &attribs[1], rsa) == 0) { +- if ((key = sshkey_new(KEY_UNSPEC)) == NULL) +- fatal("sshkey_new failed"); +- key->rsa = rsa; +- key->type = KEY_RSA; +- key->flags |= SSHKEY_FLAG_EXT; ++ key = NULL; ++ if (rsa || ecdsa) { ++ if (rsa && rsa->n && rsa->e && ++ pkcs11_rsa_wrap(p, slotidx, &attribs[0], &attribs[1], rsa) == 0) { ++ if ((key = sshkey_new(KEY_UNSPEC)) == NULL) ++ fatal("sshkey_new failed"); ++ key->rsa = rsa; ++ key->type = KEY_RSA; ++ key->flags |= SSHKEY_FLAG_EXT; ++#ifdef ENABLE_PKCS11_ECDSA ++ } else if(ecdsa && pkcs11_ecdsa_wrap(p, slotidx, &attribs[0], &attribs[1], ecdsa) == 0) { ++ if ((key = sshkey_new(KEY_UNSPEC)) == NULL) ++ fatal("sshkey_new failed"); ++ key->ecdsa = ecdsa; ++ key->ecdsa_nid = sshkey_ecdsa_key_to_nid(ecdsa); ++ key->type = KEY_ECDSA; ++ key->flags |= SSHKEY_FLAG_EXT; ++#endif /* ENABLE_PKCS11_ECDSA */ ++ } ++ } ++ ++ if(key) { + if (pkcs11_key_included(keysp, nkeys, key)) { + sshkey_free(key); + } else { +@@ -658,6 +913,10 @@ pkcs11_fetch_keys_filter(struct pkcs11_p + } + } else if (rsa) { + RSA_free(rsa); ++#ifdef ENABLE_PKCS11_ECDSA ++ } else if (ecdsa) { ++ EC_KEY_free(ecdsa); ++#endif /* ENABLE_PKCS11_ECDSA */ + } + for (i = 0; i < nattribs; i++) + free(attribs[i].pValue); +diff -up openssh-7.6p1/ssh-pkcs11-helper.c.pkcs11-ecdsa openssh-7.6p1/ssh-pkcs11-helper.c +--- openssh-7.6p1/ssh-pkcs11-helper.c.pkcs11-ecdsa 2017-10-02 21:34:26.000000000 +0200 ++++ openssh-7.6p1/ssh-pkcs11-helper.c 2018-02-16 13:25:59.428469265 +0100 +@@ -24,6 +24,17 @@ + + #include "openbsd-compat/sys-queue.h" + ++#include ++#ifdef OPENSSL_HAS_ECC ++#include ++#if ((defined(LIBRESSL_VERSION_NUMBER) && \ ++ (LIBRESSL_VERSION_NUMBER >= 0x20010002L))) || \ ++ (defined(ECDSA_F_ECDSA_METHOD_NEW)) || \ ++ (OPENSSL_VERSION_NUMBER >= 0x00010100L) ++#define ENABLE_PKCS11_ECDSA 1 ++#endif ++#endif ++ + #include + #include + #include +@@ -80,7 +90,7 @@ del_keys_by_name(char *name) + if (!strcmp(ki->providername, name)) { + TAILQ_REMOVE(&pkcs11_keylist, ki, next); + free(ki->providername); +- sshkey_free(ki->key); ++ pkcs11_del_key(ki->key); + free(ki); + } + } +@@ -164,6 +174,20 @@ process_del(void) + sshbuf_free(msg); + } + ++#ifdef ENABLE_PKCS11_ECDSA ++static u_int EC_KEY_order_size(EC_KEY *key) ++{ ++ const EC_GROUP *group = EC_KEY_get0_group(key); ++ BIGNUM *order = BN_new(); ++ u_int nbytes = 0; ++ if ((group != NULL) && (order != NULL) && EC_GROUP_get_order(group, order, NULL)) { ++ nbytes = BN_num_bytes(order); ++ } ++ BN_clear_free(order); ++ return nbytes; ++} ++#endif /* ENABLE_PKCS11_ECDSA */ ++ + static void + process_sign(void) + { +@@ -180,14 +204,38 @@ process_sign(void) + else { + if ((found = lookup_key(key)) != NULL) { + #ifdef WITH_OPENSSL +- int ret; +- +- slen = RSA_size(key->rsa); +- signature = xmalloc(slen); +- if ((ret = RSA_private_encrypt(dlen, data, signature, +- found->rsa, RSA_PKCS1_PADDING)) != -1) { +- slen = ret; +- ok = 0; ++ if(found->type == KEY_RSA) { ++ int ret; ++ slen = RSA_size(key->rsa); ++ signature = xmalloc(slen); ++ if ((ret = RSA_private_encrypt(dlen, data, signature, ++ found->rsa, RSA_PKCS1_PADDING)) != -1) { ++ slen = ret; ++ ok = 0; ++ } ++#ifdef ENABLE_PKCS11_ECDSA ++ } else if(found->type == KEY_ECDSA) { ++ ECDSA_SIG *sig; ++ const BIGNUM *r = NULL, *s = NULL; ++ if ((sig = ECDSA_do_sign(data, dlen, found->ecdsa)) != NULL) { ++ /* PKCS11 2.3.1 recommends both r and s to have the order size for ++ backward compatiblity */ ++ ECDSA_SIG_get0(sig, &r, &s); ++ u_int o_len = EC_KEY_order_size(found->ecdsa); ++ u_int r_len = BN_num_bytes(r); ++ u_int s_len = BN_num_bytes(s); ++ if (o_len > 0 && r_len <= o_len && s_len <= o_len) { ++ signature = xcalloc(2, o_len); ++ BN_bn2bin(r, signature + o_len - r_len); ++ BN_bn2bin(s, signature + (2 * o_len) - s_len); ++ slen = 2 * o_len; ++ ok = 0; ++ } ++ ECDSA_SIG_free(sig); ++ } ++#endif /* ENABLE_PKCS11_ECDSA */ ++ } else { ++ /* Unsupported type */ + } + #endif /* WITH_OPENSSL */ + } +diff -up openssh-7.6p1/ssh-pkcs11.h.pkcs11-ecdsa openssh-7.6p1/ssh-pkcs11.h +--- openssh-7.6p1/ssh-pkcs11.h.pkcs11-ecdsa 2018-02-16 13:25:59.429469272 +0100 ++++ openssh-7.6p1/ssh-pkcs11.h 2018-02-16 13:45:29.623800048 +0100 +@@ -20,6 +20,7 @@ + int pkcs11_init(int); + void pkcs11_terminate(void); + int pkcs11_add_provider(char *, char *, struct sshkey ***); ++int pkcs11_del_key(struct sshkey *); + int pkcs11_add_provider_by_uri(struct pkcs11_uri *, char *, struct sshkey ***); + int pkcs11_del_provider(char *); + int pkcs11_uri_write(const struct sshkey *, FILE *); + + + +diff -up openssh-7.6p1/ssh-pkcs11.c.old openssh-7.6p1/ssh-pkcs11.c +--- openssh-7.6p1/ssh-pkcs11.c.old 2018-02-16 16:43:08.861520255 +0100 ++++ openssh-7.6p1/ssh-pkcs11.c 2018-02-16 16:56:35.312601451 +0100 +@@ -917,13 +917,28 @@ pkcs11_fetch_keys_filter(struct pkcs11_p + } else if (d2i_X509(&x509, &cp, attribs[3].ulValueLen) + == NULL) { + error("d2i_X509 failed"); +- } else if ((evp = X509_get_pubkey(x509)) == NULL || +- evp->type != EVP_PKEY_RSA || +- evp->pkey.rsa == NULL) { +- debug("X509_get_pubkey failed or no rsa"); +- } else if ((rsa = RSAPublicKey_dup(evp->pkey.rsa)) +- == NULL) { +- error("RSAPublicKey_dup"); ++ } else if ((evp = X509_get_pubkey(x509)) == NULL) { ++ debug("X509_get_pubkey failed"); ++ } else { ++ switch (evp->type) { ++ case EVP_PKEY_RSA: ++ if (evp->pkey.rsa == NULL) ++ debug("Missing RSA key"); ++ else if ((rsa = RSAPublicKey_dup( ++ evp->pkey.rsa)) == NULL) ++ error("RSAPublicKey_dup failed"); ++ break; ++ case EVP_PKEY_EC: ++ if (evp->pkey.ecdsa == NULL) ++ debug("Missing ECDSA key"); ++ else if ((ecdsa = EC_KEY_dup( ++ evp->pkey.ecdsa)) == NULL) ++ error("EC_KEY_dup failed"); ++ break; ++ default: ++ debug("not a RSA or ECDSA key"); ++ break; ++ } + } + X509_free(x509); + EVP_PKEY_free(evp); diff --git a/openssh-7.6p1-pkcs11-uri.patch b/openssh-7.6p1-pkcs11-uri.patch new file mode 100644 index 0000000..6fd463e --- /dev/null +++ b/openssh-7.6p1-pkcs11-uri.patch @@ -0,0 +1,4771 @@ +diff --git a/Makefile.in b/Makefile.in +index ac959c1f..f8ed1781 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -93,7 +93,7 @@ LIBSSH_OBJS=${LIBOPENSSH_OBJS} \ + monitor_fdpass.o rijndael.o ssh-dss.o ssh-ecdsa.o ssh-rsa.o dh.o \ + kexgssc.o \ + msg.o progressmeter.o dns.o entropy.o gss-genr.o umac.o umac128.o \ +- ssh-pkcs11.o smult_curve25519_ref.o \ ++ ssh-pkcs11.o ssh-pkcs11-uri.o smult_curve25519_ref.o \ + poly1305.o chacha.o cipher-chachapoly.o \ + ssh-ed25519.o digest-openssl.o digest-libc.o hmac.o \ + sc25519.o ge25519.o fe25519.o ed25519.o verify.o hash.o \ +@@ -248,6 +248,8 @@ clean: regressclean + rm -f regress/unittests/match/test_match$(EXEEXT) + rm -f regress/unittests/utf8/*.o + rm -f regress/unittests/utf8/test_utf8$(EXEEXT) ++ rm -f regress/unittests/pkcs11/*.o ++ rm -f regress/unittests/pkcs11/test_pkcs11$(EXEEXT) + rm -f regress/misc/kexfuzz/*.o + rm -f regress/misc/kexfuzz/kexfuzz$(EXEEXT) + (cd openbsd-compat && $(MAKE) clean) +@@ -276,6 +278,8 @@ distclean: regressclean + rm -f regress/unittests/match/test_match + rm -f regress/unittests/utf8/*.o + rm -f regress/unittests/utf8/test_utf8 ++ rm -f regress/unittests/pkcs11/*.o ++ rm -f regress/unittests/pkcs11/test_pkcs11 + rm -f regress/misc/kexfuzz/*.o + rm -f regress/misc/kexfuzz + (cd openbsd-compat && $(MAKE) distclean) +@@ -437,6 +441,7 @@ regress-prep: + $(MKDIR_P) `pwd`/regress/unittests/kex + $(MKDIR_P) `pwd`/regress/unittests/match + $(MKDIR_P) `pwd`/regress/unittests/utf8 ++ $(MKDIR_P) `pwd`/regress/unittests/pkcs11 + $(MKDIR_P) `pwd`/regress/misc/kexfuzz + [ -f `pwd`/regress/Makefile ] || \ + ln -s `cd $(srcdir) && pwd`/regress/Makefile `pwd`/regress/Makefile +@@ -455,6 +460,11 @@ regress/netcat$(EXEEXT): $(srcdir)/regress/netcat.c $(REGRESSLIBS) + $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(srcdir)/regress/netcat.c \ + $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) + ++regress/soft-pkcs11.so: $(srcdir)/regress/soft-pkcs11.c $(REGRESSLIBS) ++ $(CC) $(CFLAGS) $(CPPFLAGS) -fpic -c $(srcdir)/regress/soft-pkcs11.c \ ++ -o $(srcdir)/regress/soft-pkcs11.o ++ $(CC) -shared -o $@ $(srcdir)/regress/soft-pkcs11.o ++ + regress/check-perm$(EXEEXT): $(srcdir)/regress/check-perm.c $(REGRESSLIBS) + $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(srcdir)/regress/check-perm.c \ + $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) +@@ -556,6 +566,16 @@ regress/unittests/utf8/test_utf8$(EXEEXT): \ + regress/unittests/test_helper/libtest_helper.a \ + -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) + ++UNITTESTS_TEST_PKCS11_OBJS=\ ++ regress/unittests/pkcs11/tests.o ++ ++regress/unittests/pkcs11/test_pkcs11$(EXEEXT): \ ++ ${UNITTESTS_TEST_PKCS11_OBJS} \ ++ regress/unittests/test_helper/libtest_helper.a libssh.a ++ $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_PKCS11_OBJS) \ ++ regress/unittests/test_helper/libtest_helper.a \ ++ -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) ++ + MISC_KEX_FUZZ_OBJS=\ + regress/misc/kexfuzz/kexfuzz.o + +@@ -566,6 +586,7 @@ regress/misc/kexfuzz/kexfuzz$(EXEEXT): ${MISC_KEX_FUZZ_OBJS} libssh.a + regress-binaries: regress/modpipe$(EXEEXT) \ + regress/setuid-allowed$(EXEEXT) \ + regress/netcat$(EXEEXT) \ ++ regress/soft-pkcs11.so \ + regress/check-perm$(EXEEXT) \ + regress/mkdtemp$(EXEEXT) \ + regress/unittests/sshbuf/test_sshbuf$(EXEEXT) \ +@@ -575,6 +596,7 @@ regress-binaries: regress/modpipe$(EXEEXT) \ + regress/unittests/kex/test_kex$(EXEEXT) \ + regress/unittests/match/test_match$(EXEEXT) \ + regress/unittests/utf8/test_utf8$(EXEEXT) \ ++ regress/unittests/pkcs11/test_pkcs11$(EXEEXT) \ + regress/misc/kexfuzz/kexfuzz$(EXEEXT) + + tests interop-tests t-exec unit: regress-prep regress-binaries $(TARGETS) +diff --git a/authfd.c b/authfd.c +index 1eff7ba9..35153f47 100644 +--- a/authfd.c ++++ b/authfd.c +@@ -312,6 +312,8 @@ ssh_free_identitylist(struct ssh_identitylist *idl) + if (idl->comments != NULL) + free(idl->comments[i]); + } ++ free(idl->keys); ++ free(idl->comments); + free(idl); + } + +diff --git a/configure.ac b/configure.ac +index d7bcaf01..171a8597 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1895,12 +1895,14 @@ AC_LINK_IFELSE( + [AC_DEFINE([HAVE_ISBLANK], [1], [Define if you have isblank(3C).]) + ]) + ++SCARD_MSG="yes" + disable_pkcs11= + AC_ARG_ENABLE([pkcs11], + [ --disable-pkcs11 disable PKCS#11 support code [no]], + [ + if test "x$enableval" = "xno" ; then + disable_pkcs11=1 ++ SCARD_MSG="no" + fi + ] + ) +@@ -1916,6 +1918,40 @@ if test "x$openssl" = "xyes" && test "x$disable_pkcs11" = "x"; then + ) + fi + ++# Check whether we have a p11-kit, we got default provider on command line ++DEFAULT_PKCS11_PROVIDER_MSG="no" ++AC_ARG_WITH([default-pkcs11-provider], ++ [ --with-default-pkcs11-provider[[=PATH]] Use default pkcs11 provider (p11-kit detected by default)], ++ [ if test "x$withval" != "xno" && test "x$disable_pkcs11" = "x"; then ++ if test "x$withval" = "xyes" ; then ++ AC_PATH_TOOL([PKGCONFIG], [pkg-config], [no]) ++ if test "x$PKGCONFIG" != "xno"; then ++ AC_MSG_CHECKING([if $PKGCONFIG knows about p11-kit]) ++ if "$PKGCONFIG" "p11-kit-1"; then ++ AC_MSG_RESULT([yes]) ++ use_pkgconfig_for_p11kit=yes ++ else ++ AC_MSG_RESULT([no]) ++ fi ++ fi ++ else ++ PKCS11_PATH="${withval}" ++ fi ++ if test "x$use_pkgconfig_for_p11kit" = "xyes"; then ++ PKCS11_PATH=`$PKGCONFIG --variable=proxy_module p11-kit-1` ++ fi ++ AC_CHECK_FILE("$PKCS11_PATH", ++ [ AC_DEFINE_UNQUOTED([PKCS11_DEFAULT_PROVIDER], ["$PKCS11_PATH"], [Path to default PKCS#11 provider (p11-kit proxy)]) ++ DEFAULT_PKCS11_PROVIDER_MSG="$PKCS11_PATH" ++ ], ++ [ AC_MSG_ERROR([Requested PKCS11 provided not found]) ] ++ ) ++ else ++ AC_MSG_WARN([Needs PKCS11 support to enable default pkcs11 provider]) ++ fi ] ++) ++ ++ + # IRIX has a const char return value for gai_strerror() + AC_CHECK_FUNCS([gai_strerror], [ + AC_DEFINE([HAVE_GAI_STRERROR]) +@@ -5226,6 +5262,7 @@ echo " Translate v4 in v6 hack: $IPV4_IN6_HACK_MSG" + echo " Random number source: $RAND_MSG" + echo " Privsep sandbox style: $SANDBOX_STYLE" + echo " Vendor patch level: $SSH_VENDOR_PATCHLEVEL" ++echo " Default PKCS#11 provider: $DEFAULT_PKCS11_PROVIDER_MSG" + + echo "" + +diff --git a/regress/Makefile b/regress/Makefile +index d15898ad..9c15afa4 100644 +--- a/regress/Makefile ++++ b/regress/Makefile +@@ -108,9 +110,11 @@ CLEANFILES= *.core actual agent-key.* authorized_keys_${USERNAME} \ + known_hosts known_hosts-cert known_hosts.* krl-* ls.copy \ + modpipe netcat no_identity_config \ + pidfile putty.rsa2 ready regress.log \ +- remote_pid revoked-* rsa rsa-agent rsa-agent.pub rsa.pub \ ++ remote_pid revoked-* rsa rsa-agent rsa-agent.pub \ ++ rsa-agent-cert.pub rsa.pub \ + rsa1 rsa1-agent rsa1-agent.pub rsa1.pub rsa_ssh2_cr.prv \ +- rsa_ssh2_crnl.prv scp-ssh-wrapper.exe \ ++ soft-pkcs11.so soft-pkcs11.o pkcs11*.crt pkcs11*.key \ ++ pkcs11.info rsa_ssh2_crnl.prv scp-ssh-wrapper.exe \ + scp-ssh-wrapper.scp setuid-allowed sftp-server.log \ + sftp-server.sh sftp.log ssh-log-wrapper.sh ssh.log \ + ssh_config ssh_config.* ssh_proxy ssh_proxy_bak \ +@@ -225,6 +229,7 @@ unit: + V="" ; \ + test "x${USE_VALGRIND}" = "x" || \ + V=${.CURDIR}/valgrind-unit.sh ; \ ++ $$V ${.OBJDIR}/unittests/pkcs11/test_pkcs11 ; \ + $$V ${.OBJDIR}/unittests/sshbuf/test_sshbuf ; \ + $$V ${.OBJDIR}/unittests/sshkey/test_sshkey \ + -d ${.CURDIR}/unittests/sshkey/testdata ; \ +diff --git a/regress/agent-pkcs11.sh b/regress/agent-pkcs11.sh +index db3018b8..4991d0bc 100644 +--- a/regress/agent-pkcs11.sh ++++ b/regress/agent-pkcs11.sh +@@ -4,10 +4,17 @@ + tid="pkcs11 agent test" + + TEST_SSH_PIN="" +-TEST_SSH_PKCS11=/usr/local/lib/soft-pkcs11.so.0.0 ++TEST_SSH_PKCS11=$OBJ/soft-pkcs11.so + + test -f "$TEST_SSH_PKCS11" || fatal "$TEST_SSH_PKCS11 does not exist" + ++# requires ssh-agent built with correct path to ssh-pkcs11-helper ++# otherwise it fails to start the helper ++strings ${TEST_SSH_SSHAGENT} | grep "$TEST_SSH_SSHPKCS11HELPER" ++if [ $? -ne 0 ]; then ++ fatal "Needs to reconfigure with --libexecdir=\`pwd\` or so" ++fi ++ + # setup environment for soft-pkcs11 token + SOFTPKCS11RC=$OBJ/pkcs11.info + export SOFTPKCS11RC +@@ -23,7 +30,7 @@ notty() { + } + + trace "start agent" +-eval `${SSHAGENT} -s` > /dev/null ++eval `${SSHAGENT} -s -P "${OBJ}/*"` > /dev/null + r=$? + if [ $r -ne 0 ]; then + fail "could not start ssh-agent: exit code $r" +@@ -60,7 +67,7 @@ else + fi + + trace "remove pkcs11 keys" +- echo ${TEST_SSH_PIN} | notty ${SSHADD} -e ${TEST_SSH_PKCS11} > /dev/null 2>&1 ++ ${SSHADD} -e ${TEST_SSH_PKCS11} > /dev/null 2>&1 + r=$? + if [ $r -ne 0 ]; then + fail "ssh-add -e failed: exit code $r" +diff --git a/regress/locl.h b/regress/locl.h +new file mode 100644 +index 00000000..afefe27d +--- /dev/null ++++ b/regress/locl.h +@@ -0,0 +1,79 @@ ++/* ++ * Copyright (c) 2004, Stockholms universitet ++ * (Stockholm University, Stockholm Sweden) ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * 3. Neither the name of the university nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE ++ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ++ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ++ * POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++/* $Id: locl.h,v 1.5 2005/08/28 15:30:31 lha Exp $ */ ++ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++#include "../libcrypto-compat.h" ++ ++#include ++#include ++#include ++#include ++#define _GNU_SOURCE ++#include ++#include ++#include ++#include ++ ++#include "../pkcs11.h" ++ ++#define OPENSSL_ASN1_MALLOC_ENCODE(T, B, BL, S, R) \ ++{ \ ++ unsigned char *p; \ ++ (BL) = i2d_##T((S), NULL); \ ++ if ((BL) <= 0) { \ ++ (R) = EINVAL; \ ++ } else { \ ++ (B) = malloc((BL)); \ ++ if ((B) == NULL) { \ ++ (R) = ENOMEM; \ ++ } else { \ ++ p = (B); \ ++ (R) = 0; \ ++ (BL) = i2d_##T((S), &p); \ ++ if ((BL) <= 0) { \ ++ free((B)); \ ++ (R) = EINVAL; \ ++ } \ ++ } \ ++ } \ ++} +diff --git a/regress/pkcs11.sh b/regress/pkcs11.sh +new file mode 100644 +index 00000000..cf98e379 +--- /dev/null ++++ b/regress/pkcs11.sh +@@ -0,0 +1,300 @@ ++# ++# Copyright (c) 2017 Red Hat ++# ++# Authors: Jakub Jelen ++# ++# Permission to use, copy, modify, and distribute this software for any ++# purpose with or without fee is hereby granted, provided that the above ++# copyright notice and this permission notice appear in all copies. ++# ++# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ++# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ ++tid="pkcs11 tests with soft token" ++ ++TEST_SSH_PIN="" ++TEST_SSH_PKCS11=$OBJ/soft-pkcs11.so ++ ++test -f "$TEST_SSH_PKCS11" || fatal "$TEST_SSH_PKCS11 does not exist" ++ ++# requires ssh-agent built with correct path to ssh-pkcs11-helper ++# otherwise it fails to start the helper ++strings ${TEST_SSH_SSHAGENT} | grep "$TEST_SSH_SSHPKCS11HELPER" ++if [ $? -ne 0 ]; then ++ fatal "Needs to reconfigure with --libexecdir=\`pwd\` or so" ++fi ++ ++# setup environment for soft-pkcs11 token ++SOFTPKCS11RC=$OBJ/pkcs11.info ++rm -f $SOFTPKCS11RC ++export SOFTPKCS11RC ++# prevent ssh-agent from calling ssh-askpass ++SSH_ASKPASS=/usr/bin/true ++export SSH_ASKPASS ++unset DISPLAY ++ ++# start command w/o tty, so ssh accepts pin from stdin (from agent-pkcs11.sh) ++notty() { ++ perl -e 'use POSIX; POSIX::setsid(); ++ if (fork) { wait; exit($? >> 8); } else { exec(@ARGV) }' "$@" ++} ++ ++create_key() { ++ ID=$1 ++ LABEL=$2 ++ rm -f $OBJ/pkcs11-${ID}.key $OBJ/pkcs11-${ID}.crt ++ openssl genrsa -out $OBJ/pkcs11-${ID}.key 2048 > /dev/null 2>&1 ++ chmod 600 $OBJ/pkcs11-${ID}.key ++ openssl req -key $OBJ/pkcs11-${ID}.key -new -x509 \ ++ -out $OBJ/pkcs11-${ID}.crt -text -subj '/CN=pkcs11 test' >/dev/null ++ printf "${ID}\t${LABEL}\t$OBJ/pkcs11-${ID}.crt\t$OBJ/pkcs11-${ID}.key\n" \ ++ >> $SOFTPKCS11RC ++} ++ ++trace "Create a key pairs on soft token" ++ID1="02" ++ID2="04" ++create_key "$ID1" "SSH RSA Key" ++create_key "$ID2" "SSH RSA Key 2" ++ ++trace "List the keys in the ssh-keygen with PKCS#11 URIs" ++${SSHKEYGEN} -D ${TEST_SSH_PKCS11} > $OBJ/token_keys ++if [ $? -ne 0 ]; then ++ fail "keygen fails to enumerate keys on PKCS#11 token" ++fi ++grep "pkcs11:" $OBJ/token_keys > /dev/null ++if [ $? -ne 0 ]; then ++ fail "The keys from ssh-keygen do not contain PKCS#11 URI as a comment" ++fi ++tail -n 1 $OBJ/token_keys > $OBJ/authorized_keys_$USER ++ ++ ++trace "Simple connect with ssh (without PKCS#11 URI)" ++echo ${TEST_SSH_PIN} | notty ${SSH} -I ${TEST_SSH_PKCS11} \ ++ -F $OBJ/ssh_proxy somehost exit 5 ++r=$? ++if [ $r -ne 5 ]; then ++ fail "ssh connect with pkcs11 failed (exit code $r)" ++fi ++ ++ ++trace "Connect with PKCS#11 URI" ++trace " (second key should succeed)" ++echo ${TEST_SSH_PIN} | notty ${SSH} -F $OBJ/ssh_proxy \ ++ -i "pkcs11:id=${ID2}?module-path=${TEST_SSH_PKCS11}" somehost exit 5 ++r=$? ++if [ $r -ne 5 ]; then ++ fail "ssh connect with PKCS#11 URI failed (exit code $r)" ++fi ++ ++trace " (first key should fail)" ++echo ${TEST_SSH_PIN} | notty ${SSH} -F $OBJ/ssh_proxy \ ++ -i "pkcs11:id=${ID1}?module-path=${TEST_SSH_PKCS11}" somehost exit 5 ++r=$? ++if [ $r -eq 5 ]; then ++ fail "ssh connect with PKCS#11 URI succeeded (should fail)" ++fi ++ ++trace "Connect with various filtering options in PKCS#11 URI" ++trace " (by object label, second key should succeed)" ++echo ${TEST_SSH_PIN} | notty ${SSH} -F $OBJ/ssh_proxy \ ++ -i "pkcs11:object=SSH%20RSA%20Key%202?module-path=${TEST_SSH_PKCS11}" somehost exit 5 ++r=$? ++if [ $r -ne 5 ]; then ++ fail "ssh connect with PKCS#11 URI failed (exit code $r)" ++fi ++ ++trace " (by object label, first key should fail)" ++echo ${TEST_SSH_PIN} | notty ${SSH} -F $OBJ/ssh_proxy \ ++ -i "pkcs11:object=SSH%20RSA%20Key?module-path=${TEST_SSH_PKCS11}" somehost exit 5 ++r=$? ++if [ $r -eq 5 ]; then ++ fail "ssh connect with PKCS#11 URI succeeded (should fail)" ++fi ++ ++trace " (by token label, second key should succeed)" ++echo ${TEST_SSH_PIN} | notty ${SSH} -F $OBJ/ssh_proxy \ ++ -i "pkcs11:id=${ID2};token=SoftToken%20(token)?module-path=${TEST_SSH_PKCS11}" somehost exit 5 ++r=$? ++if [ $r -ne 5 ]; then ++ fail "ssh connect with PKCS#11 URI failed (exit code $r)" ++fi ++ ++trace " (by wrong token label, should fail)" ++echo ${TEST_SSH_PIN} | notty ${SSH} -F $OBJ/ssh_proxy \ ++ -i "pkcs11:token=SoftToken?module-path=${TEST_SSH_PKCS11}" somehost exit 5 ++r=$? ++if [ $r -eq 5 ]; then ++ fail "ssh connect with PKCS#11 URI succeeded (should fail)" ++fi ++ ++ ++ ++ ++trace "Test PKCS#11 URI specification in configuration files" ++echo "IdentityFile \"pkcs11:id=${ID2}?module-path=${TEST_SSH_PKCS11}\"" \ ++ >> $OBJ/ssh_proxy ++trace " (second key should succeed)" ++echo ${TEST_SSH_PIN} | notty ${SSH} -F $OBJ/ssh_proxy somehost exit 5 ++r=$? ++if [ $r -ne 5 ]; then ++ fail "ssh connect with PKCS#11 URI in config failed (exit code $r)" ++fi ++ ++trace " (first key should fail)" ++head -n 1 $OBJ/token_keys > $OBJ/authorized_keys_$USER ++echo ${TEST_SSH_PIN} | notty ${SSH} -F $OBJ/ssh_proxy somehost exit 5 ++r=$? ++if [ $r -eq 5 ]; then ++ fail "ssh connect with PKCS#11 URI in config succeeded (should fail)" ++fi ++sed -i -e "/IdentityFile/d" $OBJ/ssh_proxy ++ ++trace "Test PKCS#11 URI specification in configuration files with bogus spaces" ++echo "IdentityFile \" pkcs11:id=${ID1}?module-path=${TEST_SSH_PKCS11} \"" \ ++ >> $OBJ/ssh_proxy ++echo ${TEST_SSH_PIN} | notty ${SSH} -F $OBJ/ssh_proxy somehost exit 5 ++r=$? ++if [ $r -ne 5 ]; then ++ fail "ssh connect with PKCS#11 URI with bogus spaces in config failed" \ ++ "(exit code $r)" ++fi ++sed -i -e "/IdentityFile/d" $OBJ/ssh_proxy ++ ++ ++trace "Combination of PKCS11Provider and PKCS11URI on commandline" ++trace " (first key should succeed)" ++echo ${TEST_SSH_PIN} | notty ${SSH} -F $OBJ/ssh_proxy \ ++ -i "pkcs11:id=${ID1}" -I ${TEST_SSH_PKCS11} somehost exit 5 ++r=$? ++if [ $r -ne 5 ]; then ++ fail "ssh connect with PKCS#11 URI and provider combination" \ ++ "failed (exit code $r)" ++fi ++ ++trace "Regress: Missing provider in PKCS11URI option" ++${SSH} -F $OBJ/ssh_proxy \ ++ -o IdentityFile=\"pkcs11:token=segfault\" somehost exit 5 ++r=$? ++if [ $r -eq 139 ]; then ++ fail "ssh connect with missing provider_id from configuration option" \ ++ "crashed (exit code $r)" ++fi ++ ++ ++trace "SSH Agent can work with PKCS#11 URI" ++trace "start the agent" ++eval `${SSHAGENT} -s -P "${OBJ}/*"` > /dev/null ++ ++r=$? ++if [ $r -ne 0 ]; then ++ fail "could not start ssh-agent: exit code $r" ++else ++ trace "add whole provider to agent" ++ echo ${TEST_SSH_PIN} | notty ${SSHADD} \ ++ "pkcs11:?module-path=${TEST_SSH_PKCS11}" > /dev/null 2>&1 ++ r=$? ++ if [ $r -ne 0 ]; then ++ fail "ssh-add failed with whole provider: exit code $r" ++ fi ++ ++ trace " pkcs11 list via agent (all keys)" ++ ${SSHADD} -l > /dev/null 2>&1 ++ r=$? ++ if [ $r -ne 0 ]; then ++ fail "ssh-add -l failed with whole provider: exit code $r" ++ fi ++ ++ trace " pkcs11 connect via agent (all keys)" ++ ${SSH} -F $OBJ/ssh_proxy somehost exit 5 ++ r=$? ++ if [ $r -ne 5 ]; then ++ fail "ssh connect failed with whole provider (exit code $r)" ++ fi ++ ++ trace " remove pkcs11 keys (all keys)" ++ ${SSHADD} -d "pkcs11:?module-path=${TEST_SSH_PKCS11}" > /dev/null 2>&1 ++ r=$? ++ if [ $r -ne 0 ]; then ++ fail "ssh-add -d failed with whole provider: exit code $r" ++ fi ++ ++ trace "add only first key to the agent" ++ echo ${TEST_SSH_PIN} | notty ${SSHADD} \ ++ "pkcs11:id=${ID1}?module-path=${TEST_SSH_PKCS11}" > /dev/null 2>&1 ++ r=$? ++ if [ $r -ne 0 ]; then ++ fail "ssh-add failed with first key: exit code $r" ++ fi ++ ++ trace " pkcs11 connect via agent (first key)" ++ ${SSH} -F $OBJ/ssh_proxy somehost exit 5 ++ r=$? ++ if [ $r -ne 5 ]; then ++ fail "ssh connect failed with first key (exit code $r)" ++ fi ++ ++ trace " remove first pkcs11 key" ++ ${SSHADD} -d "pkcs11:id=${ID1}?module-path=${TEST_SSH_PKCS11}" \ ++ > /dev/null 2>&1 ++ r=$? ++ if [ $r -ne 0 ]; then ++ fail "ssh-add -d failed with first key: exit code $r" ++ fi ++ ++ trace "add only second key to the agent" ++ echo ${TEST_SSH_PIN} | notty ${SSHADD} \ ++ "pkcs11:id=${ID2}?module-path=${TEST_SSH_PKCS11}" > /dev/null 2>&1 ++ r=$? ++ if [ $r -ne 0 ]; then ++ fail "ssh-add failed with second key: exit code $r" ++ fi ++ ++ trace " pkcs11 connect via agent (second key should fail)" ++ ${SSH} -F $OBJ/ssh_proxy somehost exit 5 ++ r=$? ++ if [ $r -eq 5 ]; then ++ fail "ssh connect passed without key (should fail)" ++ fi ++ ++ trace "add also the first key to the agent" ++ echo ${TEST_SSH_PIN} | notty ${SSHADD} \ ++ "pkcs11:id=${ID1}?module-path=${TEST_SSH_PKCS11}" > /dev/null 2>&1 ++ r=$? ++ if [ $r -ne 0 ]; then ++ fail "ssh-add failed with first key: exit code $r" ++ fi ++ ++ trace " remove second pkcs11 key" ++ ${SSHADD} -d "pkcs11:id=${ID2}?module-path=${TEST_SSH_PKCS11}" \ ++ > /dev/null 2>&1 ++ r=$? ++ if [ $r -ne 0 ]; then ++ fail "ssh-add -d failed with second key: exit code $r" ++ fi ++ ++ trace " remove already-removed pkcs11 key should fail" ++ ${SSHADD} -d "pkcs11:id=${ID2}?module-path=${TEST_SSH_PKCS11}" \ ++ > /dev/null 2>&1 ++ r=$? ++ if [ $r -eq 0 ]; then ++ fail "ssh-add -d passed with non-existing key (should fail)" ++ fi ++ ++ trace " pkcs11 connect via agent (the first key should be still usable)" ++ ${SSH} -F $OBJ/ssh_proxy somehost exit 5 ++ r=$? ++ if [ $r -ne 5 ]; then ++ fail "ssh connect failed with first key (after removing second): exit code $r" ++ fi ++ ++ trace "kill agent" ++ ${SSHAGENT} -k > /dev/null ++fi ++ ++rm -rf $OBJ/.tokens $OBJ/token_keys +diff --git a/regress/soft-pkcs11.c b/regress/soft-pkcs11.c +new file mode 100644 +index 00000000..8b4981bd +--- /dev/null ++++ b/regress/soft-pkcs11.c +@@ -0,0 +1,2058 @@ ++/* ++ * Copyright (c) 2004-2006, Stockholms universitet ++ * (Stockholm University, Stockholm Sweden) ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * 3. Neither the name of the university nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE ++ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ++ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ++ * POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "locl.h" ++ ++/* RCSID("$Id: main.c,v 1.24 2006/01/11 12:42:53 lha Exp $"); */ ++ ++#define OBJECT_ID_MASK 0xfff ++#define HANDLE_OBJECT_ID(h) ((h) & OBJECT_ID_MASK) ++#define OBJECT_ID(obj) HANDLE_OBJECT_ID((obj)->object_handle) ++ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ #define RSA_PKCS1_SSLeay RSA_PKCS1_OpenSSL ++#endif ++ ++struct st_attr { ++ CK_ATTRIBUTE attribute; ++ int secret; ++}; ++ ++struct st_object { ++ CK_OBJECT_HANDLE object_handle; ++ struct st_attr *attrs; ++ int num_attributes; ++ enum { ++ STO_T_CERTIFICATE, ++ STO_T_PRIVATE_KEY, ++ STO_T_PUBLIC_KEY ++ } type; ++ union { ++ X509 *cert; ++ EVP_PKEY *public_key; ++ struct { ++ const char *file; ++ EVP_PKEY *key; ++ X509 *cert; ++ } private_key; ++ } u; ++}; ++ ++static struct soft_token { ++ CK_VOID_PTR application; ++ CK_NOTIFY notify; ++ struct { ++ struct st_object **objs; ++ int num_objs; ++ } object; ++ struct { ++ int hardware_slot; ++ int app_error_fatal; ++ int login_done; ++ } flags; ++ int open_sessions; ++ struct session_state { ++ CK_SESSION_HANDLE session_handle; ++ ++ struct { ++ CK_ATTRIBUTE *attributes; ++ CK_ULONG num_attributes; ++ int next_object; ++ } find; ++ ++ int encrypt_object; ++ CK_MECHANISM_PTR encrypt_mechanism; ++ int decrypt_object; ++ CK_MECHANISM_PTR decrypt_mechanism; ++ int sign_object; ++ CK_MECHANISM_PTR sign_mechanism; ++ int verify_object; ++ CK_MECHANISM_PTR verify_mechanism; ++ int digest_object; ++ } state[10]; ++#define MAX_NUM_SESSION (sizeof(soft_token.state)/sizeof(soft_token.state[0])) ++ FILE *logfile; ++} soft_token; ++ ++static void ++application_error(const char *fmt, ...) ++{ ++ va_list ap; ++ va_start(ap, fmt); ++ vprintf(fmt, ap); ++ va_end(ap); ++ if (soft_token.flags.app_error_fatal) ++ abort(); ++} ++ ++static void ++st_logf(const char *fmt, ...) ++{ ++ va_list ap; ++ if (soft_token.logfile == NULL) ++ return; ++ va_start(ap, fmt); ++ vfprintf(soft_token.logfile, fmt, ap); ++ va_end(ap); ++ fflush(soft_token.logfile); ++} ++ ++static void ++snprintf_fill(char *str, size_t size, char fillchar, const char *fmt, ...) ++{ ++ int len; ++ va_list ap; ++ len = vsnprintf(str, size, fmt, ap); ++ va_end(ap); ++ if (len < 0 || len > (int) size) ++ return; ++ while(len < (int) size) ++ str[len++] = fillchar; ++} ++ ++#ifndef TEST_APP ++#define printf error_use_st_logf ++#endif ++ ++#define VERIFY_SESSION_HANDLE(s, state) \ ++{ \ ++ CK_RV ret; \ ++ ret = verify_session_handle(s, state); \ ++ if (ret != CKR_OK) { \ ++ /* return CKR_OK */; \ ++ } \ ++} ++ ++static CK_RV ++verify_session_handle(CK_SESSION_HANDLE hSession, ++ struct session_state **state) ++{ ++ size_t i; ++ ++ for (i = 0; i < MAX_NUM_SESSION; i++){ ++ if (soft_token.state[i].session_handle == hSession) ++ break; ++ } ++ if (i == MAX_NUM_SESSION) { ++ application_error("use of invalid handle: 0x%08lx\n", ++ (unsigned long)hSession); ++ return CKR_SESSION_HANDLE_INVALID; ++ } ++ if (state) ++ *state = &soft_token.state[i]; ++ return CKR_OK; ++} ++ ++static CK_RV ++object_handle_to_object(CK_OBJECT_HANDLE handle, ++ struct st_object **object) ++{ ++ int i = HANDLE_OBJECT_ID(handle); ++ ++ *object = NULL; ++ if (i >= soft_token.object.num_objs) ++ return CKR_ARGUMENTS_BAD; ++ if (soft_token.object.objs[i] == NULL) ++ return CKR_ARGUMENTS_BAD; ++ if (soft_token.object.objs[i]->object_handle != handle) ++ return CKR_ARGUMENTS_BAD; ++ *object = soft_token.object.objs[i]; ++ return CKR_OK; ++} ++ ++static int ++attributes_match(const struct st_object *obj, ++ const CK_ATTRIBUTE *attributes, ++ CK_ULONG num_attributes) ++{ ++ CK_ULONG i; ++ int j; ++ st_logf("attributes_match: %ld\n", (unsigned long)OBJECT_ID(obj)); ++ ++ for (i = 0; i < num_attributes; i++) { ++ int match = 0; ++ for (j = 0; j < obj->num_attributes; j++) { ++ if (attributes[i].type == obj->attrs[j].attribute.type && ++ attributes[i].ulValueLen == obj->attrs[j].attribute.ulValueLen && ++ memcmp(attributes[i].pValue, obj->attrs[j].attribute.pValue, ++ attributes[i].ulValueLen) == 0) { ++ match = 1; ++ break; ++ } ++ } ++ if (match == 0) { ++ st_logf("type %d attribute have no match\n", attributes[i].type); ++ return 0; ++ } ++ } ++ st_logf("attribute matches\n"); ++ return 1; ++} ++ ++static void ++print_attributes(const CK_ATTRIBUTE *attributes, ++ CK_ULONG num_attributes) ++{ ++ CK_ULONG i; ++ ++ st_logf("find objects: attrs: %lu\n", (unsigned long)num_attributes); ++ ++ for (i = 0; i < num_attributes; i++) { ++ st_logf(" type: "); ++ switch (attributes[i].type) { ++ case CKA_TOKEN: { ++ CK_BBOOL *ck_true; ++ if (attributes[i].ulValueLen != sizeof(CK_BBOOL)) { ++ application_error("token attribute wrong length\n"); ++ break; ++ } ++ ck_true = attributes[i].pValue; ++ st_logf("token: %s", *ck_true ? "TRUE" : "FALSE"); ++ break; ++ } ++ case CKA_CLASS: { ++ CK_OBJECT_CLASS *class; ++ if (attributes[i].ulValueLen != sizeof(CK_ULONG)) { ++ application_error("class attribute wrong length\n"); ++ break; ++ } ++ class = attributes[i].pValue; ++ st_logf("class "); ++ switch (*class) { ++ case CKO_CERTIFICATE: ++ st_logf("certificate"); ++ break; ++ case CKO_PUBLIC_KEY: ++ st_logf("public key"); ++ break; ++ case CKO_PRIVATE_KEY: ++ st_logf("private key"); ++ break; ++ case CKO_SECRET_KEY: ++ st_logf("secret key"); ++ break; ++ case CKO_DOMAIN_PARAMETERS: ++ st_logf("domain parameters"); ++ break; ++ default: ++ st_logf("[class %lx]", (long unsigned)*class); ++ break; ++ } ++ break; ++ } ++ case CKA_PRIVATE: ++ st_logf("private"); ++ break; ++ case CKA_LABEL: ++ st_logf("label"); ++ break; ++ case CKA_APPLICATION: ++ st_logf("application"); ++ break; ++ case CKA_VALUE: ++ st_logf("value"); ++ break; ++ case CKA_ID: ++ st_logf("id"); ++ break; ++ default: ++ st_logf("[unknown 0x%08lx]", (unsigned long)attributes[i].type); ++ break; ++ } ++ st_logf("\n"); ++ } ++} ++ ++static struct st_object * ++add_st_object(void) ++{ ++ struct st_object *o, **objs; ++ int i; ++ ++ o = malloc(sizeof(*o)); ++ if (o == NULL) ++ return NULL; ++ memset(o, 0, sizeof(*o)); ++ o->attrs = NULL; ++ o->num_attributes = 0; ++ ++ for (i = 0; i < soft_token.object.num_objs; i++) { ++ if (soft_token.object.objs == NULL) { ++ soft_token.object.objs[i] = o; ++ break; ++ } ++ } ++ if (i == soft_token.object.num_objs) { ++ objs = realloc(soft_token.object.objs, ++ (soft_token.object.num_objs + 1) * sizeof(soft_token.object.objs[0])); ++ if (objs == NULL) { ++ free(o); ++ return NULL; ++ } ++ soft_token.object.objs = objs; ++ soft_token.object.objs[soft_token.object.num_objs++] = o; ++ } ++ soft_token.object.objs[i]->object_handle = ++ (random() & (~OBJECT_ID_MASK)) | i; ++ ++ return o; ++} ++ ++static CK_RV ++add_object_attribute(struct st_object *o, ++ int secret, ++ CK_ATTRIBUTE_TYPE type, ++ CK_VOID_PTR pValue, ++ CK_ULONG ulValueLen) ++{ ++ struct st_attr *a; ++ int i; ++ ++ i = o->num_attributes; ++ a = realloc(o->attrs, (i + 1) * sizeof(o->attrs[0])); ++ if (a == NULL) ++ return CKR_DEVICE_MEMORY; ++ o->attrs = a; ++ o->attrs[i].secret = secret; ++ o->attrs[i].attribute.type = type; ++ o->attrs[i].attribute.pValue = malloc(ulValueLen); ++ if (o->attrs[i].attribute.pValue == NULL && ulValueLen != 0) ++ return CKR_DEVICE_MEMORY; ++ memcpy(o->attrs[i].attribute.pValue, pValue, ulValueLen); ++ o->attrs[i].attribute.ulValueLen = ulValueLen; ++ o->num_attributes++; ++ ++ return CKR_OK; ++} ++ ++static CK_RV ++add_pubkey_info(struct st_object *o, CK_KEY_TYPE key_type, EVP_PKEY *key) ++{ ++ switch (key_type) { ++ case CKK_RSA: { ++ CK_BYTE *modulus = NULL; ++ size_t modulus_len = 0; ++ CK_ULONG modulus_bits = 0; ++ CK_BYTE *exponent = NULL; ++ size_t exponent_len = 0; ++ RSA* rsa = NULL; ++ const BIGNUM *n = NULL, *e = NULL; ++ ++ rsa = EVP_PKEY_get0_RSA(key); ++ RSA_get0_key(rsa, &n, &e, NULL); ++ ++ modulus_bits = BN_num_bits(n); ++ ++ modulus_len = BN_num_bytes(n); ++ modulus = malloc(modulus_len); ++ BN_bn2bin(n, modulus); ++ ++ exponent_len = BN_num_bytes(e); ++ exponent = malloc(exponent_len); ++ BN_bn2bin(e, exponent); ++ ++ add_object_attribute(o, 0, CKA_MODULUS, modulus, modulus_len); ++ add_object_attribute(o, 0, CKA_MODULUS_BITS, ++ &modulus_bits, sizeof(modulus_bits)); ++ add_object_attribute(o, 0, CKA_PUBLIC_EXPONENT, ++ exponent, exponent_len); ++ ++ RSA_set_method(rsa, RSA_PKCS1_OpenSSL()); ++ ++ free(modulus); ++ free(exponent); ++ } ++ default: ++ /* XXX */ ++ break; ++ } ++ return CKR_OK; ++} ++ ++ ++static int ++pem_callback(char *buf, int num, int w, void *key) ++{ ++ return -1; ++} ++ ++ ++static CK_RV ++add_certificate(char *label, ++ const char *cert_file, ++ const char *private_key_file, ++ char *id, ++ int anchor) ++{ ++ struct st_object *o = NULL; ++ CK_BBOOL bool_true = CK_TRUE; ++ CK_BBOOL bool_false = CK_FALSE; ++ CK_OBJECT_CLASS c; ++ CK_CERTIFICATE_TYPE cert_type = CKC_X_509; ++ CK_KEY_TYPE key_type; ++ CK_MECHANISM_TYPE mech_type; ++ void *cert_data = NULL; ++ size_t cert_length; ++ void *subject_data = NULL; ++ size_t subject_length; ++ void *issuer_data = NULL; ++ size_t issuer_length; ++ void *serial_data = NULL; ++ size_t serial_length; ++ CK_RV ret = CKR_GENERAL_ERROR; ++ X509 *cert; ++ EVP_PKEY *public_key; ++ ++ size_t id_len = strlen(id); ++ ++ { ++ FILE *f; ++ ++ f = fopen(cert_file, "r"); ++ if (f == NULL) { ++ st_logf("failed to open file %s\n", cert_file); ++ return CKR_GENERAL_ERROR; ++ } ++ ++ cert = PEM_read_X509(f, NULL, NULL, NULL); ++ fclose(f); ++ if (cert == NULL) { ++ st_logf("failed reading PEM cert\n"); ++ return CKR_GENERAL_ERROR; ++ } ++ ++ OPENSSL_ASN1_MALLOC_ENCODE(X509, cert_data, cert_length, cert, ret); ++ if (ret) ++ goto out; ++ ++ OPENSSL_ASN1_MALLOC_ENCODE(X509_NAME, issuer_data, issuer_length, ++ X509_get_issuer_name(cert), ret); ++ if (ret) ++ goto out; ++ ++ OPENSSL_ASN1_MALLOC_ENCODE(X509_NAME, subject_data, subject_length, ++ X509_get_subject_name(cert), ret); ++ if (ret) ++ goto out; ++ ++ OPENSSL_ASN1_MALLOC_ENCODE(ASN1_INTEGER, serial_data, serial_length, ++ X509_get_serialNumber(cert), ret); ++ if (ret) ++ goto out; ++ ++ } ++ ++ st_logf("done parsing, adding to internal structure\n"); ++ ++ o = add_st_object(); ++ if (o == NULL) { ++ ret = CKR_DEVICE_MEMORY; ++ goto out; ++ } ++ o->type = STO_T_CERTIFICATE; ++ o->u.cert = cert; ++ public_key = X509_get_pubkey(o->u.cert); ++ ++ switch (EVP_PKEY_base_id(public_key)) { ++ case EVP_PKEY_RSA: ++ key_type = CKK_RSA; ++ break; ++ case EVP_PKEY_DSA: ++ key_type = CKK_DSA; ++ break; ++ default: ++ /* XXX */ ++ break; ++ } ++ ++ c = CKO_CERTIFICATE; ++ add_object_attribute(o, 0, CKA_CLASS, &c, sizeof(c)); ++ add_object_attribute(o, 0, CKA_TOKEN, &bool_true, sizeof(bool_true)); ++ add_object_attribute(o, 0, CKA_PRIVATE, &bool_false, sizeof(bool_false)); ++ add_object_attribute(o, 0, CKA_MODIFIABLE, &bool_false, sizeof(bool_false)); ++ add_object_attribute(o, 0, CKA_LABEL, label, strlen(label)); ++ ++ add_object_attribute(o, 0, CKA_CERTIFICATE_TYPE, &cert_type, sizeof(cert_type)); ++ add_object_attribute(o, 0, CKA_ID, id, id_len); ++ ++ add_object_attribute(o, 0, CKA_SUBJECT, subject_data, subject_length); ++ add_object_attribute(o, 0, CKA_ISSUER, issuer_data, issuer_length); ++ add_object_attribute(o, 0, CKA_SERIAL_NUMBER, serial_data, serial_length); ++ add_object_attribute(o, 0, CKA_VALUE, cert_data, cert_length); ++ if (anchor) ++ add_object_attribute(o, 0, CKA_TRUSTED, &bool_true, sizeof(bool_true)); ++ else ++ add_object_attribute(o, 0, CKA_TRUSTED, &bool_false, sizeof(bool_false)); ++ ++ st_logf("add cert ok: %lx\n", (unsigned long)OBJECT_ID(o)); ++ ++ o = add_st_object(); ++ if (o == NULL) { ++ ret = CKR_DEVICE_MEMORY; ++ goto out; ++ } ++ o->type = STO_T_PUBLIC_KEY; ++ o->u.public_key = public_key; ++ ++ c = CKO_PUBLIC_KEY; ++ add_object_attribute(o, 0, CKA_CLASS, &c, sizeof(c)); ++ add_object_attribute(o, 0, CKA_TOKEN, &bool_true, sizeof(bool_true)); ++ add_object_attribute(o, 0, CKA_PRIVATE, &bool_false, sizeof(bool_false)); ++ add_object_attribute(o, 0, CKA_MODIFIABLE, &bool_false, sizeof(bool_false)); ++ add_object_attribute(o, 0, CKA_LABEL, label, strlen(label)); ++ ++ add_object_attribute(o, 0, CKA_KEY_TYPE, &key_type, sizeof(key_type)); ++ add_object_attribute(o, 0, CKA_ID, id, id_len); ++ add_object_attribute(o, 0, CKA_START_DATE, "", 1); /* XXX */ ++ add_object_attribute(o, 0, CKA_END_DATE, "", 1); /* XXX */ ++ add_object_attribute(o, 0, CKA_DERIVE, &bool_false, sizeof(bool_false)); ++ add_object_attribute(o, 0, CKA_LOCAL, &bool_false, sizeof(bool_false)); ++ mech_type = CKM_RSA_X_509; ++ add_object_attribute(o, 0, CKA_KEY_GEN_MECHANISM, &mech_type, sizeof(mech_type)); ++ ++ add_object_attribute(o, 0, CKA_SUBJECT, subject_data, subject_length); ++ add_object_attribute(o, 0, CKA_ENCRYPT, &bool_true, sizeof(bool_true)); ++ add_object_attribute(o, 0, CKA_VERIFY, &bool_true, sizeof(bool_true)); ++ add_object_attribute(o, 0, CKA_VERIFY_RECOVER, &bool_false, sizeof(bool_false)); ++ add_object_attribute(o, 0, CKA_WRAP, &bool_true, sizeof(bool_true)); ++ add_object_attribute(o, 0, CKA_TRUSTED, &bool_true, sizeof(bool_true)); ++ ++ add_pubkey_info(o, key_type, public_key); ++ ++ st_logf("add key ok: %lx\n", (unsigned long)OBJECT_ID(o)); ++ ++ if (private_key_file) { ++ CK_FLAGS flags; ++ FILE *f; ++ ++ o = add_st_object(); ++ if (o == NULL) { ++ ret = CKR_DEVICE_MEMORY; ++ goto out; ++ } ++ o->type = STO_T_PRIVATE_KEY; ++ o->u.private_key.file = strdup(private_key_file); ++ o->u.private_key.key = NULL; ++ ++ o->u.private_key.cert = cert; ++ ++ c = CKO_PRIVATE_KEY; ++ add_object_attribute(o, 0, CKA_CLASS, &c, sizeof(c)); ++ add_object_attribute(o, 0, CKA_TOKEN, &bool_true, sizeof(bool_true)); ++ add_object_attribute(o, 0, CKA_PRIVATE, &bool_true, sizeof(bool_false)); ++ add_object_attribute(o, 0, CKA_MODIFIABLE, &bool_false, sizeof(bool_false)); ++ add_object_attribute(o, 0, CKA_LABEL, label, strlen(label)); ++ ++ add_object_attribute(o, 0, CKA_KEY_TYPE, &key_type, sizeof(key_type)); ++ add_object_attribute(o, 0, CKA_ID, id, id_len); ++ add_object_attribute(o, 0, CKA_START_DATE, "", 1); /* XXX */ ++ add_object_attribute(o, 0, CKA_END_DATE, "", 1); /* XXX */ ++ add_object_attribute(o, 0, CKA_DERIVE, &bool_false, sizeof(bool_false)); ++ add_object_attribute(o, 0, CKA_LOCAL, &bool_false, sizeof(bool_false)); ++ mech_type = CKM_RSA_X_509; ++ add_object_attribute(o, 0, CKA_KEY_GEN_MECHANISM, &mech_type, sizeof(mech_type)); ++ ++ add_object_attribute(o, 0, CKA_SUBJECT, subject_data, subject_length); ++ add_object_attribute(o, 0, CKA_SENSITIVE, &bool_true, sizeof(bool_true)); ++ add_object_attribute(o, 0, CKA_SECONDARY_AUTH, &bool_false, sizeof(bool_true)); ++ flags = 0; ++ add_object_attribute(o, 0, CKA_AUTH_PIN_FLAGS, &flags, sizeof(flags)); ++ ++ add_object_attribute(o, 0, CKA_DECRYPT, &bool_true, sizeof(bool_true)); ++ add_object_attribute(o, 0, CKA_SIGN, &bool_true, sizeof(bool_true)); ++ add_object_attribute(o, 0, CKA_SIGN_RECOVER, &bool_false, sizeof(bool_false)); ++ add_object_attribute(o, 0, CKA_UNWRAP, &bool_true, sizeof(bool_true)); ++ add_object_attribute(o, 0, CKA_EXTRACTABLE, &bool_true, sizeof(bool_true)); ++ add_object_attribute(o, 0, CKA_NEVER_EXTRACTABLE, &bool_false, sizeof(bool_false)); ++ ++ add_pubkey_info(o, key_type, public_key); ++ ++ f = fopen(private_key_file, "r"); ++ if (f == NULL) { ++ st_logf("failed to open private key\n"); ++ return CKR_GENERAL_ERROR; ++ } ++ ++ o->u.private_key.key = PEM_read_PrivateKey(f, NULL, pem_callback, NULL); ++ fclose(f); ++ if (o->u.private_key.key == NULL) { ++ st_logf("failed to read private key a startup\n"); ++ /* don't bother with this failure for now, ++ fix it at C_Login time */; ++ } else { ++ /* XXX verify keytype */ ++ ++ if (key_type == CKK_RSA) { ++ RSA *rsa = EVP_PKEY_get0_RSA(o->u.private_key.key); ++ RSA_set_method(rsa, RSA_PKCS1_OpenSSL()); ++ } ++ ++ if (X509_check_private_key(cert, o->u.private_key.key) != 1) { ++ EVP_PKEY_free(o->u.private_key.key); ++ o->u.private_key.key = NULL; ++ st_logf("private key doesn't verify\n"); ++ } else { ++ st_logf("private key usable\n"); ++ soft_token.flags.login_done = 1; ++ } ++ } ++ } ++ ++ ret = CKR_OK; ++ out: ++ if (ret != CKR_OK) { ++ st_logf("something went wrong when adding cert!\n"); ++ ++ /* XXX wack o */; ++ } ++ free(cert_data); ++ free(serial_data); ++ free(issuer_data); ++ free(subject_data); ++ ++ return ret; ++} ++ ++static void ++find_object_final(struct session_state *state) ++{ ++ if (state->find.attributes) { ++ CK_ULONG i; ++ ++ for (i = 0; i < state->find.num_attributes; i++) { ++ if (state->find.attributes[i].pValue) ++ free(state->find.attributes[i].pValue); ++ } ++ free(state->find.attributes); ++ state->find.attributes = NULL; ++ state->find.num_attributes = 0; ++ state->find.next_object = -1; ++ } ++} ++ ++static void ++reset_crypto_state(struct session_state *state) ++{ ++ state->encrypt_object = -1; ++ if (state->encrypt_mechanism) ++ free(state->encrypt_mechanism); ++ state->encrypt_mechanism = NULL_PTR; ++ state->decrypt_object = -1; ++ if (state->decrypt_mechanism) ++ free(state->decrypt_mechanism); ++ state->decrypt_mechanism = NULL_PTR; ++ state->sign_object = -1; ++ if (state->sign_mechanism) ++ free(state->sign_mechanism); ++ state->sign_mechanism = NULL_PTR; ++ state->verify_object = -1; ++ if (state->verify_mechanism) ++ free(state->verify_mechanism); ++ state->verify_mechanism = NULL_PTR; ++ state->digest_object = -1; ++} ++ ++static void ++close_session(struct session_state *state) ++{ ++ if (state->find.attributes) { ++ application_error("application didn't do C_FindObjectsFinal\n"); ++ find_object_final(state); ++ } ++ ++ state->session_handle = CK_INVALID_HANDLE; ++ soft_token.application = NULL_PTR; ++ soft_token.notify = NULL_PTR; ++ reset_crypto_state(state); ++} ++ ++static const char * ++has_session(void) ++{ ++ return soft_token.open_sessions > 0 ? "yes" : "no"; ++} ++ ++static void ++read_conf_file(const char *fn) ++{ ++ char buf[1024], *cert, *key, *id, *label, *s, *p; ++ int anchor; ++ FILE *f; ++ ++ f = fopen(fn, "r"); ++ if (f == NULL) { ++ st_logf("can't open configuration file %s\n", fn); ++ return; ++ } ++ ++ while(fgets(buf, sizeof(buf), f) != NULL) { ++ buf[strcspn(buf, "\n")] = '\0'; ++ ++ anchor = 0; ++ ++ st_logf("line: %s\n", buf); ++ ++ p = buf; ++ while (isspace(*p)) ++ p++; ++ if (*p == '#') ++ continue; ++ while (isspace(*p)) ++ p++; ++ ++ s = NULL; ++ id = strtok_r(p, "\t", &s); ++ if (id == NULL) ++ continue; ++ label = strtok_r(NULL, "\t", &s); ++ if (label == NULL) ++ continue; ++ cert = strtok_r(NULL, "\t", &s); ++ if (cert == NULL) ++ continue; ++ key = strtok_r(NULL, "\t", &s); ++ ++ /* XXX */ ++ if (strcmp(id, "anchor") == 0) { ++ id = "\x00\x00"; ++ anchor = 1; ++ } ++ ++ st_logf("adding: %s\n", label); ++ ++ add_certificate(label, cert, key, id, anchor); ++ } ++} ++ ++static CK_RV ++func_not_supported(void) ++{ ++ st_logf("function not supported\n"); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++CK_RV ++C_Initialize(CK_VOID_PTR a) ++{ ++ CK_C_INITIALIZE_ARGS_PTR args = a; ++ st_logf("Initialize\n"); ++ size_t i; ++ ++ OpenSSL_add_all_algorithms(); ++ ERR_load_crypto_strings(); ++ ++ srandom(getpid() ^ time(NULL)); ++ ++ for (i = 0; i < MAX_NUM_SESSION; i++) { ++ soft_token.state[i].session_handle = CK_INVALID_HANDLE; ++ soft_token.state[i].find.attributes = NULL; ++ soft_token.state[i].find.num_attributes = 0; ++ soft_token.state[i].find.next_object = -1; ++ reset_crypto_state(&soft_token.state[i]); ++ } ++ ++ soft_token.flags.hardware_slot = 1; ++ soft_token.flags.app_error_fatal = 0; ++ soft_token.flags.login_done = 0; ++ ++ soft_token.object.objs = NULL; ++ soft_token.object.num_objs = 0; ++ ++ soft_token.logfile = NULL; ++#if 1 ++// soft_token.logfile = stdout; ++#endif ++#if 0 ++ soft_token.logfile = fopen("/tmp/log-pkcs11.txt", "a"); ++#endif ++ ++ if (a != NULL_PTR) { ++ st_logf("\tCreateMutex:\t%p\n", args->CreateMutex); ++ st_logf("\tDestroyMutext\t%p\n", args->DestroyMutex); ++ st_logf("\tLockMutext\t%p\n", args->LockMutex); ++ st_logf("\tUnlockMutext\t%p\n", args->UnlockMutex); ++ st_logf("\tFlags\t%04x\n", (unsigned int)args->flags); ++ } ++ ++ { ++ char *fn = NULL, *home = NULL; ++ ++ if (getuid() == geteuid()) { ++ fn = getenv("SOFTPKCS11RC"); ++ if (fn) ++ fn = strdup(fn); ++ home = getenv("HOME"); ++ } ++ if (fn == NULL && home == NULL) { ++ struct passwd *pw = getpwuid(getuid()); ++ if(pw != NULL) ++ home = pw->pw_dir; ++ } ++ if (fn == NULL) { ++ if (home) ++ asprintf(&fn, "%s/.soft-token.rc", home); ++ else ++ fn = strdup("/etc/soft-token.rc"); ++ } ++ ++ read_conf_file(fn); ++ free(fn); ++ } ++ ++ return CKR_OK; ++} ++ ++CK_RV ++C_Finalize(CK_VOID_PTR args) ++{ ++ size_t i; ++ ++ st_logf("Finalize\n"); ++ ++ for (i = 0; i < MAX_NUM_SESSION; i++) { ++ if (soft_token.state[i].session_handle != CK_INVALID_HANDLE) { ++ application_error("application finalized without " ++ "closing session\n"); ++ close_session(&soft_token.state[i]); ++ } ++ } ++ ++ return CKR_OK; ++} ++ ++CK_RV ++C_GetInfo(CK_INFO_PTR args) ++{ ++ st_logf("GetInfo\n"); ++ ++ memset(args, 17, sizeof(*args)); ++ args->cryptokiVersion.major = 2; ++ args->cryptokiVersion.minor = 10; ++ snprintf_fill((char *)args->manufacturerID, ++ sizeof(args->manufacturerID), ++ ' ', ++ "SoftToken"); ++ snprintf_fill((char *)args->libraryDescription, ++ sizeof(args->libraryDescription), ' ', ++ "SoftToken"); ++ args->libraryVersion.major = 1; ++ args->libraryVersion.minor = 8; ++ ++ return CKR_OK; ++} ++ ++extern CK_FUNCTION_LIST funcs; ++ ++CK_RV ++C_GetFunctionList(CK_FUNCTION_LIST_PTR_PTR ppFunctionList) ++{ ++ *ppFunctionList = &funcs; ++ return CKR_OK; ++} ++ ++CK_RV ++C_GetSlotList(CK_BBOOL tokenPresent, ++ CK_SLOT_ID_PTR pSlotList, ++ CK_ULONG_PTR pulCount) ++{ ++ st_logf("GetSlotList: %s\n", ++ tokenPresent ? "tokenPresent" : "token not Present"); ++ if (pSlotList) ++ pSlotList[0] = 1; ++ *pulCount = 1; ++ return CKR_OK; ++} ++ ++CK_RV ++C_GetSlotInfo(CK_SLOT_ID slotID, ++ CK_SLOT_INFO_PTR pInfo) ++{ ++ st_logf("GetSlotInfo: slot: %d : %s\n", (int)slotID, has_session()); ++ ++ memset(pInfo, 18, sizeof(*pInfo)); ++ ++ if (slotID != 1) ++ return CKR_ARGUMENTS_BAD; ++ ++ snprintf_fill((char *)pInfo->slotDescription, ++ sizeof(pInfo->slotDescription), ++ ' ', ++ "SoftToken (slot)"); ++ snprintf_fill((char *)pInfo->manufacturerID, ++ sizeof(pInfo->manufacturerID), ++ ' ', ++ "SoftToken (slot)"); ++ pInfo->flags = CKF_TOKEN_PRESENT; ++ if (soft_token.flags.hardware_slot) ++ pInfo->flags |= CKF_HW_SLOT; ++ pInfo->hardwareVersion.major = 1; ++ pInfo->hardwareVersion.minor = 0; ++ pInfo->firmwareVersion.major = 1; ++ pInfo->firmwareVersion.minor = 0; ++ ++ return CKR_OK; ++} ++ ++CK_RV ++C_GetTokenInfo(CK_SLOT_ID slotID, ++ CK_TOKEN_INFO_PTR pInfo) ++{ ++ st_logf("GetTokenInfo: %s\n", has_session()); ++ ++ memset(pInfo, 19, sizeof(*pInfo)); ++ ++ snprintf_fill((char *)pInfo->label, ++ sizeof(pInfo->label), ++ ' ', ++ "SoftToken (token)"); ++ snprintf_fill((char *)pInfo->manufacturerID, ++ sizeof(pInfo->manufacturerID), ++ ' ', ++ "SoftToken (token)"); ++ snprintf_fill((char *)pInfo->model, ++ sizeof(pInfo->model), ++ ' ', ++ "SoftToken (token)"); ++ snprintf_fill((char *)pInfo->serialNumber, ++ sizeof(pInfo->serialNumber), ++ ' ', ++ "4711"); ++ pInfo->flags = ++ CKF_TOKEN_INITIALIZED | ++ CKF_USER_PIN_INITIALIZED; ++ ++ if (soft_token.flags.login_done == 0) ++ pInfo->flags |= CKF_LOGIN_REQUIRED; ++ ++ /* CFK_RNG | ++ CKF_RESTORE_KEY_NOT_NEEDED | ++ */ ++ pInfo->ulMaxSessionCount = MAX_NUM_SESSION; ++ pInfo->ulSessionCount = soft_token.open_sessions; ++ pInfo->ulMaxRwSessionCount = MAX_NUM_SESSION; ++ pInfo->ulRwSessionCount = soft_token.open_sessions; ++ pInfo->ulMaxPinLen = 1024; ++ pInfo->ulMinPinLen = 0; ++ pInfo->ulTotalPublicMemory = 4711; ++ pInfo->ulFreePublicMemory = 4712; ++ pInfo->ulTotalPrivateMemory = 4713; ++ pInfo->ulFreePrivateMemory = 4714; ++ pInfo->hardwareVersion.major = 2; ++ pInfo->hardwareVersion.minor = 0; ++ pInfo->firmwareVersion.major = 2; ++ pInfo->firmwareVersion.minor = 0; ++ ++ return CKR_OK; ++} ++ ++CK_RV ++C_GetMechanismList(CK_SLOT_ID slotID, ++ CK_MECHANISM_TYPE_PTR pMechanismList, ++ CK_ULONG_PTR pulCount) ++{ ++ st_logf("GetMechanismList\n"); ++ ++ *pulCount = 2; ++ if (pMechanismList == NULL_PTR) ++ return CKR_OK; ++ pMechanismList[0] = CKM_RSA_X_509; ++ pMechanismList[1] = CKM_RSA_PKCS; ++ ++ return CKR_OK; ++} ++ ++CK_RV ++C_GetMechanismInfo(CK_SLOT_ID slotID, ++ CK_MECHANISM_TYPE type, ++ CK_MECHANISM_INFO_PTR pInfo) ++{ ++ st_logf("GetMechanismInfo: slot %d type: %d\n", ++ (int)slotID, (int)type); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++CK_RV ++C_InitToken(CK_SLOT_ID slotID, ++ CK_UTF8CHAR_PTR pPin, ++ CK_ULONG ulPinLen, ++ CK_UTF8CHAR_PTR pLabel) ++{ ++ st_logf("InitToken: slot %d\n", (int)slotID); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++CK_RV ++C_OpenSession(CK_SLOT_ID slotID, ++ CK_FLAGS flags, ++ CK_VOID_PTR pApplication, ++ CK_NOTIFY Notify, ++ CK_SESSION_HANDLE_PTR phSession) ++{ ++ size_t i; ++ ++ st_logf("OpenSession: slot: %d\n", (int)slotID); ++ ++ if (soft_token.open_sessions == MAX_NUM_SESSION) ++ return CKR_SESSION_COUNT; ++ ++ soft_token.application = pApplication; ++ soft_token.notify = Notify; ++ ++ for (i = 0; i < MAX_NUM_SESSION; i++) ++ if (soft_token.state[i].session_handle == CK_INVALID_HANDLE) ++ break; ++ if (i == MAX_NUM_SESSION) ++ abort(); ++ ++ soft_token.open_sessions++; ++ ++ soft_token.state[i].session_handle = ++ (CK_SESSION_HANDLE)(random() & 0xfffff); ++ *phSession = soft_token.state[i].session_handle; ++ ++ return CKR_OK; ++} ++ ++CK_RV ++C_CloseSession(CK_SESSION_HANDLE hSession) ++{ ++ struct session_state *state; ++ st_logf("CloseSession\n"); ++ ++ if (verify_session_handle(hSession, &state) != CKR_OK) ++ application_error("closed session not open"); ++ else ++ close_session(state); ++ ++ return CKR_OK; ++} ++ ++CK_RV ++C_CloseAllSessions(CK_SLOT_ID slotID) ++{ ++ size_t i; ++ ++ st_logf("CloseAllSessions\n"); ++ ++ for (i = 0; i < MAX_NUM_SESSION; i++) ++ if (soft_token.state[i].session_handle != CK_INVALID_HANDLE) ++ close_session(&soft_token.state[i]); ++ ++ return CKR_OK; ++} ++ ++CK_RV ++C_GetSessionInfo(CK_SESSION_HANDLE hSession, ++ CK_SESSION_INFO_PTR pInfo) ++{ ++ st_logf("GetSessionInfo\n"); ++ ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ ++ memset(pInfo, 20, sizeof(*pInfo)); ++ ++ pInfo->slotID = 1; ++ if (soft_token.flags.login_done) ++ pInfo->state = CKS_RO_USER_FUNCTIONS; ++ else ++ pInfo->state = CKS_RO_PUBLIC_SESSION; ++ pInfo->flags = CKF_SERIAL_SESSION; ++ pInfo->ulDeviceError = 0; ++ ++ return CKR_OK; ++} ++ ++CK_RV ++C_Login(CK_SESSION_HANDLE hSession, ++ CK_USER_TYPE userType, ++ CK_UTF8CHAR_PTR pPin, ++ CK_ULONG ulPinLen) ++{ ++ char *pin = NULL; ++ int i; ++ ++ st_logf("Login\n"); ++ ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ ++ if (pPin != NULL_PTR) { ++ asprintf(&pin, "%.*s", (int)ulPinLen, pPin); ++ st_logf("type: %d password: %s\n", (int)userType, pin); ++ } ++ ++ for (i = 0; i < soft_token.object.num_objs; i++) { ++ struct st_object *o = soft_token.object.objs[i]; ++ FILE *f; ++ ++ if (o->type != STO_T_PRIVATE_KEY) ++ continue; ++ ++ if (o->u.private_key.key) ++ continue; ++ ++ f = fopen(o->u.private_key.file, "r"); ++ if (f == NULL) { ++ st_logf("can't open private file: %s\n", o->u.private_key.file); ++ continue; ++ } ++ ++ o->u.private_key.key = PEM_read_PrivateKey(f, NULL, NULL, pin); ++ fclose(f); ++ if (o->u.private_key.key == NULL) { ++ st_logf("failed to read key: %s error: %s\n", ++ o->u.private_key.file, ++ ERR_error_string(ERR_get_error(), NULL)); ++ /* just ignore failure */; ++ continue; ++ } ++ ++ /* XXX check keytype */ ++ RSA *rsa = EVP_PKEY_get0_RSA(o->u.private_key.key); ++ RSA_set_method(rsa, RSA_PKCS1_OpenSSL()); ++ ++ if (X509_check_private_key(o->u.private_key.cert, o->u.private_key.key) != 1) { ++ EVP_PKEY_free(o->u.private_key.key); ++ o->u.private_key.key = NULL; ++ st_logf("private key %s doesn't verify\n", o->u.private_key.file); ++ continue; ++ } ++ ++ soft_token.flags.login_done = 1; ++ } ++ free(pin); ++ ++ return soft_token.flags.login_done ? CKR_OK : CKR_PIN_INCORRECT; ++} ++ ++CK_RV ++C_Logout(CK_SESSION_HANDLE hSession) ++{ ++ st_logf("Logout\n"); ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++CK_RV ++C_GetObjectSize(CK_SESSION_HANDLE hSession, ++ CK_OBJECT_HANDLE hObject, ++ CK_ULONG_PTR pulSize) ++{ ++ st_logf("GetObjectSize\n"); ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++CK_RV ++C_GetAttributeValue(CK_SESSION_HANDLE hSession, ++ CK_OBJECT_HANDLE hObject, ++ CK_ATTRIBUTE_PTR pTemplate, ++ CK_ULONG ulCount) ++{ ++ struct session_state *state; ++ struct st_object *obj; ++ CK_ULONG i; ++ CK_RV ret; ++ int j; ++ ++ st_logf("GetAttributeValue: %lx\n", ++ (unsigned long)HANDLE_OBJECT_ID(hObject)); ++ VERIFY_SESSION_HANDLE(hSession, &state); ++ ++ if ((ret = object_handle_to_object(hObject, &obj)) != CKR_OK) { ++ st_logf("object not found: %lx\n", ++ (unsigned long)HANDLE_OBJECT_ID(hObject)); ++ return ret; ++ } ++ ++ ret = CKR_OK; ++ for (i = 0; i < ulCount; i++) { ++ st_logf(" getting 0x%08lx\n", (unsigned long)pTemplate[i].type); ++ for (j = 0; j < obj->num_attributes; j++) { ++ if (obj->attrs[j].secret) { ++ pTemplate[i].ulValueLen = (CK_ULONG)-1; ++ break; ++ } ++ if (pTemplate[i].type == obj->attrs[j].attribute.type) { ++ if (pTemplate[i].pValue != NULL_PTR && obj->attrs[j].secret == 0) { ++ if (pTemplate[i].ulValueLen >= obj->attrs[j].attribute.ulValueLen) ++ memcpy(pTemplate[i].pValue, obj->attrs[j].attribute.pValue, ++ obj->attrs[j].attribute.ulValueLen); ++ } ++ pTemplate[i].ulValueLen = obj->attrs[j].attribute.ulValueLen; ++ break; ++ } ++ } ++ if (j == obj->num_attributes) { ++ st_logf("key type: 0x%08lx not found\n", (unsigned long)pTemplate[i].type); ++ pTemplate[i].ulValueLen = (CK_ULONG)-1; ++ ret = CKR_ATTRIBUTE_TYPE_INVALID; ++ } ++ ++ } ++ return ret; ++} ++ ++CK_RV ++C_FindObjectsInit(CK_SESSION_HANDLE hSession, ++ CK_ATTRIBUTE_PTR pTemplate, ++ CK_ULONG ulCount) ++{ ++ struct session_state *state; ++ ++ st_logf("FindObjectsInit\n"); ++ ++ VERIFY_SESSION_HANDLE(hSession, &state); ++ ++ if (state->find.next_object != -1) { ++ application_error("application didn't do C_FindObjectsFinal\n"); ++ find_object_final(state); ++ } ++ if (ulCount) { ++ CK_ULONG i; ++ ++ print_attributes(pTemplate, ulCount); ++ ++ state->find.attributes = ++ calloc(1, ulCount * sizeof(state->find.attributes[0])); ++ if (state->find.attributes == NULL) ++ return CKR_DEVICE_MEMORY; ++ for (i = 0; i < ulCount; i++) { ++ state->find.attributes[i].pValue = ++ malloc(pTemplate[i].ulValueLen); ++ if (state->find.attributes[i].pValue == NULL) { ++ find_object_final(state); ++ return CKR_DEVICE_MEMORY; ++ } ++ memcpy(state->find.attributes[i].pValue, ++ pTemplate[i].pValue, pTemplate[i].ulValueLen); ++ state->find.attributes[i].type = pTemplate[i].type; ++ state->find.attributes[i].ulValueLen = pTemplate[i].ulValueLen; ++ } ++ state->find.num_attributes = ulCount; ++ state->find.next_object = 0; ++ } else { ++ st_logf("find all objects\n"); ++ state->find.attributes = NULL; ++ state->find.num_attributes = 0; ++ state->find.next_object = 0; ++ } ++ ++ return CKR_OK; ++} ++ ++CK_RV ++C_FindObjects(CK_SESSION_HANDLE hSession, ++ CK_OBJECT_HANDLE_PTR phObject, ++ CK_ULONG ulMaxObjectCount, ++ CK_ULONG_PTR pulObjectCount) ++{ ++ struct session_state *state; ++ int i; ++ ++ st_logf("FindObjects\n"); ++ ++ VERIFY_SESSION_HANDLE(hSession, &state); ++ ++ if (state->find.next_object == -1) { ++ application_error("application didn't do C_FindObjectsInit\n"); ++ return CKR_ARGUMENTS_BAD; ++ } ++ if (ulMaxObjectCount == 0) { ++ application_error("application asked for 0 objects\n"); ++ return CKR_ARGUMENTS_BAD; ++ } ++ *pulObjectCount = 0; ++ for (i = state->find.next_object; i < soft_token.object.num_objs; i++) { ++ st_logf("FindObjects: %d\n", i); ++ state->find.next_object = i + 1; ++ if (attributes_match(soft_token.object.objs[i], ++ state->find.attributes, ++ state->find.num_attributes)) { ++ *phObject++ = soft_token.object.objs[i]->object_handle; ++ ulMaxObjectCount--; ++ (*pulObjectCount)++; ++ if (ulMaxObjectCount == 0) ++ break; ++ } ++ } ++ return CKR_OK; ++} ++ ++CK_RV ++C_FindObjectsFinal(CK_SESSION_HANDLE hSession) ++{ ++ struct session_state *state; ++ ++ st_logf("FindObjectsFinal\n"); ++ VERIFY_SESSION_HANDLE(hSession, &state); ++ find_object_final(state); ++ return CKR_OK; ++} ++ ++static CK_RV ++commonInit(CK_ATTRIBUTE *attr_match, int attr_match_len, ++ const CK_MECHANISM_TYPE *mechs, int mechs_len, ++ const CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey, ++ struct st_object **o) ++{ ++ CK_RV ret; ++ int i; ++ ++ *o = NULL; ++ if ((ret = object_handle_to_object(hKey, o)) != CKR_OK) ++ return ret; ++ ++ ret = attributes_match(*o, attr_match, attr_match_len); ++ if (!ret) { ++ application_error("called commonInit on key that doesn't " ++ "support required attr"); ++ return CKR_ARGUMENTS_BAD; ++ } ++ ++ for (i = 0; i < mechs_len; i++) ++ if (mechs[i] == pMechanism->mechanism) ++ break; ++ if (i == mechs_len) { ++ application_error("called mech (%08lx) not supported\n", ++ pMechanism->mechanism); ++ return CKR_ARGUMENTS_BAD; ++ } ++ return CKR_OK; ++} ++ ++ ++static CK_RV ++dup_mechanism(CK_MECHANISM_PTR *dup, const CK_MECHANISM_PTR pMechanism) ++{ ++ CK_MECHANISM_PTR p; ++ ++ p = malloc(sizeof(*p)); ++ if (p == NULL) ++ return CKR_DEVICE_MEMORY; ++ ++ if (*dup) ++ free(*dup); ++ *dup = p; ++ memcpy(p, pMechanism, sizeof(*p)); ++ ++ return CKR_OK; ++} ++ ++ ++CK_RV ++C_EncryptInit(CK_SESSION_HANDLE hSession, ++ CK_MECHANISM_PTR pMechanism, ++ CK_OBJECT_HANDLE hKey) ++{ ++ struct session_state *state; ++ CK_MECHANISM_TYPE mechs[] = { CKM_RSA_PKCS, CKM_RSA_X_509 }; ++ CK_BBOOL bool_true = CK_TRUE; ++ CK_ATTRIBUTE attr[] = { ++ { CKA_ENCRYPT, &bool_true, sizeof(bool_true) } ++ }; ++ struct st_object *o; ++ CK_RV ret; ++ ++ st_logf("EncryptInit\n"); ++ VERIFY_SESSION_HANDLE(hSession, &state); ++ ++ ret = commonInit(attr, sizeof(attr)/sizeof(attr[0]), ++ mechs, sizeof(mechs)/sizeof(mechs[0]), ++ pMechanism, hKey, &o); ++ if (ret) ++ return ret; ++ ++ ret = dup_mechanism(&state->encrypt_mechanism, pMechanism); ++ if (ret == CKR_OK) ++ state->encrypt_object = OBJECT_ID(o); ++ ++ return ret; ++} ++ ++CK_RV ++C_Encrypt(CK_SESSION_HANDLE hSession, ++ CK_BYTE_PTR pData, ++ CK_ULONG ulDataLen, ++ CK_BYTE_PTR pEncryptedData, ++ CK_ULONG_PTR pulEncryptedDataLen) ++{ ++ struct session_state *state; ++ struct st_object *o; ++ void *buffer = NULL; ++ CK_RV ret; ++ RSA *rsa; ++ int padding, len, buffer_len, padding_len; ++ ++ st_logf("Encrypt\n"); ++ ++ VERIFY_SESSION_HANDLE(hSession, &state); ++ ++ if (state->encrypt_object == -1) ++ return CKR_ARGUMENTS_BAD; ++ ++ o = soft_token.object.objs[state->encrypt_object]; ++ ++ if (o->u.public_key == NULL) { ++ st_logf("public key NULL\n"); ++ return CKR_ARGUMENTS_BAD; ++ } ++ ++ rsa = EVP_PKEY_get0_RSA(o->u.public_key); ++ if (rsa == NULL) ++ return CKR_ARGUMENTS_BAD; ++ ++ RSA_blinding_off(rsa); /* XXX RAND is broken while running in mozilla ? */ ++ ++ buffer_len = RSA_size(rsa); ++ ++ buffer = malloc(buffer_len); ++ if (buffer == NULL) { ++ ret = CKR_DEVICE_MEMORY; ++ goto out; ++ } ++ ++ ret = CKR_OK; ++ switch(state->encrypt_mechanism->mechanism) { ++ case CKM_RSA_PKCS: ++ padding = RSA_PKCS1_PADDING; ++ padding_len = RSA_PKCS1_PADDING_SIZE; ++ break; ++ case CKM_RSA_X_509: ++ padding = RSA_NO_PADDING; ++ padding_len = 0; ++ break; ++ default: ++ ret = CKR_FUNCTION_NOT_SUPPORTED; ++ goto out; ++ } ++ ++ if (buffer_len + padding_len < (long) ulDataLen) { ++ ret = CKR_ARGUMENTS_BAD; ++ goto out; ++ } ++ ++ if (pulEncryptedDataLen == NULL) { ++ st_logf("pulEncryptedDataLen NULL\n"); ++ ret = CKR_ARGUMENTS_BAD; ++ goto out; ++ } ++ ++ if (pData == NULL_PTR) { ++ st_logf("data NULL\n"); ++ ret = CKR_ARGUMENTS_BAD; ++ goto out; ++ } ++ ++ len = RSA_public_encrypt(ulDataLen, pData, buffer, rsa, padding); ++ if (len <= 0) { ++ ret = CKR_DEVICE_ERROR; ++ goto out; ++ } ++ if (len > buffer_len) ++ abort(); ++ ++ if (pEncryptedData != NULL_PTR) ++ memcpy(pEncryptedData, buffer, len); ++ *pulEncryptedDataLen = len; ++ ++ out: ++ if (buffer) { ++ memset(buffer, 0, buffer_len); ++ free(buffer); ++ } ++ return ret; ++} ++ ++CK_RV ++C_EncryptUpdate(CK_SESSION_HANDLE hSession, ++ CK_BYTE_PTR pPart, ++ CK_ULONG ulPartLen, ++ CK_BYTE_PTR pEncryptedPart, ++ CK_ULONG_PTR pulEncryptedPartLen) ++{ ++ st_logf("EncryptUpdate\n"); ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++ ++CK_RV ++C_EncryptFinal(CK_SESSION_HANDLE hSession, ++ CK_BYTE_PTR pLastEncryptedPart, ++ CK_ULONG_PTR pulLastEncryptedPartLen) ++{ ++ st_logf("EncryptFinal\n"); ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++ ++/* C_DecryptInit initializes a decryption operation. */ ++CK_RV ++C_DecryptInit(CK_SESSION_HANDLE hSession, ++ CK_MECHANISM_PTR pMechanism, ++ CK_OBJECT_HANDLE hKey) ++{ ++ struct session_state *state; ++ CK_MECHANISM_TYPE mechs[] = { CKM_RSA_PKCS, CKM_RSA_X_509 }; ++ CK_BBOOL bool_true = CK_TRUE; ++ CK_ATTRIBUTE attr[] = { ++ { CKA_DECRYPT, &bool_true, sizeof(bool_true) } ++ }; ++ struct st_object *o; ++ CK_RV ret; ++ ++ st_logf("DecryptInit\n"); ++ VERIFY_SESSION_HANDLE(hSession, &state); ++ ++ ret = commonInit(attr, sizeof(attr)/sizeof(attr[0]), ++ mechs, sizeof(mechs)/sizeof(mechs[0]), ++ pMechanism, hKey, &o); ++ if (ret) ++ return ret; ++ ++ ret = dup_mechanism(&state->decrypt_mechanism, pMechanism); ++ if (ret == CKR_OK) ++ state->decrypt_object = OBJECT_ID(o); ++ ++ return CKR_OK; ++} ++ ++ ++CK_RV ++C_Decrypt(CK_SESSION_HANDLE hSession, ++ CK_BYTE_PTR pEncryptedData, ++ CK_ULONG ulEncryptedDataLen, ++ CK_BYTE_PTR pData, ++ CK_ULONG_PTR pulDataLen) ++{ ++ struct session_state *state; ++ struct st_object *o; ++ void *buffer = NULL; ++ CK_RV ret; ++ RSA *rsa; ++ int padding, len, buffer_len, padding_len; ++ ++ st_logf("Decrypt\n"); ++ ++ VERIFY_SESSION_HANDLE(hSession, &state); ++ ++ if (state->decrypt_object == -1) ++ return CKR_ARGUMENTS_BAD; ++ ++ o = soft_token.object.objs[state->decrypt_object]; ++ ++ if (o->u.private_key.key == NULL) { ++ st_logf("private key NULL\n"); ++ return CKR_ARGUMENTS_BAD; ++ } ++ ++ rsa = EVP_PKEY_get0_RSA(o->u.private_key.key); ++ if (rsa == NULL) ++ return CKR_ARGUMENTS_BAD; ++ ++ RSA_blinding_off(rsa); /* XXX RAND is broken while running in mozilla ? */ ++ ++ buffer_len = RSA_size(rsa); ++ ++ buffer = malloc(buffer_len); ++ if (buffer == NULL) { ++ ret = CKR_DEVICE_MEMORY; ++ goto out; ++ } ++ ++ ret = CKR_OK; ++ switch(state->decrypt_mechanism->mechanism) { ++ case CKM_RSA_PKCS: ++ padding = RSA_PKCS1_PADDING; ++ padding_len = RSA_PKCS1_PADDING_SIZE; ++ break; ++ case CKM_RSA_X_509: ++ padding = RSA_NO_PADDING; ++ padding_len = 0; ++ break; ++ default: ++ ret = CKR_FUNCTION_NOT_SUPPORTED; ++ goto out; ++ } ++ ++ if (buffer_len + padding_len < (long) ulEncryptedDataLen) { ++ ret = CKR_ARGUMENTS_BAD; ++ goto out; ++ } ++ ++ if (pulDataLen == NULL) { ++ st_logf("pulDataLen NULL\n"); ++ ret = CKR_ARGUMENTS_BAD; ++ goto out; ++ } ++ ++ if (pEncryptedData == NULL_PTR) { ++ st_logf("data NULL\n"); ++ ret = CKR_ARGUMENTS_BAD; ++ goto out; ++ } ++ ++ len = RSA_private_decrypt(ulEncryptedDataLen, pEncryptedData, buffer, ++ rsa, padding); ++ if (len <= 0) { ++ ret = CKR_DEVICE_ERROR; ++ goto out; ++ } ++ if (len > buffer_len) ++ abort(); ++ ++ if (pData != NULL_PTR) ++ memcpy(pData, buffer, len); ++ *pulDataLen = len; ++ ++ out: ++ if (buffer) { ++ memset(buffer, 0, buffer_len); ++ free(buffer); ++ } ++ return ret; ++} ++ ++ ++CK_RV ++C_DecryptUpdate(CK_SESSION_HANDLE hSession, ++ CK_BYTE_PTR pEncryptedPart, ++ CK_ULONG ulEncryptedPartLen, ++ CK_BYTE_PTR pPart, ++ CK_ULONG_PTR pulPartLen) ++ ++{ ++ st_logf("DecryptUpdate\n"); ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++ ++CK_RV ++C_DecryptFinal(CK_SESSION_HANDLE hSession, ++ CK_BYTE_PTR pLastPart, ++ CK_ULONG_PTR pulLastPartLen) ++{ ++ st_logf("DecryptFinal\n"); ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++CK_RV ++C_DigestInit(CK_SESSION_HANDLE hSession, ++ CK_MECHANISM_PTR pMechanism) ++{ ++ st_logf("DigestInit\n"); ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++CK_RV ++C_SignInit(CK_SESSION_HANDLE hSession, ++ CK_MECHANISM_PTR pMechanism, ++ CK_OBJECT_HANDLE hKey) ++{ ++ struct session_state *state; ++ CK_MECHANISM_TYPE mechs[] = { CKM_RSA_PKCS, CKM_RSA_X_509 }; ++ CK_BBOOL bool_true = CK_TRUE; ++ CK_ATTRIBUTE attr[] = { ++ { CKA_SIGN, &bool_true, sizeof(bool_true) } ++ }; ++ struct st_object *o; ++ CK_RV ret; ++ ++ st_logf("SignInit\n"); ++ VERIFY_SESSION_HANDLE(hSession, &state); ++ ++ ret = commonInit(attr, sizeof(attr)/sizeof(attr[0]), ++ mechs, sizeof(mechs)/sizeof(mechs[0]), ++ pMechanism, hKey, &o); ++ if (ret) ++ return ret; ++ ++ ret = dup_mechanism(&state->sign_mechanism, pMechanism); ++ if (ret == CKR_OK) ++ state->sign_object = OBJECT_ID(o); ++ ++ return CKR_OK; ++} ++ ++CK_RV ++C_Sign(CK_SESSION_HANDLE hSession, ++ CK_BYTE_PTR pData, ++ CK_ULONG ulDataLen, ++ CK_BYTE_PTR pSignature, ++ CK_ULONG_PTR pulSignatureLen) ++{ ++ struct session_state *state; ++ struct st_object *o; ++ void *buffer = NULL; ++ CK_RV ret; ++ RSA *rsa; ++ int padding, len, buffer_len; ++ size_t padding_len; ++ ++ st_logf("Sign\n"); ++ VERIFY_SESSION_HANDLE(hSession, &state); ++ ++ if (state->sign_object == -1) ++ return CKR_ARGUMENTS_BAD; ++ ++ o = soft_token.object.objs[state->sign_object]; ++ ++ if (o->u.private_key.key == NULL) { ++ st_logf("private key NULL\n"); ++ return CKR_ARGUMENTS_BAD; ++ } ++ ++ rsa = EVP_PKEY_get0_RSA(o->u.private_key.key); ++ if (rsa == NULL) ++ return CKR_ARGUMENTS_BAD; ++ ++ RSA_blinding_off(rsa); /* XXX RAND is broken while running in mozilla ? */ ++ ++ buffer_len = RSA_size(rsa); ++ ++ buffer = malloc(buffer_len); ++ if (buffer == NULL) { ++ ret = CKR_DEVICE_MEMORY; ++ goto out; ++ } ++ ++ switch(state->sign_mechanism->mechanism) { ++ case CKM_RSA_PKCS: ++ padding = RSA_PKCS1_PADDING; ++ padding_len = RSA_PKCS1_PADDING_SIZE; ++ break; ++ case CKM_RSA_X_509: ++ padding = RSA_NO_PADDING; ++ padding_len = 0; ++ break; ++ default: ++ ret = CKR_FUNCTION_NOT_SUPPORTED; ++ goto out; ++ } ++ ++ if ((size_t) buffer_len < ulDataLen + padding_len) { ++ ret = CKR_ARGUMENTS_BAD; ++ goto out; ++ } ++ ++ if (pulSignatureLen == NULL) { ++ st_logf("signature len NULL\n"); ++ ret = CKR_ARGUMENTS_BAD; ++ goto out; ++ } ++ ++ if (pData == NULL_PTR) { ++ st_logf("data NULL\n"); ++ ret = CKR_ARGUMENTS_BAD; ++ goto out; ++ } ++ ++ len = RSA_private_encrypt(ulDataLen, pData, buffer, rsa, padding); ++ st_logf("private encrypt done\n"); ++ if (len <= 0) { ++ ret = CKR_DEVICE_ERROR; ++ goto out; ++ } ++ if (len > buffer_len) ++ abort(); ++ ++ if (pSignature != NULL_PTR) ++ memcpy(pSignature, buffer, len); ++ *pulSignatureLen = len; ++ ++ ret = CKR_OK; ++ ++ out: ++ if (buffer) { ++ memset(buffer, 0, buffer_len); ++ free(buffer); ++ } ++ return ret; ++} ++ ++CK_RV ++C_SignUpdate(CK_SESSION_HANDLE hSession, ++ CK_BYTE_PTR pPart, ++ CK_ULONG ulPartLen) ++{ ++ st_logf("SignUpdate\n"); ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++ ++CK_RV ++C_SignFinal(CK_SESSION_HANDLE hSession, ++ CK_BYTE_PTR pSignature, ++ CK_ULONG_PTR pulSignatureLen) ++{ ++ st_logf("SignUpdate\n"); ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++CK_RV ++C_VerifyInit(CK_SESSION_HANDLE hSession, ++ CK_MECHANISM_PTR pMechanism, ++ CK_OBJECT_HANDLE hKey) ++{ ++ struct session_state *state; ++ CK_MECHANISM_TYPE mechs[] = { CKM_RSA_PKCS, CKM_RSA_X_509 }; ++ CK_BBOOL bool_true = CK_TRUE; ++ CK_ATTRIBUTE attr[] = { ++ { CKA_VERIFY, &bool_true, sizeof(bool_true) } ++ }; ++ struct st_object *o; ++ CK_RV ret; ++ ++ st_logf("VerifyInit\n"); ++ VERIFY_SESSION_HANDLE(hSession, &state); ++ ++ ret = commonInit(attr, sizeof(attr)/sizeof(attr[0]), ++ mechs, sizeof(mechs)/sizeof(mechs[0]), ++ pMechanism, hKey, &o); ++ if (ret) ++ return ret; ++ ++ ret = dup_mechanism(&state->verify_mechanism, pMechanism); ++ if (ret == CKR_OK) ++ state->verify_object = OBJECT_ID(o); ++ ++ return ret; ++} ++ ++CK_RV ++C_Verify(CK_SESSION_HANDLE hSession, ++ CK_BYTE_PTR pData, ++ CK_ULONG ulDataLen, ++ CK_BYTE_PTR pSignature, ++ CK_ULONG ulSignatureLen) ++{ ++ struct session_state *state; ++ struct st_object *o; ++ void *buffer = NULL; ++ CK_RV ret; ++ RSA *rsa; ++ int padding, len, buffer_len; ++ ++ st_logf("Verify\n"); ++ VERIFY_SESSION_HANDLE(hSession, &state); ++ ++ if (state->verify_object == -1) ++ return CKR_ARGUMENTS_BAD; ++ ++ o = soft_token.object.objs[state->verify_object]; ++ ++ if (o->u.public_key == NULL) { ++ st_logf("public key NULL\n"); ++ return CKR_ARGUMENTS_BAD; ++ } ++ ++ rsa = EVP_PKEY_get0_RSA(o->u.public_key); ++ if (rsa == NULL) ++ return CKR_ARGUMENTS_BAD; ++ ++ RSA_blinding_off(rsa); /* XXX RAND is broken while running in mozilla ? */ ++ ++ buffer_len = RSA_size(rsa); ++ ++ buffer = malloc(buffer_len); ++ if (buffer == NULL) { ++ ret = CKR_DEVICE_MEMORY; ++ goto out; ++ } ++ ++ ret = CKR_OK; ++ switch(state->verify_mechanism->mechanism) { ++ case CKM_RSA_PKCS: ++ padding = RSA_PKCS1_PADDING; ++ break; ++ case CKM_RSA_X_509: ++ padding = RSA_NO_PADDING; ++ break; ++ default: ++ ret = CKR_FUNCTION_NOT_SUPPORTED; ++ goto out; ++ } ++ ++ if (buffer_len < (long) ulDataLen) { ++ ret = CKR_ARGUMENTS_BAD; ++ goto out; ++ } ++ ++ if (pSignature == NULL) { ++ st_logf("signature NULL\n"); ++ ret = CKR_ARGUMENTS_BAD; ++ goto out; ++ } ++ ++ if (pData == NULL_PTR) { ++ st_logf("data NULL\n"); ++ ret = CKR_ARGUMENTS_BAD; ++ goto out; ++ } ++ ++ len = RSA_public_decrypt(ulDataLen, pData, buffer, rsa, padding); ++ st_logf("private encrypt done\n"); ++ if (len <= 0) { ++ ret = CKR_DEVICE_ERROR; ++ goto out; ++ } ++ if (len > buffer_len) ++ abort(); ++ ++ if ((size_t) len != ulSignatureLen) { ++ ret = CKR_GENERAL_ERROR; ++ goto out; ++ } ++ ++ if (memcmp(pSignature, buffer, len) != 0) { ++ ret = CKR_GENERAL_ERROR; ++ goto out; ++ } ++ ++ out: ++ if (buffer) { ++ memset(buffer, 0, buffer_len); ++ free(buffer); ++ } ++ return ret; ++} ++ ++ ++CK_RV ++C_VerifyUpdate(CK_SESSION_HANDLE hSession, ++ CK_BYTE_PTR pPart, ++ CK_ULONG ulPartLen) ++{ ++ st_logf("VerifyUpdate\n"); ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++CK_RV ++C_VerifyFinal(CK_SESSION_HANDLE hSession, ++ CK_BYTE_PTR pSignature, ++ CK_ULONG ulSignatureLen) ++{ ++ st_logf("VerifyFinal\n"); ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++CK_RV ++C_GenerateRandom(CK_SESSION_HANDLE hSession, ++ CK_BYTE_PTR RandomData, ++ CK_ULONG ulRandomLen) ++{ ++ st_logf("GenerateRandom\n"); ++ VERIFY_SESSION_HANDLE(hSession, NULL); ++ return CKR_FUNCTION_NOT_SUPPORTED; ++} ++ ++ ++CK_FUNCTION_LIST funcs = { ++ { 2, 11 }, ++ C_Initialize, ++ C_Finalize, ++ C_GetInfo, ++ C_GetFunctionList, ++ C_GetSlotList, ++ C_GetSlotInfo, ++ C_GetTokenInfo, ++ C_GetMechanismList, ++ C_GetMechanismInfo, ++ C_InitToken, ++ (void *)func_not_supported, /* C_InitPIN */ ++ (void *)func_not_supported, /* C_SetPIN */ ++ C_OpenSession, ++ C_CloseSession, ++ C_CloseAllSessions, ++ C_GetSessionInfo, ++ (void *)func_not_supported, /* C_GetOperationState */ ++ (void *)func_not_supported, /* C_SetOperationState */ ++ C_Login, ++ C_Logout, ++ (void *)func_not_supported, /* C_CreateObject */ ++ (void *)func_not_supported, /* C_CopyObject */ ++ (void *)func_not_supported, /* C_DestroyObject */ ++ (void *)func_not_supported, /* C_GetObjectSize */ ++ C_GetAttributeValue, ++ (void *)func_not_supported, /* C_SetAttributeValue */ ++ C_FindObjectsInit, ++ C_FindObjects, ++ C_FindObjectsFinal, ++ C_EncryptInit, ++ C_Encrypt, ++ C_EncryptUpdate, ++ C_EncryptFinal, ++ C_DecryptInit, ++ C_Decrypt, ++ C_DecryptUpdate, ++ C_DecryptFinal, ++ C_DigestInit, ++ (void *)func_not_supported, /* C_Digest */ ++ (void *)func_not_supported, /* C_DigestUpdate */ ++ (void *)func_not_supported, /* C_DigestKey */ ++ (void *)func_not_supported, /* C_DigestFinal */ ++ C_SignInit, ++ C_Sign, ++ C_SignUpdate, ++ C_SignFinal, ++ (void *)func_not_supported, /* C_SignRecoverInit */ ++ (void *)func_not_supported, /* C_SignRecover */ ++ C_VerifyInit, ++ C_Verify, ++ C_VerifyUpdate, ++ C_VerifyFinal, ++ (void *)func_not_supported, /* C_VerifyRecoverInit */ ++ (void *)func_not_supported, /* C_VerifyRecover */ ++ (void *)func_not_supported, /* C_DigestEncryptUpdate */ ++ (void *)func_not_supported, /* C_DecryptDigestUpdate */ ++ (void *)func_not_supported, /* C_SignEncryptUpdate */ ++ (void *)func_not_supported, /* C_DecryptVerifyUpdate */ ++ (void *)func_not_supported, /* C_GenerateKey */ ++ (void *)func_not_supported, /* C_GenerateKeyPair */ ++ (void *)func_not_supported, /* C_WrapKey */ ++ (void *)func_not_supported, /* C_UnwrapKey */ ++ (void *)func_not_supported, /* C_DeriveKey */ ++ (void *)func_not_supported, /* C_SeedRandom */ ++ C_GenerateRandom, ++ (void *)func_not_supported, /* C_GetFunctionStatus */ ++ (void *)func_not_supported, /* C_CancelFunction */ ++ (void *)func_not_supported /* C_WaitForSlotEvent */ ++}; +diff --git a/regress/unittests/Makefile b/regress/unittests/Makefile +index e464b085..a0e5a37c 100644 +--- a/regress/unittests/Makefile ++++ b/regress/unittests/Makefile +@@ -2,6 +2,6 @@ + + REGRESS_FAIL_EARLY?= yes + SUBDIR= test_helper sshbuf sshkey bitmap kex hostkeys utf8 match conversion +-SUBDIR+=authopt ++SUBDIR+=pkcs11 authopt + + .include +diff --git a/regress/unittests/pkcs11/Makefile b/regress/unittests/pkcs11/Makefile +new file mode 100644 +index 00000000..481b13d0 +--- /dev/null ++++ b/regress/unittests/pkcs11/Makefile +@@ -0,0 +1,9 @@ ++ ++PROG=test_pkcs11 ++SRCS=tests.c ++REGRESS_TARGETS=run-regress-${PROG} ++ ++run-regress-${PROG}: ${PROG} ++ env ${TEST_ENV} ./${PROG} ++ ++.include +diff --git a/regress/unittests/pkcs11/tests.c b/regress/unittests/pkcs11/tests.c +new file mode 100644 +index 00000000..e83aca54 +--- /dev/null ++++ b/regress/unittests/pkcs11/tests.c +@@ -0,0 +1,330 @@ ++/* ++ * Copyright (c) 2017 Red Hat ++ * ++ * Authors: Jakub Jelen ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++#include "includes.h" ++ ++#include ++#include ++ ++#include "../test_helper/test_helper.h" ++ ++#include "sshbuf.h" ++#include "ssh-pkcs11-uri.h" ++ ++#define EMPTY_URI compose_uri(NULL, 0, NULL, NULL, NULL, NULL, NULL) ++ ++/* prototypes are not public -- specify them here internally for tests */ ++struct sshbuf *percent_encode(const char *, size_t, char *); ++int percent_decode(char *, char **); ++ ++void ++compare_uri(struct pkcs11_uri *a, struct pkcs11_uri *b) ++{ ++ ASSERT_PTR_NE(a, NULL); ++ ASSERT_PTR_NE(b, NULL); ++ ASSERT_SIZE_T_EQ(a->id_len, b->id_len); ++ ASSERT_MEM_EQ(a->id, b->id, a->id_len); ++ if (b->object != NULL) ++ ASSERT_STRING_EQ(a->object, b->object); ++ else /* both should be null */ ++ ASSERT_PTR_EQ(a->object, b->object); ++ if (b->module_path != NULL) ++ ASSERT_STRING_EQ(a->module_path, b->module_path); ++ else /* both should be null */ ++ ASSERT_PTR_EQ(a->module_path, b->module_path); ++ if (b->token != NULL) ++ ASSERT_STRING_EQ(a->token, b->token); ++ else /* both should be null */ ++ ASSERT_PTR_EQ(a->token, b->token); ++ if (b->manuf != NULL) ++ ASSERT_STRING_EQ(a->manuf, b->manuf); ++ else /* both should be null */ ++ ASSERT_PTR_EQ(a->manuf, b->manuf); ++ if (b->lib_manuf != NULL) ++ ASSERT_STRING_EQ(a->lib_manuf, b->lib_manuf); ++ else /* both should be null */ ++ ASSERT_PTR_EQ(a->lib_manuf, b->lib_manuf); ++} ++ ++void ++check_parse_rv(char *uri, struct pkcs11_uri *expect, int expect_rv) ++{ ++ char *buf = NULL, *str; ++ struct pkcs11_uri *pkcs11uri = NULL; ++ int rv; ++ ++ if (expect_rv == 0) ++ str = "Valid"; ++ else ++ str = "Invalid"; ++ asprintf(&buf, "%s PKCS#11 URI parsing: %s", str, uri); ++ TEST_START(buf); ++ free(buf); ++ pkcs11uri = pkcs11_uri_init(); ++ rv = pkcs11_uri_parse(uri, pkcs11uri); ++ ASSERT_INT_EQ(rv, expect_rv); ++ if (rv == 0) /* in case of failure result is undefined */ ++ compare_uri(pkcs11uri, expect); ++ pkcs11_uri_cleanup(pkcs11uri); ++ free(expect); ++ TEST_DONE(); ++} ++ ++void ++check_parse(char *uri, struct pkcs11_uri *expect) ++{ ++ check_parse_rv(uri, expect, 0); ++} ++ ++struct pkcs11_uri * ++compose_uri(unsigned char *id, size_t id_len, char *token, char *lib_manuf, ++ char *manuf, char *module_path, char *object) ++{ ++ struct pkcs11_uri *uri = pkcs11_uri_init(); ++ if (id_len > 0) { ++ uri->id_len = id_len; ++ uri->id = id; ++ } ++ uri->module_path = module_path; ++ uri->token = token; ++ uri->lib_manuf = lib_manuf; ++ uri->manuf = manuf; ++ uri->object = object; ++ return uri; ++} ++ ++static void ++test_parse_valid(void) ++{ ++ /* path arguments */ ++ check_parse("pkcs11:id=%01", ++ compose_uri("\x01", 1, NULL, NULL, NULL, NULL, NULL)); ++ check_parse("pkcs11:id=%00%01", ++ compose_uri("\x00\x01", 2, NULL, NULL, NULL, NULL, NULL)); ++ check_parse("pkcs11:token=SSH%20Keys", ++ compose_uri(NULL, 0, "SSH Keys", NULL, NULL, NULL, NULL)); ++ check_parse("pkcs11:library-manufacturer=OpenSC", ++ compose_uri(NULL, 0, NULL, "OpenSC", NULL, NULL, NULL)); ++ check_parse("pkcs11:manufacturer=piv_II", ++ compose_uri(NULL, 0, NULL, NULL, "piv_II", NULL, NULL)); ++ check_parse("pkcs11:object=SIGN%20Key", ++ compose_uri(NULL, 0, NULL, NULL, NULL, NULL, "SIGN Key")); ++ /* query arguments */ ++ check_parse("pkcs11:?module-path=/usr/lib64/p11-kit-proxy.so", ++ compose_uri(NULL, 0, NULL, NULL, NULL, "/usr/lib64/p11-kit-proxy.so", NULL)); ++ ++ /* combinations */ ++ /* ID SHOULD be percent encoded */ ++ check_parse("pkcs11:token=SSH%20Key;id=0", ++ compose_uri("0", 1, "SSH Key", NULL, NULL, NULL, NULL)); ++ check_parse( ++ "pkcs11:manufacturer=CAC?module-path=/usr/lib64/p11-kit-proxy.so", ++ compose_uri(NULL, 0, NULL, NULL, "CAC", ++ "/usr/lib64/p11-kit-proxy.so", NULL)); ++ check_parse( ++ "pkcs11:object=RSA%20Key?module-path=/usr/lib64/pkcs11/opencryptoki.so", ++ compose_uri(NULL, 0, NULL, NULL, NULL, ++ "/usr/lib64/pkcs11/opencryptoki.so", "RSA Key")); ++ ++ /* empty path component matches everything */ ++ check_parse("pkcs11:", EMPTY_URI); ++ ++ /* empty string is a valid to match against (and different from NULL) */ ++ check_parse("pkcs11:token=", ++ compose_uri(NULL, 0, "", NULL, NULL, NULL, NULL)); ++ /* Percent character needs to be percent-encoded */ ++ check_parse("pkcs11:token=%25", ++ compose_uri(NULL, 0, "%", NULL, NULL, NULL, NULL)); ++} ++ ++static void ++test_parse_invalid(void) ++{ ++ /* Invalid percent encoding */ ++ check_parse_rv("pkcs11:id=%0", EMPTY_URI, -1); ++ /* Invalid percent encoding */ ++ check_parse_rv("pkcs11:id=%ZZ", EMPTY_URI, -1); ++ /* Space MUST be percent encoded -- XXX not enforced yet */ ++ check_parse("pkcs11:token=SSH Keys", ++ compose_uri(NULL, 0, "SSH Keys", NULL, NULL, NULL, NULL)); ++ /* MUST NOT contain duplicate attributes of the same name */ ++ check_parse_rv("pkcs11:id=%01;id=%02", EMPTY_URI, -1); ++ /* Unrecognized attribute in path SHOULD be error */ ++ check_parse_rv("pkcs11:key_name=SSH", EMPTY_URI, -1); ++ /* Unrecognized attribute in query SHOULD be ignored */ ++ check_parse("pkcs11:?key_name=SSH", EMPTY_URI); ++} ++ ++void ++check_gen(char *expect, struct pkcs11_uri *uri) ++{ ++ char *buf = NULL, *uri_str; ++ ++ asprintf(&buf, "Valid PKCS#11 URI generation: %s", expect); ++ TEST_START(buf); ++ free(buf); ++ uri_str = pkcs11_uri_get(uri); ++ ASSERT_PTR_NE(uri_str, NULL); ++ ASSERT_STRING_EQ(uri_str, expect); ++ free(uri_str); ++ TEST_DONE(); ++} ++ ++static void ++test_generate_valid(void) ++{ ++ /* path arguments */ ++ check_gen("pkcs11:id=%01", ++ compose_uri("\x01", 1, NULL, NULL, NULL, NULL, NULL)); ++ check_gen("pkcs11:id=%00%01", ++ compose_uri("\x00\x01", 2, NULL, NULL, NULL, NULL, NULL)); ++ check_gen("pkcs11:token=SSH%20Keys", /* space must be percent encoded */ ++ compose_uri(NULL, 0, "SSH Keys", NULL, NULL, NULL, NULL)); ++ /* library-manufacturer is not implmented now */ ++ /*check_gen("pkcs11:library-manufacturer=OpenSC", ++ compose_uri(NULL, 0, NULL, "OpenSC", NULL, NULL, NULL));*/ ++ check_gen("pkcs11:manufacturer=piv_II", ++ compose_uri(NULL, 0, NULL, NULL, "piv_II", NULL, NULL)); ++ check_gen("pkcs11:object=RSA%20Key", ++ compose_uri(NULL, 0, NULL, NULL, NULL, NULL, "RSA Key")); ++ /* query arguments */ ++ check_gen("pkcs11:?module-path=/usr/lib64/p11-kit-proxy.so", ++ compose_uri(NULL, 0, NULL, NULL, NULL, "/usr/lib64/p11-kit-proxy.so", NULL)); ++ ++ /* combinations */ ++ check_gen("pkcs11:id=%02;token=SSH%20Keys", ++ compose_uri("\x02", 1, "SSH Keys", NULL, NULL, NULL, NULL)); ++ check_gen("pkcs11:id=%EE%02?module-path=/usr/lib64/p11-kit-proxy.so", ++ compose_uri("\xEE\x02", 2, NULL, NULL, NULL, "/usr/lib64/p11-kit-proxy.so", NULL)); ++ check_gen("pkcs11:object=Encryption%20Key;manufacturer=piv_II", ++ compose_uri(NULL, 0, NULL, NULL, "piv_II", NULL, "Encryption Key")); ++ ++ /* empty path component matches everything */ ++ check_gen("pkcs11:", EMPTY_URI); ++ ++} ++ ++void ++check_encode(char *source, size_t len, char *whitelist, char *expect) ++{ ++ char *buf = NULL; ++ struct sshbuf *b; ++ ++ asprintf(&buf, "percent_encode: expected %s", expect); ++ TEST_START(buf); ++ free(buf); ++ ++ b = percent_encode(source, len, whitelist); ++ ASSERT_STRING_EQ(sshbuf_ptr(b), expect); ++ sshbuf_free(b); ++ TEST_DONE(); ++} ++ ++static void ++test_percent_encode_multibyte(void) ++{ ++ /* SHOULD be encoded as octets according to the UTF-8 character encoding */ ++ ++ /* multi-byte characters are "for free" */ ++ check_encode("$", 1, "", "%24"); ++ check_encode("¢", 2, "", "%C2%A2"); ++ check_encode("€", 3, "", "%E2%82%AC"); ++ check_encode("𐍈", 4, "", "%F0%90%8D%88"); ++ ++ /* CK_UTF8CHAR is unsigned char (1 byte) */ ++ /* labels SHOULD be normalized to NFC [UAX15] */ ++ ++} ++ ++static void ++test_percent_encode(void) ++{ ++ /* Without whitelist encodes everything (for CKA_ID) */ ++ check_encode("A*", 2, "", "%41%2A"); ++ check_encode("\x00", 1, "", "%00"); ++ check_encode("\x7F", 1, "", "%7F"); ++ check_encode("\x80", 1, "", "%80"); ++ check_encode("\xff", 1, "", "%FF"); ++ ++ /* Default whitelist encodes anything but safe letters */ ++ check_encode("test" "\x00" "0alpha", 11, PKCS11_URI_WHITELIST, ++ "test%000alpha"); ++ check_encode(" ", 1, PKCS11_URI_WHITELIST, ++ "%20"); /* Space MUST be percent encoded */ ++ check_encode("/", 1, PKCS11_URI_WHITELIST, ++ "%2F"); /* '/' delimiter MUST be percent encoded (in the path) */ ++ check_encode("?", 1, PKCS11_URI_WHITELIST, ++ "%3F"); /* delimiter '?' MUST be percent encoded (in the path) */ ++ check_encode("#", 1, PKCS11_URI_WHITELIST, ++ "%23"); /* '#' MUST be always percent encoded */ ++ check_encode("key=value;separator?query&#anch", 35, PKCS11_URI_WHITELIST, ++ "key%3Dvalue%3Bseparator%3Fquery%26amp%3B%23anch"); ++ ++ /* Components in query can have '/' unencoded (useful for paths) */ ++ check_encode("/path/to.file", 13, PKCS11_URI_WHITELIST "/", ++ "/path/to.file"); ++} ++ ++void ++check_decode(char *source, char *expect, int expect_len) ++{ ++ char *buf = NULL, *out = NULL; ++ int rv; ++ ++ asprintf(&buf, "percent_decode: %s", source); ++ TEST_START(buf); ++ free(buf); ++ ++ rv = percent_decode(source, &out); ++ ASSERT_INT_EQ(rv, expect_len); ++ if (rv >= 0) ++ ASSERT_MEM_EQ(out, expect, expect_len); ++ free(out); ++ TEST_DONE(); ++} ++ ++static void ++test_percent_decode(void) ++{ ++ /* simple valid cases */ ++ check_decode("%00", "\x00", 1); ++ check_decode("%FF", "\xFF", 1); ++ ++ /* normal strings shold be kept intact */ ++ check_decode("strings are left", "strings are left", 16); ++ check_decode("10%25 of trees", "10% of trees", 12); ++ ++ /* make sure no more than 2 bytes are parsed */ ++ check_decode("%222", "\x22" "2", 2); ++ ++ /* invalid expects failure */ ++ check_decode("%0", "", -1); ++ check_decode("%Z", "", -1); ++ check_decode("%FG", "", -1); ++} ++ ++void ++tests(void) ++{ ++ test_percent_encode(); ++ test_percent_encode_multibyte(); ++ test_percent_decode(); ++ test_parse_valid(); ++ test_parse_invalid(); ++ test_generate_valid(); ++} +diff --git a/ssh-add.c b/ssh-add.c +index adcc4599..e4fd5623 100644 +--- a/ssh-add.c ++++ b/ssh-add.c +@@ -64,6 +64,7 @@ + #include "misc.h" + #include "ssherr.h" + #include "digest.h" ++#include "ssh-pkcs11-uri.h" + + /* argv0 */ + extern char *__progname; +@@ -188,6 +189,24 @@ delete_all(int agent_fd) + return ret; + } + ++#ifdef ENABLE_PKCS11 ++static int update_card(int, int, const char *); ++ ++int ++update_pkcs11_uri(int agent_fd, int adding, const char *pkcs11_uri) ++{ ++ struct pkcs11_uri *uri; ++ ++ /* dry-run parse to make sure the URI is valid and to report errors */ ++ uri = pkcs11_uri_init(); ++ if (pkcs11_uri_parse((char *) pkcs11_uri, uri) != 0) ++ fatal("Failed to parse PKCS#11 URI"); ++ pkcs11_uri_cleanup(uri); ++ ++ return update_card(agent_fd, adding, pkcs11_uri); ++} ++#endif ++ + static int + add_file(int agent_fd, const char *filename, int key_only, int qflag) + { +@@ -480,6 +499,13 @@ lock_agent(int agent_fd, int lock) + static int + do_file(int agent_fd, int deleting, int key_only, char *file, int qflag) + { ++#ifdef ENABLE_PKCS11 ++ if (strlen(file) >= strlen(PKCS11_URI_SCHEME) && ++ strncmp(file, PKCS11_URI_SCHEME, ++ strlen(PKCS11_URI_SCHEME)) == 0) { ++ return update_pkcs11_uri(agent_fd, !deleting, file); ++ } ++#endif + if (deleting) { + if (delete_file(agent_fd, file, key_only, qflag) == -1) + return -1; +diff --git a/ssh-agent.c b/ssh-agent.c +index 2a4578b0..f6c86240 100644 +--- a/ssh-agent.c ++++ b/ssh-agent.c +@@ -546,10 +546,72 @@ no_identities(SocketEntry *e) + } + + #ifdef ENABLE_PKCS11 ++static char * ++sanitize_pkcs11_provider(const char *provider) ++{ ++ struct pkcs11_uri *uri = NULL; ++ char *sane_uri, *module_path = NULL; /* default path */ ++ char canonical_provider[PATH_MAX]; ++ ++ if (provider == NULL) ++ return NULL; ++ ++ if (strlen(provider) >= strlen(PKCS11_URI_SCHEME) && ++ strncmp(provider, PKCS11_URI_SCHEME, ++ strlen(PKCS11_URI_SCHEME)) == 0) { ++ /* PKCS#11 URI */ ++ uri = pkcs11_uri_init(); ++ if (uri == NULL) { ++ error("Failed to init PCKS#11 URI"); ++ return NULL; ++ } ++ ++ if (pkcs11_uri_parse(provider, uri) != 0) { ++ error("Failed to parse PKCS#11 URI"); ++ return NULL; ++ } ++ /* validate also provider from URI */ ++ if (uri->module_path) ++ module_path = strdup(uri->module_path); ++ } else ++ module_path = strdup(provider); /* simple path */ ++ ++ if (module_path != NULL) { /* do not validate default NULL path in URI */ ++ if (realpath(module_path, canonical_provider) == NULL) { ++ verbose("failed PKCS#11 provider \"%.100s\": realpath: %s", ++ module_path, strerror(errno)); ++ free(module_path); ++ pkcs11_uri_cleanup(uri); ++ return NULL; ++ } ++ free(module_path); ++ if (match_pattern_list(canonical_provider, pkcs11_whitelist, 0) != 1) { ++ verbose("refusing PKCS#11 provider \"%.100s\": " ++ "not whitelisted", canonical_provider); ++ pkcs11_uri_cleanup(uri); ++ return NULL; ++ } ++ ++ /* copy verified and sanitized provider path back to the uri */ ++ if (uri) { ++ free(uri->module_path); ++ uri->module_path = xstrdup(canonical_provider); ++ } ++ } ++ ++ if (uri) { ++ sane_uri = pkcs11_uri_get(uri); ++ pkcs11_uri_cleanup(uri); ++ return sane_uri; ++ } else { ++ return xstrdup(canonical_provider); /* simple path */ ++ } ++} ++ + static void + process_add_smartcard_key(SocketEntry *e) + { +- char *provider = NULL, *pin = NULL, canonical_provider[PATH_MAX]; ++ char *provider = NULL, *pin = NULL, *sane_uri = NULL; + int r, i, count = 0, success = 0, confirm = 0; + u_int seconds; + time_t death = 0; +@@ -585,28 +645,23 @@ process_add_smartcard_key(SocketEntry *e) + goto send; + } + } +- if (realpath(provider, canonical_provider) == NULL) { +- verbose("failed PKCS#11 add of \"%.100s\": realpath: %s", +- provider, strerror(errno)); +- goto send; +- } +- if (match_pattern_list(canonical_provider, pkcs11_whitelist, 0) != 1) { +- verbose("refusing PKCS#11 add of \"%.100s\": " +- "provider not whitelisted", canonical_provider); ++ ++ sane_uri = sanitize_pkcs11_provider(provider); ++ if (sane_uri == NULL) + goto send; +- } +- debug("%s: add %.100s", __func__, canonical_provider); ++ + if (lifetime && !death) + death = monotime() + lifetime; + +- count = pkcs11_add_provider(canonical_provider, pin, &keys); ++ debug("%s: add %.100s", __func__, sane_uri); ++ count = pkcs11_add_provider(sane_uri, pin, &keys); + for (i = 0; i < count; i++) { + k = keys[i]; + if (lookup_identity(k) == NULL) { + id = xcalloc(1, sizeof(Identity)); + id->key = k; +- id->provider = xstrdup(canonical_provider); +- id->comment = xstrdup(canonical_provider); /* XXX */ ++ id->provider = xstrdup(sane_uri); ++ id->comment = xstrdup(sane_uri); + id->death = death; + id->confirm = confirm; + TAILQ_INSERT_TAIL(&idtab->idlist, id, next); +@@ -620,6 +675,7 @@ process_add_smartcard_key(SocketEntry *e) + send: + free(pin); + free(provider); ++ free(sane_uri); + free(keys); + send_status(e, success); + } +@@ -627,7 +683,7 @@ send: + static void + process_remove_smartcard_key(SocketEntry *e) + { +- char *provider = NULL, *pin = NULL, canonical_provider[PATH_MAX]; ++ char *provider = NULL, *pin = NULL, *sane_uri = NULL; + int r, success = 0; + Identity *id, *nxt; + +@@ -638,30 +694,29 @@ process_remove_smartcard_key(SocketEntry *e) + } + free(pin); + +- if (realpath(provider, canonical_provider) == NULL) { +- verbose("failed PKCS#11 add of \"%.100s\": realpath: %s", +- provider, strerror(errno)); ++ sane_uri = sanitize_pkcs11_provider(provider); ++ if (sane_uri == NULL) + goto send; +- } + +- debug("%s: remove %.100s", __func__, canonical_provider); ++ debug("%s: remove %.100s", __func__, sane_uri); + for (id = TAILQ_FIRST(&idtab->idlist); id; id = nxt) { + nxt = TAILQ_NEXT(id, next); + /* Skip file--based keys */ + if (id->provider == NULL) + continue; +- if (!strcmp(canonical_provider, id->provider)) { ++ if (!strcmp(sane_uri, id->provider)) { + TAILQ_REMOVE(&idtab->idlist, id, next); + free_identity(id); + idtab->nentries--; + } + } +- if (pkcs11_del_provider(canonical_provider) == 0) ++ if (pkcs11_del_provider(sane_uri) == 0) + success = 1; + else + error("%s: pkcs11_del_provider failed", __func__); + send: + free(provider); ++ free(sane_uri); + send_status(e, success); + } + #endif /* ENABLE_PKCS11 */ +diff --git a/ssh-keygen.c b/ssh-keygen.c +index d1ffc30c..00e38049 100644 +--- a/ssh-keygen.c ++++ b/ssh-keygen.c +@@ -820,6 +820,7 @@ do_download(struct passwd *pw) + free(fp); + } else { + (void) sshkey_write(keys[i], stdout); /* XXX check */ ++ (void) pkcs11_uri_write(keys[i], stdout); + fprintf(stdout, "\n"); + } + sshkey_free(keys[i]); +diff --git a/ssh-pkcs11-client.c b/ssh-pkcs11-client.c +index a023f5f4..882e8381 100644 +--- a/ssh-pkcs11-client.c ++++ b/ssh-pkcs11-client.c +@@ -117,6 +117,7 @@ pkcs11_rsa_private_encrypt(int flen, const u_char *from, u_char *to, RSA *rsa, + return (-1); + key.type = KEY_RSA; + key.rsa = rsa; ++ key.ecdsa_nid = 0; + if ((r = sshkey_to_blob(&key, &blob, &blen)) != 0) { + error("%s: sshkey_to_blob: %s", __func__, ssh_err(r)); + return -1; +@@ -195,6 +196,8 @@ pkcs11_add_provider(char *name, char *pin, Key ***keysp) + u_int nkeys, i; + struct sshbuf *msg; + ++ debug("%s: called, name = %s", __func__, name); ++ + if (fd < 0 && pkcs11_start_helper() < 0) + return (-1); + +@@ -208,6 +211,7 @@ pkcs11_add_provider(char *name, char *pin, Key ***keysp) + if ((r = sshbuf_get_u32(msg, &nkeys)) != 0) + fatal("%s: buffer error: %s", __func__, ssh_err(r)); + *keysp = xcalloc(nkeys, sizeof(struct sshkey *)); ++ debug("%s: nkeys = %u", __func__, nkeys); + for (i = 0; i < nkeys; i++) { + /* XXX clean up properly instead of fatal() */ + if ((r = sshbuf_get_string(msg, &blob, &blen)) != 0 || +diff --git a/ssh-pkcs11-uri.c b/ssh-pkcs11-uri.c +new file mode 100644 +index 00000000..da15c164 +--- /dev/null ++++ b/ssh-pkcs11-uri.c +@@ -0,0 +1,395 @@ ++/* ++ * Copyright (c) 2017 Red Hat ++ * ++ * Authors: Jakub Jelen ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++#include "includes.h" ++ ++#ifdef ENABLE_PKCS11 ++ ++#include ++#include ++ ++#include "sshkey.h" ++#include "sshbuf.h" ++#include "log.h" ++ ++#define CRYPTOKI_COMPAT ++#include "pkcs11.h" ++ ++#include "ssh-pkcs11-uri.h" ++ ++#define PKCS11_URI_PATH_SEPARATOR ";" ++#define PKCS11_URI_QUERY_SEPARATOR "&" ++#define PKCS11_URI_VALUE_SEPARATOR "=" ++#define PKCS11_URI_ID "id" ++#define PKCS11_URI_TOKEN "token" ++#define PKCS11_URI_OBJECT "object" ++#define PKCS11_URI_LIB_MANUF "library-manufacturer" ++#define PKCS11_URI_MANUF "manufacturer" ++#define PKCS11_URI_MODULE_PATH "module-path" ++ ++/* Keyword tokens. */ ++typedef enum { ++ pId, pToken, pObject, pLibraryManufacturer, pManufacturer, pModulePath, ++ pBadOption ++} pkcs11uriOpCodes; ++ ++/* Textual representation of the tokens. */ ++static struct { ++ const char *name; ++ pkcs11uriOpCodes opcode; ++} keywords[] = { ++ { PKCS11_URI_ID, pId }, ++ { PKCS11_URI_TOKEN, pToken }, ++ { PKCS11_URI_OBJECT, pObject }, ++ { PKCS11_URI_LIB_MANUF, pLibraryManufacturer }, ++ { PKCS11_URI_MANUF, pManufacturer }, ++ { PKCS11_URI_MODULE_PATH, pModulePath }, ++ { NULL, pBadOption } ++}; ++ ++static pkcs11uriOpCodes ++parse_token(const char *cp) ++{ ++ u_int i; ++ ++ for (i = 0; keywords[i].name; i++) ++ if (strncasecmp(cp, keywords[i].name, ++ strlen(keywords[i].name)) == 0) ++ return keywords[i].opcode; ++ ++ return pBadOption; ++} ++ ++int ++percent_decode(char *data, char **outp) ++{ ++ char tmp[3]; ++ char *out, *tmp_end; ++ char *p = data; ++ long value; ++ size_t outlen = 0; ++ ++ out = malloc(strlen(data)+1); /* upper bound */ ++ if (out == NULL) ++ return -1; ++ while (*p != '\0') { ++ switch (*p) { ++ case '%': ++ p++; ++ if (*p == '\0') ++ goto fail; ++ tmp[0] = *p++; ++ if (*p == '\0') ++ goto fail; ++ tmp[1] = *p++; ++ tmp[2] = '\0'; ++ tmp_end = NULL; ++ value = strtol(tmp, &tmp_end, 16); ++ if (tmp_end != tmp+2) ++ goto fail; ++ else ++ out[outlen++] = (char) value; ++ break; ++ default: ++ out[outlen++] = *p++; ++ break; ++ } ++ } ++ ++ /* zero terminate */ ++ out[outlen] = '\0'; ++ *outp = out; ++ return outlen; ++fail: ++ free(out); ++ return -1; ++} ++ ++struct sshbuf * ++percent_encode(const char *data, size_t length, const char *whitelist) ++{ ++ struct sshbuf *b = NULL; ++ char tmp[4], *cp; ++ size_t i; ++ ++ if ((b = sshbuf_new()) == NULL) ++ return NULL; ++ for (i = 0; i < length; i++) { ++ cp = strchr(whitelist, data[i]); ++ /* if c is specified as '\0' pointer to terminator is returned !! */ ++ if (cp != NULL && *cp != '\0') { ++ if (sshbuf_put(b, &data[i], 1) != 0) ++ goto err; ++ } else ++ if (snprintf(tmp, 4, "%%%02X", (unsigned char) data[i]) < 3 ++ || sshbuf_put(b, tmp, 3) != 0) ++ goto err; ++ } ++ if (sshbuf_put(b, "\0", 1) == 0) ++ return b; ++err: ++ sshbuf_free(b); ++ return NULL; ++} ++ ++char * ++pkcs11_uri_append(char *part, const char *separator, const char *key, ++ struct sshbuf *value) ++{ ++ char *new_part; ++ size_t size = 0; ++ ++ if (value == NULL) ++ return NULL; ++ ++ size = asprintf(&new_part, ++ "%s%s%s" PKCS11_URI_VALUE_SEPARATOR "%s", ++ (part != NULL ? part : ""), ++ (part != NULL ? separator : ""), ++ key, sshbuf_ptr(value)); ++ sshbuf_free(value); ++ free(part); ++ ++ if (size <= 0) ++ return NULL; ++ return new_part; ++} ++ ++char * ++pkcs11_uri_get(struct pkcs11_uri *uri) ++{ ++ size_t size = 0; ++ char *p = NULL, *path = NULL, *query = NULL; ++ ++ /* compose a percent-encoded ID */ ++ if (uri->id_len > 0) { ++ struct sshbuf *key_id = percent_encode(uri->id, uri->id_len, ""); ++ path = pkcs11_uri_append(path, PKCS11_URI_PATH_SEPARATOR, ++ PKCS11_URI_ID, key_id); ++ if (path == NULL) ++ goto err; ++ } ++ ++ /* Write object label */ ++ if (uri->object) { ++ struct sshbuf *label = percent_encode(uri->object, strlen(uri->object), ++ PKCS11_URI_WHITELIST); ++ path = pkcs11_uri_append(path, PKCS11_URI_PATH_SEPARATOR, ++ PKCS11_URI_OBJECT, label); ++ if (path == NULL) ++ goto err; ++ } ++ ++ /* Write token label */ ++ if (uri->token) { ++ struct sshbuf *label = percent_encode(uri->token, strlen(uri->token), ++ PKCS11_URI_WHITELIST); ++ path = pkcs11_uri_append(path, PKCS11_URI_PATH_SEPARATOR, ++ PKCS11_URI_TOKEN, label); ++ if (path == NULL) ++ goto err; ++ } ++ ++ /* Write manufacturer */ ++ if (uri->manuf) { ++ struct sshbuf *manuf = percent_encode(uri->manuf, ++ strlen(uri->manuf), PKCS11_URI_WHITELIST); ++ path = pkcs11_uri_append(path, PKCS11_URI_PATH_SEPARATOR, ++ PKCS11_URI_MANUF, manuf); ++ if (path == NULL) ++ goto err; ++ } ++ ++ /* Write module_path */ ++ if (uri->module_path) { ++ struct sshbuf *module = percent_encode(uri->module_path, ++ strlen(uri->module_path), PKCS11_URI_WHITELIST "/"); ++ query = pkcs11_uri_append(query, PKCS11_URI_QUERY_SEPARATOR, ++ PKCS11_URI_MODULE_PATH, module); ++ if (query == NULL) ++ goto err; ++ } ++ ++ size = asprintf(&p, PKCS11_URI_SCHEME "%s%s%s", ++ path != NULL ? path : "", ++ query != NULL ? "?" : "", ++ query != NULL ? query : ""); ++err: ++ free(query); ++ free(path); ++ if (size <= 0) ++ return NULL; ++ return p; ++} ++ ++struct pkcs11_uri * ++pkcs11_uri_init() ++{ ++ struct pkcs11_uri *d = calloc(1, sizeof(struct pkcs11_uri)); ++ return d; ++} ++ ++void ++pkcs11_uri_cleanup(struct pkcs11_uri *pkcs11) ++{ ++ free(pkcs11->id); ++ free(pkcs11->module_path); ++ free(pkcs11->token); ++ free(pkcs11->object); ++ free(pkcs11->lib_manuf); ++ free(pkcs11->manuf); ++ free(pkcs11); ++} ++ ++int ++pkcs11_uri_parse(const char *uri, struct pkcs11_uri *pkcs11) ++{ ++ char *saveptr1, *saveptr2, *str1, *str2, *tok; ++ int rv = 0, len; ++ char *p = NULL; ++ ++ size_t scheme_len = strlen(PKCS11_URI_SCHEME); ++ if (strlen(uri) < scheme_len || /* empty URI matches everything */ ++ strncmp(uri, PKCS11_URI_SCHEME, scheme_len) != 0) { ++ error("%s: The '%s' does not look like PKCS#11 URI", ++ __func__, uri); ++ return -1; ++ } ++ ++ if (pkcs11 == NULL) { ++ error("%s: Bad arguments. The pkcs11 can't be null", __func__); ++ return -1; ++ } ++ ++ /* skip URI schema name */ ++ p = strdup(uri); ++ str1 = p; ++ ++ /* everything before ? */ ++ tok = strtok_r(str1, "?", &saveptr1); ++ if (tok == NULL) { ++ free(p); ++ error("%s: pk11-path expected, got EOF", __func__); ++ return -1; ++ } ++ ++ /* skip URI schema name: ++ * the scheme ensures that there is at least something before "?" ++ * allowing empty pk11-path. Resulting token at worst pointing to ++ * \0 byte */ ++ tok = tok + scheme_len; ++ ++ /* parse pk11-path */ ++ for (str2 = tok; ; str2 = NULL) { ++ char **charptr; ++ pkcs11uriOpCodes opcode; ++ tok = strtok_r(str2, PKCS11_URI_PATH_SEPARATOR, &saveptr2); ++ if (tok == NULL) ++ break; ++ opcode = parse_token(tok); ++ ++ char *arg = tok + strlen(keywords[opcode].name) + 1; /* separator "=" */ ++ switch (opcode) { ++ case pId: ++ /* CKA_ID */ ++ if (pkcs11->id != NULL) { ++ verbose("%s: The id already set in the PKCS#11 URI", ++ __func__); ++ rv = -1; ++ } ++ len = percent_decode(arg, &pkcs11->id); ++ if (len <= 0) { ++ verbose("%s: Failed to percent-decode CKA_ID: %s", ++ __func__, arg); ++ rv = -1; ++ } else ++ pkcs11->id_len = len; ++ debug3("%s: Setting CKA_ID = %s from PKCS#11 URI", ++ __func__, arg); ++ break; ++ case pToken: ++ /* CK_TOKEN_INFO -> label */ ++ charptr = &pkcs11->token; ++ parse_string: ++ if (*charptr != NULL) { ++ verbose("%s: The %s already set in the PKCS#11 URI", ++ keywords[opcode].name, __func__); ++ rv = -1; ++ } ++ percent_decode(arg, charptr); ++ debug3("%s: Setting %s = %s from PKCS#11 URI", ++ __func__, keywords[opcode].name, *charptr); ++ break; ++ ++ case pObject: ++ /* CK_TOKEN_INFO -> manufacturerID */ ++ charptr = &pkcs11->object; ++ goto parse_string; ++ ++ case pManufacturer: ++ /* CK_TOKEN_INFO -> manufacturerID */ ++ charptr = &pkcs11->manuf; ++ goto parse_string; ++ ++ case pLibraryManufacturer: ++ /* CK_INFO -> manufacturerID */ ++ charptr = &pkcs11->lib_manuf; ++ goto parse_string; ++ ++ case pBadOption: ++ default: ++ /* Unrecognized attribute in the URI path SHOULD be error */ ++ verbose("%s: Unknown part of path in PKCS#11 URI: %s", ++ __func__, tok); ++ } ++ } ++ ++ tok = strtok_r(NULL, "?", &saveptr1); ++ if (tok == NULL) { ++ free(p); ++ return rv; ++ } ++ /* parse pk11-query (optional) */ ++ for (str2 = tok; ; str2 = NULL) { ++ size_t key_len = strlen(PKCS11_URI_MODULE_PATH) + 1; ++ tok = strtok_r(str2, PKCS11_URI_QUERY_SEPARATOR, &saveptr2); ++ if (tok == NULL) ++ break; ++ if (strncasecmp(tok, PKCS11_URI_MODULE_PATH ++ PKCS11_URI_VALUE_SEPARATOR, key_len) == 0) { ++ /* module-path is PKCS11Provider */ ++ if (pkcs11->module_path != NULL) { ++ verbose("%s: Multiple module-path attributes are" ++ "not supported the PKCS#11 URI", __func__); ++ rv = -1; ++ } ++ percent_decode(tok + key_len, &pkcs11->module_path); ++ debug3("%s: Setting PKCS11Provider = %s from PKCS#11 URI", ++ __func__, pkcs11->module_path); ++ /* } else if ( pin-value ) { */ ++ } else { ++ /* Unrecognized attribute in the URI query SHOULD be ignored */ ++ verbose("%s: Unknown part of query in PKCS#11 URI: %s", ++ __func__, tok); ++ } ++ } ++ free(p); ++ return rv; ++} ++ ++#endif /* ENABLE_PKCS11 */ +diff --git a/ssh-pkcs11-uri.h b/ssh-pkcs11-uri.h +new file mode 100644 +index 00000000..609c4df1 +--- /dev/null ++++ b/ssh-pkcs11-uri.h +@@ -0,0 +1,41 @@ ++/* ++ * Copyright (c) 2017 Red Hat ++ * ++ * Authors: Jakub Jelen ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++#define PKCS11_URI_SCHEME "pkcs11:" ++#define PKCS11_URI_WHITELIST "abcdefghijklmnopqrstuvwxyz" \ ++ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ ++ "0123456789_-.()" ++ ++struct pkcs11_uri { ++ /* path */ ++ char *id; ++ size_t id_len; ++ char *token; ++ char *object; ++ char *lib_manuf; ++ char *manuf; ++ /* query */ ++ char *module_path; ++}; ++ ++struct pkcs11_uri *pkcs11_uri_init(); ++void pkcs11_uri_cleanup(struct pkcs11_uri *); ++int pkcs11_uri_parse(const char *, struct pkcs11_uri *); ++struct pkcs11_uri *pkcs11_uri_init(); ++char * pkcs11_uri_get(struct pkcs11_uri *uri); ++ +diff --git a/ssh-pkcs11.c b/ssh-pkcs11.c +index 88c9d6e2..a29b4451 100644 +--- a/ssh-pkcs11.c ++++ b/ssh-pkcs11.c +@@ -48,8 +48,8 @@ struct pkcs11_slotinfo { + int logged_in; + }; + +-struct pkcs11_provider { +- char *name; ++struct pkcs11_module { ++ char *module_path; + void *handle; + CK_FUNCTION_LIST *function_list; + CK_INFO info; +@@ -58,6 +58,13 @@ struct pkcs11_provider { + struct pkcs11_slotinfo *slotinfo; + int valid; + int refcount; ++}; ++ ++struct pkcs11_provider { ++ char *name; ++ struct pkcs11_module *module; /* can be shared between various providers */ ++ int refcount; ++ int valid; + TAILQ_ENTRY(pkcs11_provider) next; + }; + +@@ -70,10 +77,46 @@ struct pkcs11_key { + RSA_METHOD rsa_method; + char *keyid; + int keyid_len; ++ char *label; + }; + + int pkcs11_interactive = 0; + ++/* ++ * This can't be in the ssh-pkcs11-uri, becase we can not depend on ++ * PKCS#11 structures in ssh-agent (using client-helper communication) ++ */ ++int ++pkcs11_uri_write(const struct sshkey *key, FILE *f) ++{ ++ char *p = NULL; ++ struct pkcs11_uri uri; ++ struct pkcs11_key *k11; ++ ++ /* sanity - is it a RSA key with associated app_data? */ ++ if (key->type != KEY_RSA || ++ (k11 = RSA_get_app_data(key->rsa)) == NULL) ++ return -1; ++ ++ /* omit type -- we are looking for private-public or private-certificate pairs */ ++ uri.id = k11->keyid; ++ uri.id_len = k11->keyid_len; ++ uri.token = k11->provider->module->slotinfo[k11->slotidx].token.label; ++ uri.object = k11->label; ++ uri.module_path = k11->provider->module->module_path; ++ uri.lib_manuf = k11->provider->module->info.manufacturerID; ++ uri.manuf = k11->provider->module->slotinfo[k11->slotidx].token.manufacturerID; ++ ++ p = pkcs11_uri_get(&uri); ++ /* do not cleanup -- we do not allocate here, only reference */ ++ if (p == NULL) ++ return -1; ++ ++ fprintf(f, " %s", p); ++ free(p); ++ return 0; ++} ++ + int + pkcs11_init(int interactive) + { +@@ -89,26 +132,63 @@ pkcs11_init(int interactive) + * this is called when a provider gets unregistered. + */ + static void +-pkcs11_provider_finalize(struct pkcs11_provider *p) ++pkcs11_module_finalize(struct pkcs11_module *m) + { + CK_RV rv; + CK_ULONG i; + +- debug("pkcs11_provider_finalize: %p refcount %d valid %d", +- p, p->refcount, p->valid); +- if (!p->valid) ++ debug("%s: %p refcount %d valid %d", __func__, ++ m, m->refcount, m->valid); ++ if (!m->valid) + return; +- for (i = 0; i < p->nslots; i++) { +- if (p->slotinfo[i].session && +- (rv = p->function_list->C_CloseSession( +- p->slotinfo[i].session)) != CKR_OK) ++ for (i = 0; i < m->nslots; i++) { ++ if (m->slotinfo[i].session && ++ (rv = m->function_list->C_CloseSession( ++ m->slotinfo[i].session)) != CKR_OK) + error("C_CloseSession failed: %lu", rv); + } +- if ((rv = p->function_list->C_Finalize(NULL)) != CKR_OK) ++ if ((rv = m->function_list->C_Finalize(NULL)) != CKR_OK) + error("C_Finalize failed: %lu", rv); ++ m->valid = 0; ++ m->function_list = NULL; ++ dlclose(m->handle); ++} ++ ++/* ++ * remove a reference to the pkcs11 module. ++ * called when a provider is unregistered. ++ */ ++static void ++pkcs11_module_unref(struct pkcs11_module *m) ++{ ++ debug("%s: %p refcount %d", __func__, m, m->refcount); ++ if (--m->refcount <= 0) { ++ pkcs11_module_finalize(m); ++ if (m->valid) ++ error("%s: %p still valid", __func__, m); ++ free(m->slotlist); ++ free(m->slotinfo); ++ free(m->module_path); ++ free(m); ++ } ++} ++ ++/* ++ * finalize a provider shared libarary, it's no longer usable. ++ * however, there might still be keys referencing this provider, ++ * so the actuall freeing of memory is handled by pkcs11_provider_unref(). ++ * this is called when a provider gets unregistered. ++ */ ++static void ++pkcs11_provider_finalize(struct pkcs11_provider *p) ++{ ++ debug("%s: %p refcount %d valid %d", __func__, ++ p, p->refcount, p->valid); ++ if (!p->valid) ++ return; ++ pkcs11_module_unref(p->module); ++ p->module = NULL; + p->valid = 0; +- p->function_list = NULL; +- dlclose(p->handle); + } + + /* +@@ -118,12 +198,11 @@ pkcs11_provider_finalize(struct pkcs11_provider *p) + static void + pkcs11_provider_unref(struct pkcs11_provider *p) + { +- debug("pkcs11_provider_unref: %p refcount %d", p, p->refcount); ++ debug("%s: %p refcount %d", __func__, p, p->refcount); + if (--p->refcount <= 0) { +- if (p->valid) +- error("pkcs11_provider_unref: %p still valid", p); +- free(p->slotlist); +- free(p->slotinfo); ++ if (p->module) ++ pkcs11_module_unref(p->module); ++ free(p->name); + free(p); + } + } +@@ -141,6 +220,20 @@ pkcs11_terminate(void) + } + } + ++/* lookup provider by module path */ ++static struct pkcs11_module * ++pkcs11_provider_lookup_module(char *module_path) ++{ ++ struct pkcs11_provider *p; ++ ++ TAILQ_FOREACH(p, &pkcs11_providers, next) { ++ debug("check %p %s (%s)", p, p->name, p->module->module_path); ++ if (!strcmp(module_path, p->module->module_path)) ++ return (p->module); ++ } ++ return (NULL); ++} ++ + /* lookup provider by name */ + static struct pkcs11_provider * + pkcs11_provider_lookup(char *provider_id) +@@ -155,19 +248,52 @@ pkcs11_provider_lookup(char *provider_id) + return (NULL); + } + ++int pkcs11_del_provider_by_uri(struct pkcs11_uri *); ++ + /* unregister provider by name */ + int + pkcs11_del_provider(char *provider_id) ++{ ++ int rv; ++ struct pkcs11_uri *uri; ++ ++ debug("%s: called, provider_id = %s", __func__, provider_id); ++ ++ uri = pkcs11_uri_init(); ++ if (uri == NULL) ++ fatal("Failed to init PCKS#11 URI"); ++ ++ if (strlen(provider_id) >= strlen(PKCS11_URI_SCHEME) && ++ strncmp(provider_id, PKCS11_URI_SCHEME, strlen(PKCS11_URI_SCHEME)) == 0) { ++ if (pkcs11_uri_parse(provider_id, uri) != 0) ++ fatal("Failed to parse PKCS#11 URI"); ++ } else { ++ uri->module_path = strdup(provider_id); ++ } ++ ++ rv = pkcs11_del_provider_by_uri(uri); ++ pkcs11_uri_cleanup(uri); ++ return rv; ++} ++ ++/* unregister provider by PKCS#11 URI */ ++int ++pkcs11_del_provider_by_uri(struct pkcs11_uri *uri) + { + struct pkcs11_provider *p; ++ int rv = -1; ++ char *provider_uri = pkcs11_uri_get(uri); + +- if ((p = pkcs11_provider_lookup(provider_id)) != NULL) { ++ debug3("%s(%s): called", __func__, provider_uri); ++ ++ if ((p = pkcs11_provider_lookup(provider_uri)) != NULL) { + TAILQ_REMOVE(&pkcs11_providers, p, next); + pkcs11_provider_finalize(p); + pkcs11_provider_unref(p); +- return (0); ++ rv = 0; + } +- return (-1); ++ free(provider_uri); ++ return rv; + } + + /* openssl callback for freeing an RSA key */ +@@ -183,6 +309,7 @@ pkcs11_rsa_finish(RSA *rsa) + if (k11->provider) + pkcs11_provider_unref(k11->provider); + free(k11->keyid); ++ free(k11->label); + free(k11); + } + return (rv); +@@ -199,8 +327,8 @@ pkcs11_find(struct pkcs11_provider *p, CK_ULONG slotidx, CK_ATTRIBUTE *attr, + CK_RV rv; + int ret = -1; + +- f = p->function_list; +- session = p->slotinfo[slotidx].session; ++ f = p->module->function_list; ++ session = p->module->slotinfo[slotidx].session; + if ((rv = f->C_FindObjectsInit(session, attr, nattr)) != CKR_OK) { + error("C_FindObjectsInit failed (nattr %lu): %lu", nattr, rv); + return (-1); +@@ -247,12 +375,13 @@ pkcs11_rsa_private_encrypt(int flen, const u_char *from, u_char *to, RSA *rsa, + error("RSA_get_app_data failed for rsa %p", rsa); + return (-1); + } +- if (!k11->provider || !k11->provider->valid) { ++ if (!k11->provider || !k11->provider->valid || !k11->provider->module ++ || !k11->provider->module->valid) { + error("no pkcs11 (valid) provider for rsa %p", rsa); + return (-1); + } +- f = k11->provider->function_list; +- si = &k11->provider->slotinfo[k11->slotidx]; ++ f = k11->provider->module->function_list; ++ si = &k11->provider->module->slotinfo[k11->slotidx]; + if ((si->token.flags & CKF_LOGIN_REQUIRED) && !si->logged_in) { + if (!pkcs11_interactive) { + error("need pin entry%s", (si->token.flags & +@@ -311,7 +440,7 @@ pkcs11_rsa_private_decrypt(int flen, const u_char *from, u_char *to, RSA *rsa, + /* redirect private key operations for rsa key to pkcs11 token */ + static int + pkcs11_rsa_wrap(struct pkcs11_provider *provider, CK_ULONG slotidx, +- CK_ATTRIBUTE *keyid_attrib, RSA *rsa) ++ CK_ATTRIBUTE *keyid_attrib, CK_ATTRIBUTE *label_attrib, RSA *rsa) + { + struct pkcs11_key *k11; + const RSA_METHOD *def = RSA_get_default_method(); +@@ -326,6 +455,11 @@ pkcs11_rsa_wrap(struct pkcs11_provider *provider, CK_ULONG slotidx, + k11->keyid = xmalloc(k11->keyid_len); + memcpy(k11->keyid, keyid_attrib->pValue, k11->keyid_len); + } ++ if (label_attrib->ulValueLen > 0 ) { ++ k11->label = xmalloc(label_attrib->ulValueLen+1); ++ memcpy(k11->label, label_attrib->pValue, label_attrib->ulValueLen); ++ k11->label[label_attrib->ulValueLen] = 0; ++ } + k11->orig_finish = def->finish; + memcpy(&k11->rsa_method, def, sizeof(k11->rsa_method)); + k11->rsa_method.name = "pkcs11"; +@@ -372,16 +506,16 @@ pkcs11_open_session(struct pkcs11_provider *p, CK_ULONG slotidx, char *pin) + CK_SESSION_HANDLE session; + int login_required; + +- f = p->function_list; +- login_required = p->slotinfo[slotidx].token.flags & CKF_LOGIN_REQUIRED; ++ f = p->module->function_list; ++ login_required = p->module->slotinfo[slotidx].token.flags & CKF_LOGIN_REQUIRED; + if (pin && login_required && !strlen(pin)) { + error("pin required"); + return (-1); + } +- if ((rv = f->C_OpenSession(p->slotlist[slotidx], CKF_RW_SESSION| ++ if ((rv = f->C_OpenSession(p->module->slotlist[slotidx], CKF_RW_SESSION| + CKF_SERIAL_SESSION, NULL, NULL, &session)) + != CKR_OK) { +- error("C_OpenSession failed: %lu", rv); ++ error("C_OpenSession failed for slot %lu: %lu", slotidx, rv); + return (-1); + } + if (login_required && pin) { +@@ -393,9 +527,9 @@ pkcs11_open_session(struct pkcs11_provider *p, CK_ULONG slotidx, char *pin) + error("C_CloseSession failed: %lu", rv); + return (-1); + } +- p->slotinfo[slotidx].logged_in = 1; ++ p->module->slotinfo[slotidx].logged_in = 1; + } +- p->slotinfo[slotidx].session = session; ++ p->module->slotinfo[slotidx].session = session; + return (0); + } + +@@ -405,38 +539,62 @@ pkcs11_open_session(struct pkcs11_provider *p, CK_ULONG slotidx, char *pin) + * keysp points to an (possibly empty) array with *nkeys keys. + */ + static int pkcs11_fetch_keys_filter(struct pkcs11_provider *, CK_ULONG, +- CK_ATTRIBUTE [], CK_ATTRIBUTE [3], struct sshkey ***, int *) ++ CK_ATTRIBUTE [], size_t, CK_ATTRIBUTE [3], struct sshkey ***, int *) + __attribute__((__bounded__(__minbytes__,4, 3 * sizeof(CK_ATTRIBUTE)))); + + static int + pkcs11_fetch_keys(struct pkcs11_provider *p, CK_ULONG slotidx, +- struct sshkey ***keysp, int *nkeys) ++ struct sshkey ***keysp, int *nkeys, struct pkcs11_uri *uri) + { ++ size_t filter_size = 1; + CK_OBJECT_CLASS pubkey_class = CKO_PUBLIC_KEY; + CK_OBJECT_CLASS cert_class = CKO_CERTIFICATE; + CK_ATTRIBUTE pubkey_filter[] = { +- { CKA_CLASS, NULL, sizeof(pubkey_class) } ++ { CKA_CLASS, NULL, sizeof(pubkey_class) }, ++ { CKA_ID, NULL, 0 }, ++ { CKA_LABEL, NULL, 0 } + }; + CK_ATTRIBUTE cert_filter[] = { +- { CKA_CLASS, NULL, sizeof(cert_class) } ++ { CKA_CLASS, NULL, sizeof(cert_class) }, ++ { CKA_ID, NULL, 0 }, ++ { CKA_LABEL, NULL, 0 } + }; + CK_ATTRIBUTE pubkey_attribs[] = { + { CKA_ID, NULL, 0 }, ++ { CKA_LABEL, NULL, 0 }, + { CKA_MODULUS, NULL, 0 }, + { CKA_PUBLIC_EXPONENT, NULL, 0 } + }; + CK_ATTRIBUTE cert_attribs[] = { + { CKA_ID, NULL, 0 }, ++ { CKA_LABEL, NULL, 0 }, + { CKA_SUBJECT, NULL, 0 }, + { CKA_VALUE, NULL, 0 } + }; + pubkey_filter[0].pValue = &pubkey_class; + cert_filter[0].pValue = &cert_class; + +- if (pkcs11_fetch_keys_filter(p, slotidx, pubkey_filter, pubkey_attribs, +- keysp, nkeys) < 0 || +- pkcs11_fetch_keys_filter(p, slotidx, cert_filter, cert_attribs, +- keysp, nkeys) < 0) ++ if (uri->id != NULL) { ++ pubkey_filter[filter_size].pValue = uri->id; ++ pubkey_filter[filter_size].ulValueLen = uri->id_len; ++ cert_filter[filter_size].pValue = uri->id; ++ cert_filter[filter_size].ulValueLen = uri->id_len; ++ filter_size++; ++ } ++ if (uri->object != NULL) { ++ pubkey_filter[filter_size].pValue = uri->object; ++ pubkey_filter[filter_size].ulValueLen = strlen(uri->object); ++ pubkey_filter[filter_size].type = CKA_LABEL; ++ cert_filter[filter_size].pValue = uri->object; ++ cert_filter[filter_size].ulValueLen = strlen(uri->object); ++ cert_filter[filter_size].type = CKA_LABEL; ++ filter_size++; ++ } ++ ++ if (pkcs11_fetch_keys_filter(p, slotidx, pubkey_filter, filter_size, ++ pubkey_attribs, keysp, nkeys) < 0 || ++ pkcs11_fetch_keys_filter(p, slotidx, cert_filter, filter_size, ++ cert_attribs, keysp, nkeys) < 0) + return (-1); + return (0); + } +@@ -454,14 +612,15 @@ pkcs11_key_included(struct sshkey ***keysp, int *nkeys, struct sshkey *key) + + static int + pkcs11_fetch_keys_filter(struct pkcs11_provider *p, CK_ULONG slotidx, +- CK_ATTRIBUTE filter[], CK_ATTRIBUTE attribs[3], ++ CK_ATTRIBUTE filter[], size_t filter_size, CK_ATTRIBUTE attribs[4], + struct sshkey ***keysp, int *nkeys) + { + struct sshkey *key; + RSA *rsa; + X509 *x509; +- EVP_PKEY *evp; ++ EVP_PKEY *evp = NULL; + int i; ++ int nattribs = 4; + const u_char *cp; + CK_RV rv; + CK_OBJECT_HANDLE obj; +@@ -470,16 +629,15 @@ pkcs11_fetch_keys_filter(struct pkcs11_provider *p, CK_ULONG slotidx, + CK_SESSION_HANDLE session; + CK_FUNCTION_LIST *f; + +- f = p->function_list; +- session = p->slotinfo[slotidx].session; ++ f = p->module->function_list; ++ session = p->module->slotinfo[slotidx].session; + /* setup a filter the looks for public keys */ +- if ((rv = f->C_FindObjectsInit(session, filter, 1)) != CKR_OK) { ++ if ((rv = f->C_FindObjectsInit(session, filter, filter_size)) != CKR_OK) { + error("C_FindObjectsInit failed: %lu", rv); + return (-1); + } + while (1) { +- /* XXX 3 attributes in attribs[] */ +- for (i = 0; i < 3; i++) { ++ for (i = 0; i < nattribs; i++) { + attribs[i].pValue = NULL; + attribs[i].ulValueLen = 0; + } +@@ -487,22 +645,22 @@ pkcs11_fetch_keys_filter(struct pkcs11_provider *p, CK_ULONG slotidx, + || nfound == 0) + break; + /* found a key, so figure out size of the attributes */ +- if ((rv = f->C_GetAttributeValue(session, obj, attribs, 3)) ++ if ((rv = f->C_GetAttributeValue(session, obj, attribs, nattribs)) + != CKR_OK) { + error("C_GetAttributeValue failed: %lu", rv); + continue; + } + /* +- * Allow CKA_ID (always first attribute) to be empty, but +- * ensure that none of the others are zero length. ++ * Allow CKA_ID (always first attribute) and CKA_LABEL (second) ++ * to be empty, but ensure that none of the others are zero length. + * XXX assumes CKA_ID is always first. + */ +- if (attribs[1].ulValueLen == 0 || +- attribs[2].ulValueLen == 0) { ++ if (attribs[2].ulValueLen == 0 || ++ attribs[3].ulValueLen == 0) { + continue; + } + /* allocate buffers for attributes */ +- for (i = 0; i < 3; i++) { ++ for (i = 0; i < nattribs; i++) { + if (attribs[i].ulValueLen > 0) { + attribs[i].pValue = xmalloc( + attribs[i].ulValueLen); +@@ -510,27 +668,27 @@ pkcs11_fetch_keys_filter(struct pkcs11_provider *p, CK_ULONG slotidx, + } + + /* +- * retrieve ID, modulus and public exponent of RSA key, +- * or ID, subject and value for certificates. ++ * retrieve ID, label, modulus and public exponent of RSA key, ++ * or ID, label, subject and value for certificates. + */ + rsa = NULL; +- if ((rv = f->C_GetAttributeValue(session, obj, attribs, 3)) ++ if ((rv = f->C_GetAttributeValue(session, obj, attribs, nattribs)) + != CKR_OK) { + error("C_GetAttributeValue failed: %lu", rv); +- } else if (attribs[1].type == CKA_MODULUS ) { ++ } else if (attribs[2].type == CKA_MODULUS ) { + if ((rsa = RSA_new()) == NULL) { + error("RSA_new failed"); + } else { +- rsa->n = BN_bin2bn(attribs[1].pValue, +- attribs[1].ulValueLen, NULL); +- rsa->e = BN_bin2bn(attribs[2].pValue, ++ rsa->n = BN_bin2bn(attribs[2].pValue, + attribs[2].ulValueLen, NULL); ++ rsa->e = BN_bin2bn(attribs[3].pValue, ++ attribs[3].ulValueLen, NULL); + } + } else { +- cp = attribs[2].pValue; ++ cp = attribs[3].pValue; + if ((x509 = X509_new()) == NULL) { + error("X509_new failed"); +- } else if (d2i_X509(&x509, &cp, attribs[2].ulValueLen) ++ } else if (d2i_X509(&x509, &cp, attribs[3].ulValueLen) + == NULL) { + error("d2i_X509 failed"); + } else if ((evp = X509_get_pubkey(x509)) == NULL || +@@ -546,9 +704,10 @@ pkcs11_fetch_keys_filter(struct pkcs11_provider *p, CK_ULONG slotidx, + error("RSAPublicKey_dup"); + } + X509_free(x509); ++ EVP_PKEY_free(evp); + } + if (rsa && rsa->n && rsa->e && +- pkcs11_rsa_wrap(p, slotidx, &attribs[0], rsa) == 0) { ++ pkcs11_rsa_wrap(p, slotidx, &attribs[0], &attribs[1], rsa) == 0) { + if ((key = sshkey_new(KEY_UNSPEC)) == NULL) + fatal("sshkey_new failed"); + key->rsa = rsa; +@@ -569,7 +728,7 @@ pkcs11_fetch_keys_filter(struct pkcs11_provider *p, CK_ULONG slotidx, + } else if (rsa) { + RSA_free(rsa); + } +- for (i = 0; i < 3; i++) ++ for (i = 0; i < nattribs; i++) + free(attribs[i].pValue); + } + if ((rv = f->C_FindObjectsFinal(session)) != CKR_OK) +@@ -581,126 +740,239 @@ pkcs11_fetch_keys_filter(struct pkcs11_provider *p, CK_ULONG slotidx, + int + pkcs11_add_provider(char *provider_id, char *pin, struct sshkey ***keyp) + { +- int nkeys, need_finalize = 0; +- struct pkcs11_provider *p = NULL; ++ int rv; ++ struct pkcs11_uri *uri; ++ ++ debug("%s: called, provider_id = %s", __func__, provider_id); ++ ++ uri = pkcs11_uri_init(); ++ if (uri == NULL) ++ fatal("Failed to init PCKS#11 URI"); ++ ++ if (strlen(provider_id) >= strlen(PKCS11_URI_SCHEME) && ++ strncmp(provider_id, PKCS11_URI_SCHEME, strlen(PKCS11_URI_SCHEME)) == 0) { ++ if (pkcs11_uri_parse(provider_id, uri) != 0) ++ fatal("Failed to parse PKCS#11 URI"); ++ } else { ++ uri->module_path = strdup(provider_id); ++ } ++ ++ rv = pkcs11_add_provider_by_uri(uri, pin, keyp); ++ pkcs11_uri_cleanup(uri); ++ return rv; ++} ++ ++struct pkcs11_provider * ++pkcs11_provider_initialize(struct pkcs11_uri *uri) ++{ ++ int need_finalize = 0; + void *handle = NULL; + CK_RV (*getfunctionlist)(CK_FUNCTION_LIST **); + CK_RV rv; + CK_FUNCTION_LIST *f = NULL; + CK_TOKEN_INFO *token; + CK_ULONG i; ++ char *provider_module = NULL; ++ struct pkcs11_provider *p; ++ struct pkcs11_module *m; + +- *keyp = NULL; +- if (pkcs11_provider_lookup(provider_id) != NULL) { +- debug("%s: provider already registered: %s", +- __func__, provider_id); ++ /* if no provider specified, fallback to p11-kit */ ++ if (uri->module_path == NULL) { ++#ifdef PKCS11_DEFAULT_PROVIDER ++ provider_module = strdup(PKCS11_DEFAULT_PROVIDER); ++#else ++ error("%s: No module path provided", __func__); + goto fail; ++#endif ++ } else ++ provider_module = strdup(uri->module_path); ++ ++ p = xcalloc(1, sizeof(*p)); ++ p->name = pkcs11_uri_get(uri); ++ ++ if ((m = pkcs11_provider_lookup_module(provider_module)) != NULL ++ && m->valid) { ++ debug("%s: provider module already initialized: %s", ++ __func__, provider_module); ++ free(provider_module); ++ /* Skip the initialization of PKCS#11 module */ ++ m->refcount++; ++ p->module = m; ++ p->valid = 1; ++ TAILQ_INSERT_TAIL(&pkcs11_providers, p, next); ++ p->refcount++; /* add to provider list */ ++ return p; ++ } else { ++ m = xcalloc(1, sizeof(*m)); ++ p->module = m; ++ m->refcount++; + } ++ + /* open shared pkcs11-libarary */ +- if ((handle = dlopen(provider_id, RTLD_NOW)) == NULL) { +- error("dlopen %s failed: %s", provider_id, dlerror()); ++ if ((handle = dlopen(provider_module, RTLD_NOW)) == NULL) { ++ error("dlopen %s failed: %s", provider_module, dlerror()); + goto fail; + } + if ((getfunctionlist = dlsym(handle, "C_GetFunctionList")) == NULL) { + error("dlsym(C_GetFunctionList) failed: %s", dlerror()); + goto fail; + } +- p = xcalloc(1, sizeof(*p)); +- p->name = xstrdup(provider_id); +- p->handle = handle; ++ m->handle = handle; + /* setup the pkcs11 callbacks */ + if ((rv = (*getfunctionlist)(&f)) != CKR_OK) { + error("C_GetFunctionList for provider %s failed: %lu", +- provider_id, rv); ++ provider_module, rv); + goto fail; + } +- p->function_list = f; ++ m->function_list = f; + if ((rv = f->C_Initialize(NULL)) != CKR_OK) { + error("C_Initialize for provider %s failed: %lu", +- provider_id, rv); ++ provider_module, rv); + goto fail; + } + need_finalize = 1; +- if ((rv = f->C_GetInfo(&p->info)) != CKR_OK) { ++ if ((rv = f->C_GetInfo(&m->info)) != CKR_OK) { + error("C_GetInfo for provider %s failed: %lu", +- provider_id, rv); ++ provider_module, rv); + goto fail; + } +- rmspace(p->info.manufacturerID, sizeof(p->info.manufacturerID)); +- rmspace(p->info.libraryDescription, sizeof(p->info.libraryDescription)); ++ rmspace(m->info.manufacturerID, sizeof(m->info.manufacturerID)); ++ if (uri->lib_manuf != NULL && ++ strcmp(uri->lib_manuf, m->info.manufacturerID)) { ++ debug("%s: Skipping provider %s not matching library_manufacturer", ++ __func__, m->info.manufacturerID); ++ goto fail; ++ } ++ rmspace(m->info.libraryDescription, sizeof(m->info.libraryDescription)); + debug("provider %s: manufacturerID <%s> cryptokiVersion %d.%d" + " libraryDescription <%s> libraryVersion %d.%d", +- provider_id, +- p->info.manufacturerID, +- p->info.cryptokiVersion.major, +- p->info.cryptokiVersion.minor, +- p->info.libraryDescription, +- p->info.libraryVersion.major, +- p->info.libraryVersion.minor); +- if ((rv = f->C_GetSlotList(CK_TRUE, NULL, &p->nslots)) != CKR_OK) { ++ provider_module, ++ m->info.manufacturerID, ++ m->info.cryptokiVersion.major, ++ m->info.cryptokiVersion.minor, ++ m->info.libraryDescription, ++ m->info.libraryVersion.major, ++ m->info.libraryVersion.minor); ++ ++ if ((rv = f->C_GetSlotList(CK_TRUE, NULL, &m->nslots)) != CKR_OK) { + error("C_GetSlotList failed: %lu", rv); + goto fail; + } +- if (p->nslots == 0) { ++ if (m->nslots == 0) { + debug("%s: provider %s returned no slots", __func__, +- provider_id); ++ provider_module); + goto fail; + } +- p->slotlist = xcalloc(p->nslots, sizeof(CK_SLOT_ID)); +- if ((rv = f->C_GetSlotList(CK_TRUE, p->slotlist, &p->nslots)) ++ m->slotlist = xcalloc(m->nslots, sizeof(CK_SLOT_ID)); ++ if ((rv = f->C_GetSlotList(CK_TRUE, m->slotlist, &m->nslots)) + != CKR_OK) { + error("C_GetSlotList for provider %s failed: %lu", +- provider_id, rv); ++ provider_module, rv); + goto fail; + } +- p->slotinfo = xcalloc(p->nslots, sizeof(struct pkcs11_slotinfo)); ++ m->slotinfo = xcalloc(m->nslots, sizeof(struct pkcs11_slotinfo)); ++ m->valid = 1; + p->valid = 1; +- nkeys = 0; +- for (i = 0; i < p->nslots; i++) { +- token = &p->slotinfo[i].token; +- if ((rv = f->C_GetTokenInfo(p->slotlist[i], token)) ++ ++ for (i = 0; i < m->nslots; i++) { ++ token = &m->slotinfo[i].token; ++ if ((rv = f->C_GetTokenInfo(m->slotlist[i], token)) + != CKR_OK) { + error("C_GetTokenInfo for provider %s slot %lu " +- "failed: %lu", provider_id, (unsigned long)i, rv); ++ "failed: %lu", provider_module, (unsigned long)i, rv); + continue; + } + if ((token->flags & CKF_TOKEN_INITIALIZED) == 0) { +- debug2("%s: ignoring uninitialised token in " +- "provider %s slot %lu", __func__, +- provider_id, (unsigned long)i); + continue; + } + rmspace(token->label, sizeof(token->label)); + rmspace(token->manufacturerID, sizeof(token->manufacturerID)); + rmspace(token->model, sizeof(token->model)); + rmspace(token->serialNumber, sizeof(token->serialNumber)); ++ } ++ m->module_path = provider_module; ++ provider_module = NULL; ++ ++ /* insert unconditionally -- remove if there will be no keys later */ ++ TAILQ_INSERT_TAIL(&pkcs11_providers, p, next); ++ p->refcount++; /* add to provider list */ ++ return p; ++ ++fail: ++ if (need_finalize && (rv = f->C_Finalize(NULL)) != CKR_OK) ++ error("C_Finalize for provider %s failed: %lu", ++ provider_module, rv); ++ free(provider_module); ++ free(p); ++ if (handle) ++ dlclose(handle); ++ return NULL; ++} ++ ++int ++pkcs11_add_provider_by_uri(struct pkcs11_uri *uri, char *pin, struct sshkey ***keyp) ++{ ++ int nkeys; ++ struct pkcs11_provider *p = NULL; ++ CK_TOKEN_INFO *token; ++ CK_ULONG i; ++ char *provider_uri = pkcs11_uri_get(uri); ++ ++ debug("%s: called, provider_uri = %s", __func__, provider_uri); ++ ++ *keyp = NULL; ++ if ((p = pkcs11_provider_initialize(uri)) == NULL) { ++ debug("%s: failed to initialize provider: %s", ++ __func__, provider_uri); ++ goto fail; ++ } ++ ++ nkeys = 0; ++ for (i = 0; i < p->module->nslots; i++) { ++ token = &p->module->slotinfo[i].token; ++ if ((token->flags & CKF_TOKEN_INITIALIZED) == 0) { ++ debug2("%s: ignoring uninitialised token in " ++ "provider %s slot %lu", __func__, ++ provider_uri, (unsigned long)i); ++ continue; ++ } ++ if (uri->token != NULL && ++ strcmp(token->label, uri->token) != 0) { ++ debug2("%s: ignoring token not matching label (%s) " ++ "specified by PKCS#11 URI in slot %lu", __func__, ++ token->label, (unsigned long)i); ++ continue; ++ } ++ if (uri->manuf != NULL && ++ strcmp(token->manufacturerID, uri->manuf) != 0) { ++ debug2("%s: ignoring token not matching requrested " ++ "manufacturerID (%s) specified by PKCS#11 URI in " ++ "slot %lu", __func__, ++ token->manufacturerID, (unsigned long)i); ++ continue; ++ } + debug("provider %s slot %lu: label <%s> manufacturerID <%s> " + "model <%s> serial <%s> flags 0x%lx", +- provider_id, (unsigned long)i, ++ provider_uri, (unsigned long)i, + token->label, token->manufacturerID, token->model, + token->serialNumber, token->flags); +- /* open session, login with pin and retrieve public keys */ +- if (pkcs11_open_session(p, i, pin) == 0) +- pkcs11_fetch_keys(p, i, keyp, &nkeys); ++ /* open session if not yet opened, login with pin ++ * and retrieve public keys */ ++ if ((p->module->slotinfo[i].session != 0) || ++ pkcs11_open_session(p, i, pin) == 0) ++ pkcs11_fetch_keys(p, i, keyp, &nkeys, uri); + } + if (nkeys > 0) { +- TAILQ_INSERT_TAIL(&pkcs11_providers, p, next); +- p->refcount++; /* add to provider list */ ++ free(provider_uri); + return (nkeys); + } +- debug("%s: provider %s returned no keys", __func__, provider_id); ++ debug("%s: provider %s returned no keys", __func__, provider_uri); + /* don't add the provider, since it does not have any keys */ + fail: +- if (need_finalize && (rv = f->C_Finalize(NULL)) != CKR_OK) +- error("C_Finalize for provider %s failed: %lu", +- provider_id, rv); + if (p) { +- free(p->slotlist); +- free(p->slotinfo); +- free(p); ++ pkcs11_provider_unref(p); + } +- if (handle) +- dlclose(handle); ++ free(provider_uri); + return (-1); + } + +diff --git a/ssh-pkcs11.h b/ssh-pkcs11.h +index 0ced74f2..c63a88f6 100644 +--- a/ssh-pkcs11.h ++++ b/ssh-pkcs11.h +@@ -14,10 +14,15 @@ + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ ++ ++#include "ssh-pkcs11-uri.h" ++ + int pkcs11_init(int); + void pkcs11_terminate(void); + int pkcs11_add_provider(char *, char *, struct sshkey ***); ++int pkcs11_add_provider_by_uri(struct pkcs11_uri *, char *, struct sshkey ***); + int pkcs11_del_provider(char *); ++int pkcs11_uri_write(const struct sshkey *, FILE *); + + #if !defined(WITH_OPENSSL) && defined(ENABLE_PKCS11) + #undef ENABLE_PKCS11 +diff --git a/ssh.c b/ssh.c +index d3619fe2..180eb2e0 100644 +--- a/ssh.c ++++ b/ssh.c +@@ -769,6 +769,14 @@ main(int ac, char **av) + options.gss_deleg_creds = 1; + break; + case 'i': ++#ifdef ENABLE_PKCS11 ++ if (strlen(optarg) >= strlen(PKCS11_URI_SCHEME) && ++ strncmp(optarg, PKCS11_URI_SCHEME, ++ strlen(PKCS11_URI_SCHEME)) == 0) { ++ add_identity_file(&options, NULL, optarg, 1); ++ break; ++ } ++#endif + p = tilde_expand_filename(optarg, getuid()); + if (stat(p, &st) < 0) + fprintf(stderr, "Warning: Identity file %s " +@@ -1999,6 +2007,45 @@ ssh_session2(struct ssh *ssh, struct passwd *pw) + options.escape_char : SSH_ESCAPECHAR_NONE, id); + } + ++#ifdef ENABLE_PKCS11 ++static void ++load_pkcs11_identity(char *pkcs11_uri, char *identity_files[], ++ struct sshkey *identity_keys[], int *n_ids) ++{ ++ int nkeys, i; ++ struct sshkey **keys; ++ struct pkcs11_uri *uri; ++ ++ debug("identity file '%s' from pkcs#11", pkcs11_uri); ++ uri = pkcs11_uri_init(); ++ if (uri == NULL) ++ fatal("Failed to init PCKS#11 URI"); ++ ++ if (pkcs11_uri_parse(pkcs11_uri, uri) != 0) ++ fatal("Failed to parse PKCS#11 URI %s", pkcs11_uri); ++ ++ /* we need to merge URI and provider together */ ++ if (options.pkcs11_provider != NULL && uri->module_path == NULL) ++ uri->module_path = strdup(options.pkcs11_provider); ++ ++ if (options.num_identity_files < SSH_MAX_IDENTITY_FILES && ++ (nkeys = pkcs11_add_provider_by_uri(uri, NULL, &keys)) > 0) { ++ for (i = 0; i < nkeys; i++) { ++ if (*n_ids >= SSH_MAX_IDENTITY_FILES) { ++ sshkey_free(keys[i]); ++ continue; ++ } ++ identity_keys[*n_ids] = keys[i]; ++ identity_files[*n_ids] = pkcs11_uri_get(uri); ++ (*n_ids)++; ++ } ++ free(keys); ++ } ++ ++ pkcs11_uri_cleanup(uri); ++} ++#endif /* ENABLE_PKCS11 */ ++ + /* Loads all IdentityFile and CertificateFile keys */ + static void + load_public_identity_files(struct passwd *pw) +@@ -2011,10 +2058,6 @@ load_public_identity_files(struct passwd *pw) + char *certificate_files[SSH_MAX_CERTIFICATE_FILES]; + struct sshkey *certificates[SSH_MAX_CERTIFICATE_FILES]; + int certificate_file_userprovided[SSH_MAX_CERTIFICATE_FILES]; +-#ifdef ENABLE_PKCS11 +- struct sshkey **keys; +- int nkeys; +-#endif /* PKCS11 */ + + n_ids = n_certs = 0; + memset(identity_files, 0, sizeof(identity_files)); +@@ -2023,32 +2066,46 @@ load_public_identity_files(struct passwd *pw) + sizeof(certificate_file_userprovided)); + + #ifdef ENABLE_PKCS11 +- if (options.pkcs11_provider != NULL && +- options.num_identity_files < SSH_MAX_IDENTITY_FILES && +- (pkcs11_init(!options.batch_mode) == 0) && +- (nkeys = pkcs11_add_provider(options.pkcs11_provider, NULL, +- &keys)) > 0) { +- for (i = 0; i < nkeys; i++) { +- if (n_ids >= SSH_MAX_IDENTITY_FILES) { +- sshkey_free(keys[i]); +- continue; +- } +- identity_keys[n_ids] = keys[i]; +- identity_files[n_ids] = +- xstrdup(options.pkcs11_provider); /* XXX */ +- n_ids++; +- } +- free(keys); ++ /* handle fallback from PKCS11Provider option */ ++ pkcs11_init(!options.batch_mode); ++ ++ if (options.pkcs11_provider != NULL) { ++ struct pkcs11_uri *uri; ++ ++ uri = pkcs11_uri_init(); ++ if (uri == NULL) ++ fatal("Failed to init PCKS#11 URI"); ++ ++ /* Construct simple PKCS#11 URI to simplify access */ ++ uri->module_path = strdup(options.pkcs11_provider); ++ ++ /* Add it as any other IdentityFile */ ++ cp = pkcs11_uri_get(uri); ++ add_identity_file(&options, NULL, cp, 1); ++ free(cp); ++ ++ pkcs11_uri_cleanup(uri); + } + #endif /* ENABLE_PKCS11 */ + for (i = 0; i < options.num_identity_files; i++) { ++ char *name = options.identity_files[i]; + if (n_ids >= SSH_MAX_IDENTITY_FILES || +- strcasecmp(options.identity_files[i], "none") == 0) { ++ strcasecmp(name, "none") == 0) { + free(options.identity_files[i]); + options.identity_files[i] = NULL; + continue; + } +- cp = tilde_expand_filename(options.identity_files[i], getuid()); ++#ifdef ENABLE_PKCS11 ++ if (strlen(name) >= strlen(PKCS11_URI_SCHEME) && ++ strncmp(name, PKCS11_URI_SCHEME, ++ strlen(PKCS11_URI_SCHEME)) == 0) { ++ load_pkcs11_identity(name, identity_files, ++ identity_keys, &n_ids); ++ free(options.identity_files[i]); ++ continue; ++ } ++#endif /* ENABLE_PKCS11 */ ++ cp = tilde_expand_filename(name, getuid()); + filename = percent_expand(cp, "d", pw->pw_dir, + "u", pw->pw_name, "l", thishost, "h", host, + "r", options.user, (char *)NULL); +diff --git a/ssh_config.5 b/ssh_config.5 +index 71705cab..e0266609 100644 +--- a/ssh_config.5 ++++ b/ssh_config.5 +@@ -919,6 +919,19 @@ may also be used in conjunction with + .Cm CertificateFile + in order to provide any certificate also needed for authentication with + the identity. ++.Pp ++The authentication identity can be also specified in a form of PKCS#11 URI ++starting with a string ++.Cm pkcs11: . ++There is supported a subset of the PKCS#11 URI as defined ++in RFC 7512 (implemented path arguments ++.Cm id , ++.Cm manufacturer , ++.Cm object , ++.Cm token ++and query argument ++.Cm module-path ++). The URI can not be in quotes. + .It Cm IgnoreUnknown + Specifies a pattern-list of unknown options to be ignored if they are + encountered in configuration parsing. diff --git a/openssh-7.7p1-fips.patch b/openssh-7.7p1-fips.patch new file mode 100644 index 0000000..084c903 --- /dev/null +++ b/openssh-7.7p1-fips.patch @@ -0,0 +1,705 @@ +diff -up openssh-7.7p1/cipher.c.fips openssh-7.7p1/cipher.c +--- openssh-7.7p1/cipher.c.fips 2018-08-08 10:08:40.814719906 +0200 ++++ openssh-7.7p1/cipher.c 2018-08-08 10:08:40.821719965 +0200 +@@ -39,6 +39,8 @@ + + #include + ++#include ++ + #include + #include + #include +@@ -90,6 +92,33 @@ static const struct sshcipher ciphers[] + { NULL, 0, 0, 0, 0, 0, NULL } + }; + ++static const struct sshcipher fips_ciphers[] = { ++#ifdef WITH_OPENSSL ++ { "3des-cbc", 8, 24, 0, 0, CFLAG_CBC, EVP_des_ede3_cbc }, ++ { "aes128-cbc", 16, 16, 0, 0, CFLAG_CBC, EVP_aes_128_cbc }, ++ { "aes192-cbc", 16, 24, 0, 0, CFLAG_CBC, EVP_aes_192_cbc }, ++ { "aes256-cbc", 16, 32, 0, 0, CFLAG_CBC, EVP_aes_256_cbc }, ++ { "rijndael-cbc@lysator.liu.se", ++ 16, 32, 0, 0, CFLAG_CBC, EVP_aes_256_cbc }, ++ { "aes128-ctr", 16, 16, 0, 0, 0, EVP_aes_128_ctr }, ++ { "aes192-ctr", 16, 24, 0, 0, 0, EVP_aes_192_ctr }, ++ { "aes256-ctr", 16, 32, 0, 0, 0, EVP_aes_256_ctr }, ++# ifdef OPENSSL_HAVE_EVPGCM ++ { "aes128-gcm@openssh.com", ++ 16, 16, 12, 16, 0, EVP_aes_128_gcm }, ++ { "aes256-gcm@openssh.com", ++ 16, 32, 12, 16, 0, EVP_aes_256_gcm }, ++# endif /* OPENSSL_HAVE_EVPGCM */ ++#else ++ { "aes128-ctr", 16, 16, 0, 0, CFLAG_AESCTR, NULL }, ++ { "aes192-ctr", 16, 24, 0, 0, CFLAG_AESCTR, NULL }, ++ { "aes256-ctr", 16, 32, 0, 0, CFLAG_AESCTR, NULL }, ++#endif ++ { "none", 8, 0, 0, 0, CFLAG_NONE, NULL }, ++ ++ { NULL, 0, 0, 0, 0, 0, NULL } ++}; ++ + /*--*/ + + /* Returns a comma-separated list of supported ciphers. */ +@@ -100,7 +129,7 @@ cipher_alg_list(char sep, int auth_only) + size_t nlen, rlen = 0; + const struct sshcipher *c; + +- for (c = ciphers; c->name != NULL; c++) { ++ for (c = FIPS_mode() ? fips_ciphers : ciphers; c->name != NULL; c++) { + if ((c->flags & CFLAG_INTERNAL) != 0) + continue; + if (auth_only && c->auth_len == 0) +@@ -172,7 +201,7 @@ const struct sshcipher * + cipher_by_name(const char *name) + { + const struct sshcipher *c; +- for (c = ciphers; c->name != NULL; c++) ++ for (c = FIPS_mode() ? fips_ciphers : ciphers; c->name != NULL; c++) + if (strcmp(c->name, name) == 0) + return c; + return NULL; +diff -up openssh-7.7p1/cipher-ctr.c.fips openssh-7.7p1/cipher-ctr.c +--- openssh-7.7p1/cipher-ctr.c.fips 2018-08-08 10:08:40.709719021 +0200 ++++ openssh-7.7p1/cipher-ctr.c 2018-08-08 10:08:40.821719965 +0200 +@@ -179,7 +179,8 @@ evp_aes_128_ctr(void) + aes_ctr.do_cipher = ssh_aes_ctr; + #ifndef SSH_OLD_EVP + aes_ctr.flags = EVP_CIPH_CBC_MODE | EVP_CIPH_VARIABLE_LENGTH | +- EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CUSTOM_IV; ++ EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CUSTOM_IV | ++ EVP_CIPH_FLAG_FIPS; + #endif + return (&aes_ctr); + } +diff -up openssh-7.7p1/clientloop.c.fips openssh-7.7p1/clientloop.c +--- openssh-7.7p1/clientloop.c.fips 2018-08-08 10:08:40.769719527 +0200 ++++ openssh-7.7p1/clientloop.c 2018-08-08 10:08:40.822719973 +0200 +@@ -1978,7 +1978,8 @@ key_accepted_by_hostkeyalgs(const struct + { + const char *ktype = sshkey_ssh_name(key); + const char *hostkeyalgs = options.hostkeyalgorithms != NULL ? +- options.hostkeyalgorithms : KEX_DEFAULT_PK_ALG; ++ options.hostkeyalgorithms : (FIPS_mode() ? ++ KEX_FIPS_PK_ALG : KEX_DEFAULT_PK_ALG); + + if (key == NULL || key->type == KEY_UNSPEC) + return 0; +diff -up openssh-7.7p1/dh.h.fips openssh-7.7p1/dh.h +--- openssh-7.7p1/dh.h.fips 2018-04-02 07:38:28.000000000 +0200 ++++ openssh-7.7p1/dh.h 2018-08-08 10:08:40.822719973 +0200 +@@ -51,6 +51,7 @@ u_int dh_estimate(int); + * Miniumum increased in light of DH precomputation attacks. + */ + #define DH_GRP_MIN 2048 ++#define DH_GRP_MIN_FIPS 2048 + #define DH_GRP_MAX 8192 + + /* +diff -up openssh-7.7p1/entropy.c.fips openssh-7.7p1/entropy.c +--- openssh-7.7p1/entropy.c.fips 2018-08-08 10:08:40.698718928 +0200 ++++ openssh-7.7p1/entropy.c 2018-08-08 10:08:40.822719973 +0200 +@@ -217,6 +217,9 @@ seed_rng(void) + fatal("OpenSSL version mismatch. Built against %lx, you " + "have %lx", (u_long)OPENSSL_VERSION_NUMBER, SSLeay()); + ++ /* clean the PRNG status when exiting the program */ ++ atexit(RAND_cleanup); ++ + #ifndef OPENSSL_PRNG_ONLY + if (RAND_status() == 1) { + debug3("RNG is ready, skipping seeding"); +diff -up openssh-7.7p1/kex.c.fips openssh-7.7p1/kex.c +--- openssh-7.7p1/kex.c.fips 2018-08-08 10:08:40.815719915 +0200 ++++ openssh-7.7p1/kex.c 2018-08-08 10:11:24.109081924 +0200 +@@ -35,6 +35,7 @@ + #ifdef WITH_OPENSSL + #include + #include ++#include + #endif + + #include "ssh2.h" +@@ -122,6 +123,26 @@ static const struct kexalg kexalgs[] = { + { NULL, -1, -1, -1}, + }; + ++static const struct kexalg kexalgs_fips[] = { ++ { KEX_DH14_SHA256, KEX_DH_GRP14_SHA256, 0, SSH_DIGEST_SHA256 }, ++ { KEX_DH16_SHA512, KEX_DH_GRP16_SHA512, 0, SSH_DIGEST_SHA512 }, ++ { KEX_DH18_SHA512, KEX_DH_GRP18_SHA512, 0, SSH_DIGEST_SHA512 }, ++#ifdef HAVE_EVP_SHA256 ++ { KEX_DHGEX_SHA256, KEX_DH_GEX_SHA256, 0, SSH_DIGEST_SHA256 }, ++#endif ++#ifdef OPENSSL_HAS_ECC ++ { KEX_ECDH_SHA2_NISTP256, KEX_ECDH_SHA2, ++ NID_X9_62_prime256v1, SSH_DIGEST_SHA256 }, ++ { KEX_ECDH_SHA2_NISTP384, KEX_ECDH_SHA2, NID_secp384r1, ++ SSH_DIGEST_SHA384 }, ++# ifdef OPENSSL_HAS_NISTP521 ++ { KEX_ECDH_SHA2_NISTP521, KEX_ECDH_SHA2, NID_secp521r1, ++ SSH_DIGEST_SHA512 }, ++# endif ++#endif ++ { NULL, -1, -1, -1}, ++}; ++ + char * + kex_alg_list(char sep) + { +@@ -129,7 +150,7 @@ kex_alg_list(char sep) + size_t nlen, rlen = 0; + const struct kexalg *k; + +- for (k = kexalgs; k->name != NULL; k++) { ++ for (k = (FIPS_mode() ? kexalgs_fips : kexalgs); k->name != NULL; k++) { + if (ret != NULL) + ret[rlen++] = sep; + nlen = strlen(k->name); +@@ -149,7 +170,7 @@ kex_alg_by_name(const char *name) + { + const struct kexalg *k; + +- for (k = kexalgs; k->name != NULL; k++) { ++ for (k = (FIPS_mode() ? kexalgs_fips : kexalgs); k->name != NULL; k++) { + if (strcmp(k->name, name) == 0) + return k; + #ifdef GSSAPI +@@ -175,7 +196,10 @@ kex_names_valid(const char *names) + for ((p = strsep(&cp, ",")); p && *p != '\0'; + (p = strsep(&cp, ","))) { + if (kex_alg_by_name(p) == NULL) { +- error("Unsupported KEX algorithm \"%.100s\"", p); ++ if (FIPS_mode()) ++ error("\"%.100s\" is not allowed in FIPS mode", p); ++ else ++ error("Unsupported KEX algorithm \"%.100s\"", p); + free(s); + return 0; + } +diff -up openssh-7.7p1/kexgexc.c.fips openssh-7.7p1/kexgexc.c +--- openssh-7.7p1/kexgexc.c.fips 2018-04-02 07:38:28.000000000 +0200 ++++ openssh-7.7p1/kexgexc.c 2018-08-08 10:08:40.822719973 +0200 +@@ -28,6 +28,7 @@ + + #ifdef WITH_OPENSSL + ++#include + #include + + #include +@@ -63,7 +64,7 @@ kexgex_client(struct ssh *ssh) + + nbits = dh_estimate(kex->dh_need * 8); + +- kex->min = DH_GRP_MIN; ++ kex->min = FIPS_mode() ? DH_GRP_MIN_FIPS : DH_GRP_MIN; + kex->max = DH_GRP_MAX; + kex->nbits = nbits; + if (datafellows & SSH_BUG_DHGEX_LARGE) +diff -up openssh-7.7p1/kexgexs.c.fips openssh-7.7p1/kexgexs.c +--- openssh-7.7p1/kexgexs.c.fips 2018-04-02 07:38:28.000000000 +0200 ++++ openssh-7.7p1/kexgexs.c 2018-08-08 10:08:40.823719982 +0200 +@@ -82,9 +82,9 @@ input_kex_dh_gex_request(int type, u_int + kex->nbits = nbits; + kex->min = min; + kex->max = max; +- min = MAXIMUM(DH_GRP_MIN, min); ++ min = MAXIMUM(FIPS_mode() ? DH_GRP_MIN_FIPS : DH_GRP_MIN, min); + max = MINIMUM(DH_GRP_MAX, max); +- nbits = MAXIMUM(DH_GRP_MIN, nbits); ++ nbits = MAXIMUM(FIPS_mode() ? DH_GRP_MIN_FIPS : DH_GRP_MIN, nbits); + nbits = MINIMUM(DH_GRP_MAX, nbits); + + if (kex->max < kex->min || kex->nbits < kex->min || +diff -up openssh-7.7p1/mac.c.fips openssh-7.7p1/mac.c +--- openssh-7.7p1/mac.c.fips 2018-08-08 10:08:40.815719915 +0200 ++++ openssh-7.7p1/mac.c 2018-08-08 10:11:56.915352642 +0200 +@@ -27,6 +27,8 @@ + + #include + ++#include ++ + #include + #include + +@@ -54,7 +56,7 @@ struct macalg { + int etm; /* Encrypt-then-MAC */ + }; + +-static const struct macalg macs[] = { ++static const struct macalg all_macs[] = { + /* Encrypt-and-MAC (encrypt-and-authenticate) variants */ + { "hmac-sha1", SSH_DIGEST, SSH_DIGEST_SHA1, 0, 0, 0, 0 }, + { "hmac-sha1-96", SSH_DIGEST, SSH_DIGEST_SHA1, 96, 0, 0, 0 }, +@@ -82,6 +84,24 @@ static const struct macalg macs[] = { + { NULL, 0, 0, 0, 0, 0, 0 } + }; + ++static const struct macalg fips_macs[] = { ++ /* Encrypt-and-MAC (encrypt-and-authenticate) variants */ ++ { "hmac-sha1", SSH_DIGEST, SSH_DIGEST_SHA1, 0, 0, 0, 0 }, ++#ifdef HAVE_EVP_SHA256 ++ { "hmac-sha2-256", SSH_DIGEST, SSH_DIGEST_SHA256, 0, 0, 0, 0 }, ++ { "hmac-sha2-512", SSH_DIGEST, SSH_DIGEST_SHA512, 0, 0, 0, 0 }, ++#endif ++ ++ /* Encrypt-then-MAC variants */ ++ { "hmac-sha1-etm@openssh.com", SSH_DIGEST, SSH_DIGEST_SHA1, 0, 0, 0, 1 }, ++#ifdef HAVE_EVP_SHA256 ++ { "hmac-sha2-256-etm@openssh.com", SSH_DIGEST, SSH_DIGEST_SHA256, 0, 0, 0, 1 }, ++ { "hmac-sha2-512-etm@openssh.com", SSH_DIGEST, SSH_DIGEST_SHA512, 0, 0, 0, 1 }, ++#endif ++ ++ { NULL, 0, 0, 0, 0, 0, 0 } ++}; ++ + /* Returns a list of supported MACs separated by the specified char. */ + char * + mac_alg_list(char sep) +@@ -90,7 +110,7 @@ mac_alg_list(char sep) + size_t nlen, rlen = 0; + const struct macalg *m; + +- for (m = macs; m->name != NULL; m++) { ++ for (m = FIPS_mode() ? fips_macs : all_macs; m->name != NULL; m++) { + if (ret != NULL) + ret[rlen++] = sep; + nlen = strlen(m->name); +@@ -129,7 +149,7 @@ mac_setup(struct sshmac *mac, char *name + { + const struct macalg *m; + +- for (m = macs; m->name != NULL; m++) { ++ for (m = FIPS_mode() ? fips_macs : all_macs; m->name != NULL; m++) { + if (strcmp(name, m->name) != 0) + continue; + if (mac != NULL) +diff -up openssh-7.7p1/Makefile.in.fips openssh-7.7p1/Makefile.in +--- openssh-7.7p1/Makefile.in.fips 2018-08-08 10:08:40.815719915 +0200 ++++ openssh-7.7p1/Makefile.in 2018-08-08 10:08:40.823719982 +0200 +@@ -179,25 +179,25 @@ libssh.a: $(LIBSSH_OBJS) + $(RANLIB) $@ + + ssh$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHOBJS) +- $(LD) -o $@ $(SSHOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHLIBS) $(LIBS) $(GSSLIBS) ++ $(LD) -o $@ $(SSHOBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lfipscheck $(SSHLIBS) $(LIBS) $(GSSLIBS) + + sshd$(EXEEXT): libssh.a $(LIBCOMPAT) $(SSHDOBJS) +- $(LD) -o $@ $(SSHDOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHDLIBS) $(LIBS) $(GSSLIBS) $(K5LIBS) ++ $(LD) -o $@ $(SSHDOBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lfipscheck $(SSHDLIBS) $(LIBS) $(GSSLIBS) $(K5LIBS) + + scp$(EXEEXT): $(LIBCOMPAT) libssh.a scp.o progressmeter.o + $(LD) -o $@ scp.o progressmeter.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) + + ssh-add$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-add.o +- $(LD) -o $@ ssh-add.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) ++ $(LD) -o $@ ssh-add.o $(LDFLAGS) -lssh -lopenbsd-compat -lfipscheck $(LIBS) + + ssh-agent$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-agent.o ssh-pkcs11-client.o +- $(LD) -o $@ ssh-agent.o ssh-pkcs11-client.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) ++ $(LD) -o $@ ssh-agent.o ssh-pkcs11-client.o $(LDFLAGS) -lssh -lopenbsd-compat -lfipscheck $(LIBS) + + ssh-keygen$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keygen.o +- $(LD) -o $@ ssh-keygen.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) ++ $(LD) -o $@ ssh-keygen.o $(LDFLAGS) -lssh -lopenbsd-compat -lfipscheck $(LIBS) + + ssh-keysign$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keysign.o readconf.o uidswap.o +- $(LD) -o $@ ssh-keysign.o readconf.o uidswap.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) ++ $(LD) -o $@ ssh-keysign.o readconf.o uidswap.o $(LDFLAGS) -lssh -lopenbsd-compat -lfipscheck $(LIBS) + + ssh-pkcs11-helper$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-pkcs11-helper.o ssh-pkcs11.o + $(LD) -o $@ ssh-pkcs11-helper.o ssh-pkcs11.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) +@@ -215,7 +215,7 @@ ssh-cavs$(EXEEXT): $(LIBCOMPAT) libssh.a + $(LD) -o $@ ssh-cavs.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) + + ssh-keyscan$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keyscan.o +- $(LD) -o $@ ssh-keyscan.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) ++ $(LD) -o $@ ssh-keyscan.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lfipscheck $(LIBS) + + sftp-server$(EXEEXT): $(LIBCOMPAT) libssh.a sftp.o sftp-common.o sftp-server.o sftp-server-main.o + $(LD) -o $@ sftp-server.o sftp-common.o sftp-server-main.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) +diff -up openssh-7.7p1/myproposal.h.fips openssh-7.7p1/myproposal.h +--- openssh-7.7p1/myproposal.h.fips 2018-04-02 07:38:28.000000000 +0200 ++++ openssh-7.7p1/myproposal.h 2018-08-08 10:08:40.823719982 +0200 +@@ -114,6 +114,14 @@ + "rsa-sha2-256," \ + "ssh-rsa" + ++#define KEX_FIPS_PK_ALG \ ++ HOSTKEY_ECDSA_CERT_METHODS \ ++ "ssh-rsa-cert-v01@openssh.com," \ ++ HOSTKEY_ECDSA_METHODS \ ++ "rsa-sha2-512," \ ++ "rsa-sha2-256," \ ++ "ssh-rsa" ++ + /* the actual algorithms */ + + #define KEX_SERVER_ENCRYPT \ +@@ -137,6 +145,38 @@ + + #define KEX_CLIENT_MAC KEX_SERVER_MAC + ++#define KEX_FIPS_ENCRYPT \ ++ "aes128-ctr,aes192-ctr,aes256-ctr," \ ++ "aes128-cbc,3des-cbc," \ ++ "aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se" \ ++ AESGCM_CIPHER_MODES ++#ifdef HAVE_EVP_SHA256 ++# define KEX_DEFAULT_KEX_FIPS \ ++ KEX_ECDH_METHODS \ ++ KEX_SHA2_METHODS \ ++ "diffie-hellman-group14-sha256" ++# define KEX_FIPS_MAC \ ++ "hmac-sha1," \ ++ "hmac-sha2-256," \ ++ "hmac-sha2-512," \ ++ "hmac-sha1-etm@openssh.com," \ ++ "hmac-sha2-256-etm@openssh.com," \ ++ "hmac-sha2-512-etm@openssh.com" ++#else ++# ifdef OPENSSL_HAS_NISTP521 ++# define KEX_DEFAULT_KEX_FIPS \ ++ "ecdh-sha2-nistp256," \ ++ "ecdh-sha2-nistp384," \ ++ "ecdh-sha2-nistp521" ++# else ++# define KEX_DEFAULT_KEX_FIPS \ ++ "ecdh-sha2-nistp256," \ ++ "ecdh-sha2-nistp384" ++# endif ++#define KEX_FIPS_MAC \ ++ "hmac-sha1" ++#endif ++ + #else /* WITH_OPENSSL */ + + #define KEX_SERVER_KEX \ +diff -up openssh-7.7p1/readconf.c.fips openssh-7.7p1/readconf.c +--- openssh-7.7p1/readconf.c.fips 2018-08-08 10:08:40.769719527 +0200 ++++ openssh-7.7p1/readconf.c 2018-08-08 10:08:40.824719990 +0200 +@@ -2081,17 +2081,18 @@ fill_default_options(Options * options) + all_mac = mac_alg_list(','); + all_kex = kex_alg_list(','); + all_key = sshkey_alg_list(0, 0, 1, ','); +-#define ASSEMBLE(what, defaults, all) \ ++#define ASSEMBLE(what, defaults, fips_defaults, all) \ + do { \ + if ((r = kex_assemble_names(&options->what, \ +- defaults, all)) != 0) \ ++ (FIPS_mode() ? fips_defaults : defaults), \ ++ all)) != 0) \ + fatal("%s: %s: %s", __func__, #what, ssh_err(r)); \ + } while (0) +- ASSEMBLE(ciphers, KEX_SERVER_ENCRYPT, all_cipher); +- ASSEMBLE(macs, KEX_SERVER_MAC, all_mac); +- ASSEMBLE(kex_algorithms, KEX_SERVER_KEX, all_kex); +- ASSEMBLE(hostbased_key_types, KEX_DEFAULT_PK_ALG, all_key); +- ASSEMBLE(pubkey_key_types, KEX_DEFAULT_PK_ALG, all_key); ++ ASSEMBLE(ciphers, KEX_SERVER_ENCRYPT, KEX_FIPS_ENCRYPT, all_cipher); ++ ASSEMBLE(macs, KEX_SERVER_MAC, KEX_FIPS_MAC, all_mac); ++ ASSEMBLE(kex_algorithms, KEX_SERVER_KEX, KEX_DEFAULT_KEX_FIPS, all_kex); ++ ASSEMBLE(hostbased_key_types, KEX_DEFAULT_PK_ALG, KEX_FIPS_PK_ALG, all_key); ++ ASSEMBLE(pubkey_key_types, KEX_DEFAULT_PK_ALG, KEX_FIPS_PK_ALG, all_key); + #undef ASSEMBLE + free(all_cipher); + free(all_mac); +diff -up openssh-7.7p1/sandbox-seccomp-filter.c.fips openssh-7.7p1/sandbox-seccomp-filter.c +--- openssh-7.7p1/sandbox-seccomp-filter.c.fips 2018-08-08 10:08:40.794719737 +0200 ++++ openssh-7.7p1/sandbox-seccomp-filter.c 2018-08-08 10:08:40.824719990 +0200 +@@ -137,6 +137,9 @@ static const struct sock_filter preauth_ + #ifdef __NR_open + SC_DENY(__NR_open, EACCES), + #endif ++#ifdef __NR_socket ++ SC_DENY(__NR_socket, EACCES), ++#endif + #ifdef __NR_openat + SC_DENY(__NR_openat, EACCES), + #endif +diff -up openssh-7.7p1/servconf.c.fips openssh-7.7p1/servconf.c +--- openssh-7.7p1/servconf.c.fips 2018-08-08 10:08:40.778719603 +0200 ++++ openssh-7.7p1/servconf.c 2018-08-08 10:08:40.824719990 +0200 +@@ -196,17 +196,18 @@ option_clear_or_none(const char *o) + all_mac = mac_alg_list(','); + all_kex = kex_alg_list(','); + all_key = sshkey_alg_list(0, 0, 1, ','); +-#define ASSEMBLE(what, defaults, all) \ ++#define ASSEMBLE(what, defaults, fips_defaults, all) \ + do { \ +- if ((r = kex_assemble_names(&o->what, defaults, all)) != 0) \ ++ if ((r = kex_assemble_names(&o->what, (FIPS_mode() \ ++ ? fips_defaults : defaults), all)) != 0) \ + fatal("%s: %s: %s", __func__, #what, ssh_err(r)); \ + } while (0) +- ASSEMBLE(ciphers, KEX_SERVER_ENCRYPT, all_cipher); +- ASSEMBLE(macs, KEX_SERVER_MAC, all_mac); +- ASSEMBLE(kex_algorithms, KEX_SERVER_KEX, all_kex); +- ASSEMBLE(hostkeyalgorithms, KEX_DEFAULT_PK_ALG, all_key); +- ASSEMBLE(hostbased_key_types, KEX_DEFAULT_PK_ALG, all_key); +- ASSEMBLE(pubkey_key_types, KEX_DEFAULT_PK_ALG, all_key); ++ ASSEMBLE(ciphers, KEX_SERVER_ENCRYPT, KEX_FIPS_ENCRYPT, all_cipher); ++ ASSEMBLE(macs, KEX_SERVER_MAC, KEX_FIPS_MAC, all_mac); ++ ASSEMBLE(kex_algorithms, KEX_SERVER_KEX, KEX_DEFAULT_KEX_FIPS, all_kex); ++ ASSEMBLE(hostkeyalgorithms, KEX_DEFAULT_PK_ALG, KEX_FIPS_PK_ALG, all_key); ++ ASSEMBLE(hostbased_key_types, KEX_DEFAULT_PK_ALG, KEX_FIPS_PK_ALG, all_key); ++ ASSEMBLE(pubkey_key_types, KEX_DEFAULT_PK_ALG, KEX_FIPS_PK_ALG, all_key); + #undef ASSEMBLE + free(all_cipher); + free(all_mac); +diff -up openssh-7.7p1/ssh.c.fips openssh-7.7p1/ssh.c +--- openssh-7.7p1/ssh.c.fips 2018-08-08 10:08:40.811719881 +0200 ++++ openssh-7.7p1/ssh.c 2018-08-08 10:08:40.825719999 +0200 +@@ -76,6 +76,8 @@ + #include + #include + #endif ++#include ++#include + #include "openbsd-compat/openssl-compat.h" + #include "openbsd-compat/sys-queue.h" + +@@ -579,6 +581,14 @@ main(int ac, char **av) + sanitise_stdfd(); + + __progname = ssh_get_progname(av[0]); ++ SSLeay_add_all_algorithms(); ++ if (access("/etc/system-fips", F_OK) == 0) ++ if (! FIPSCHECK_verify(NULL, NULL)){ ++ if (FIPS_mode()) ++ fatal("FIPS integrity verification test failed."); ++ else ++ logit("FIPS integrity verification test failed."); ++ } + + #ifndef HAVE_SETPROCTITLE + /* Prepare for later setproctitle emulation */ +@@ -1045,7 +1055,6 @@ main(int ac, char **av) + host_arg = xstrdup(host); + + #ifdef WITH_OPENSSL +- OpenSSL_add_all_algorithms(); + ERR_load_crypto_strings(); + #endif + +@@ -1268,6 +1277,10 @@ main(int ac, char **av) + + seed_rng(); + ++ if (FIPS_mode()) { ++ logit("FIPS mode initialized"); ++ } ++ + if (options.user == NULL) + options.user = xstrdup(pw->pw_name); + +diff -up openssh-7.7p1/sshconnect2.c.fips openssh-7.7p1/sshconnect2.c +--- openssh-7.7p1/sshconnect2.c.fips 2018-08-08 10:08:40.786719670 +0200 ++++ openssh-7.7p1/sshconnect2.c 2018-08-08 10:08:40.825719999 +0200 +@@ -44,6 +44,8 @@ + #include + #endif + ++#include ++ + #include "openbsd-compat/sys-queue.h" + + #include "xmalloc.h" +@@ -235,7 +237,8 @@ order_hostkeyalgs(char *host, struct soc + for (i = 0; i < options.num_system_hostfiles; i++) + load_hostkeys(hostkeys, hostname, options.system_hostfiles[i]); + +- oavail = avail = xstrdup(KEX_DEFAULT_PK_ALG); ++ oavail = avail = xstrdup((FIPS_mode() ++ ? KEX_FIPS_PK_ALG : KEX_DEFAULT_PK_ALG)); + maxlen = strlen(avail) + 1; + first = xmalloc(maxlen); + last = xmalloc(maxlen); +@@ -290,21 +293,26 @@ ssh_kex2(char *host, struct sockaddr *ho + + #ifdef GSSAPI + if (options.gss_keyex) { +- /* Add the GSSAPI mechanisms currently supported on this +- * client to the key exchange algorithm proposal */ +- orig = options.kex_algorithms; +- +- if (options.gss_trust_dns) +- gss_host = (char *)get_canonical_hostname(active_state, 1); +- else +- gss_host = host; +- +- gss = ssh_gssapi_client_mechanisms(gss_host, +- options.gss_client_identity, options.gss_kex_algorithms); +- if (gss) { +- debug("Offering GSSAPI proposal: %s", gss); +- xasprintf(&options.kex_algorithms, +- "%s,%s", gss, orig); ++ if (FIPS_mode()) { ++ logit("Disabling GSSAPIKeyExchange. Not usable in FIPS mode"); ++ options.gss_keyex = 0; ++ } else { ++ /* Add the GSSAPI mechanisms currently supported on this ++ * client to the key exchange algorithm proposal */ ++ orig = options.kex_algorithms; ++ ++ if (options.gss_trust_dns) ++ gss_host = (char *)get_canonical_hostname(active_state, 1); ++ else ++ gss_host = host; ++ ++ gss = ssh_gssapi_client_mechanisms(gss_host, ++ options.gss_client_identity, options.gss_kex_algorithms); ++ if (gss) { ++ debug("Offering GSSAPI proposal: %s", gss); ++ xasprintf(&options.kex_algorithms, ++ "%s,%s", gss, orig); ++ } + } + } + #endif +@@ -322,14 +330,16 @@ ssh_kex2(char *host, struct sockaddr *ho + if (options.hostkeyalgorithms != NULL) { + all_key = sshkey_alg_list(0, 0, 1, ','); + if (kex_assemble_names(&options.hostkeyalgorithms, +- KEX_DEFAULT_PK_ALG, all_key) != 0) ++ (FIPS_mode() ? KEX_FIPS_PK_ALG : KEX_DEFAULT_PK_ALG), ++ all_key) != 0) + fatal("%s: kex_assemble_namelist", __func__); + free(all_key); + myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = + compat_pkalg_proposal(options.hostkeyalgorithms); + } else { + /* Enforce default */ +- options.hostkeyalgorithms = xstrdup(KEX_DEFAULT_PK_ALG); ++ options.hostkeyalgorithms = xstrdup((FIPS_mode() ++ ? KEX_FIPS_PK_ALG : KEX_DEFAULT_PK_ALG)); + /* Prefer algorithms that we already have keys for */ + myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = + compat_pkalg_proposal( +diff -up openssh-7.7p1/sshd.c.fips openssh-7.7p1/sshd.c +--- openssh-7.7p1/sshd.c.fips 2018-08-08 10:08:40.818719940 +0200 ++++ openssh-7.7p1/sshd.c 2018-08-08 10:08:40.826720007 +0200 +@@ -66,6 +66,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -77,6 +78,8 @@ + #include + #include + #include ++#include ++#include + #include "openbsd-compat/openssl-compat.h" + #endif + +@@ -1534,6 +1537,18 @@ main(int ac, char **av) + #endif + __progname = ssh_get_progname(av[0]); + ++ SSLeay_add_all_algorithms(); ++ if (access("/etc/system-fips", F_OK) == 0) ++ if (! FIPSCHECK_verify(NULL, NULL)) { ++ openlog(__progname, LOG_PID, LOG_AUTHPRIV); ++ if (FIPS_mode()) { ++ syslog(LOG_CRIT, "FIPS integrity verification test failed."); ++ cleanup_exit(255); ++ } ++ else ++ syslog(LOG_INFO, "FIPS integrity verification test failed."); ++ closelog(); ++ } + /* Save argv. Duplicate so setproctitle emulation doesn't clobber it */ + saved_argc = ac; + rexec_argc = ac; +@@ -1675,7 +1690,7 @@ main(int ac, char **av) + else + closefrom(REEXEC_DEVCRYPTO_RESERVED_FD); + +-#ifdef WITH_OPENSSL ++#if 0 /* FIPS */ + OpenSSL_add_all_algorithms(); + #endif + +@@ -1979,6 +1994,10 @@ main(int ac, char **av) + /* Reinitialize the log (because of the fork above). */ + log_init(__progname, options.log_level, options.log_facility, log_stderr); + ++ if (FIPS_mode()) { ++ logit("FIPS mode initialized"); ++ } ++ + /* Chdir to the root directory so that the current disk can be + unmounted if desired. */ + if (chdir("/") == -1) +@@ -2359,10 +2378,14 @@ do_ssh2_kex(void) + if (strlen(myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS]) == 0) + orig = NULL; + +- if (options.gss_keyex) +- gss = ssh_gssapi_server_mechanisms(); +- else +- gss = NULL; ++ if (options.gss_keyex) { ++ if (FIPS_mode()) { ++ logit("Disabling GSSAPIKeyExchange. Not usable in FIPS mode"); ++ options.gss_keyex = 0; ++ } else { ++ gss = ssh_gssapi_server_mechanisms(); ++ } ++ } + + if (gss && orig) + xasprintf(&newstr, "%s,%s", gss, orig); +diff -up openssh-7.7p1/sshkey.c.fips openssh-7.7p1/sshkey.c +--- openssh-7.7p1/sshkey.c.fips 2018-08-08 10:08:40.818719940 +0200 ++++ openssh-7.7p1/sshkey.c 2018-08-08 10:08:40.826720007 +0200 +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + #endif + + #include "crypto_api.h" +@@ -57,6 +58,7 @@ + #include "sshkey.h" + #include "sshkey-xmss.h" + #include "match.h" ++#include "log.h" + + #include "xmss_fast.h" + +@@ -1526,6 +1528,8 @@ rsa_generate_private_key(u_int bits, RSA + } + if (!BN_set_word(f4, RSA_F4) || + !RSA_generate_key_ex(private, bits, f4, NULL)) { ++ if (FIPS_mode()) ++ logit("%s: the key length might be unsupported by FIPS mode approved key generation method", __func__); + ret = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } +diff -up openssh-7.7p1/ssh-keygen.c.fips openssh-7.7p1/ssh-keygen.c +--- openssh-7.7p1/ssh-keygen.c.fips 2018-08-08 10:08:40.801719797 +0200 ++++ openssh-7.7p1/ssh-keygen.c 2018-08-08 10:08:40.827720016 +0200 +@@ -229,6 +229,12 @@ type_bits_valid(int type, const char *na + OPENSSL_DSA_MAX_MODULUS_BITS : OPENSSL_RSA_MAX_MODULUS_BITS; + if (*bitsp > maxbits) + fatal("key bits exceeds maximum %d", maxbits); ++ if (FIPS_mode()) { ++ if (type == KEY_DSA) ++ fatal("DSA keys are not allowed in FIPS mode"); ++ if (type == KEY_ED25519) ++ fatal("ED25519 keys are not allowed in FIPS mode"); ++ } + switch (type) { + case KEY_DSA: + if (*bitsp != 1024) diff --git a/openssh-7.7p1-gssapi-new-unique.patch b/openssh-7.7p1-gssapi-new-unique.patch new file mode 100644 index 0000000..7acc58a --- /dev/null +++ b/openssh-7.7p1-gssapi-new-unique.patch @@ -0,0 +1,646 @@ +diff --git a/auth-krb5.c b/auth-krb5.c +index a5a81ed2..63f877f2 100644 +--- a/auth-krb5.c ++++ b/auth-krb5.c +@@ -51,6 +51,7 @@ + #include + #include + #include ++#include + + extern ServerOptions options; + +@@ -77,7 +78,7 @@ auth_krb5_password(Authctxt *authctxt, const char *password) + #endif + krb5_error_code problem; + krb5_ccache ccache = NULL; +- int len; ++ char *ticket_name = NULL; + char *client, *platform_client; + const char *errmsg; + +@@ -163,7 +164,8 @@ auth_krb5_password(Authctxt *authctxt, const char *password) + goto out; + } + +- problem = ssh_krb5_cc_gen(authctxt->krb5_ctx, &authctxt->krb5_fwd_ccache); ++ problem = ssh_krb5_cc_new_unique(authctxt->krb5_ctx, ++ &authctxt->krb5_fwd_ccache, &authctxt->krb5_set_env); + if (problem) + goto out; + +@@ -172,21 +174,20 @@ auth_krb5_password(Authctxt *authctxt, const char *password) + if (problem) + goto out; + +- problem= krb5_cc_store_cred(authctxt->krb5_ctx, authctxt->krb5_fwd_ccache, ++ problem = krb5_cc_store_cred(authctxt->krb5_ctx, authctxt->krb5_fwd_ccache, + &creds); + if (problem) + goto out; + #endif + +- authctxt->krb5_ticket_file = (char *)krb5_cc_get_name(authctxt->krb5_ctx, authctxt->krb5_fwd_ccache); ++ problem = krb5_cc_get_full_name(authctxt->krb5_ctx, ++ authctxt->krb5_fwd_ccache, &ticket_name); + +- len = strlen(authctxt->krb5_ticket_file) + 6; +- authctxt->krb5_ccname = xmalloc(len); +- snprintf(authctxt->krb5_ccname, len, "FILE:%s", +- authctxt->krb5_ticket_file); ++ authctxt->krb5_ccname = xstrdup(ticket_name); ++ krb5_free_string(authctxt->krb5_ctx, ticket_name); + + #ifdef USE_PAM +- if (options.use_pam) ++ if (options.use_pam && authctxt->krb5_set_env) + do_pam_putenv("KRB5CCNAME", authctxt->krb5_ccname); + #endif + +@@ -222,11 +223,54 @@ auth_krb5_password(Authctxt *authctxt, const char *password) + void + krb5_cleanup_proc(Authctxt *authctxt) + { ++ struct stat krb5_ccname_stat; ++ char krb5_ccname[128], *krb5_ccname_dir_start, *krb5_ccname_dir_end; ++ + debug("krb5_cleanup_proc called"); + if (authctxt->krb5_fwd_ccache) { +- krb5_cc_destroy(authctxt->krb5_ctx, authctxt->krb5_fwd_ccache); ++ krb5_context ctx = authctxt->krb5_ctx; ++ krb5_cccol_cursor cursor; ++ krb5_ccache ccache; ++ int ret; ++ ++ krb5_cc_destroy(ctx, authctxt->krb5_fwd_ccache); + authctxt->krb5_fwd_ccache = NULL; ++ ++ ret = krb5_cccol_cursor_new(ctx, &cursor); ++ if (ret) ++ goto out; ++ ++ ret = krb5_cccol_cursor_next(ctx, cursor, &ccache); ++ if (ret == 0 && ccache != NULL) { ++ /* There is at least one other ccache in collection ++ * we can switch to */ ++ krb5_cc_switch(ctx, ccache); ++ } else { ++ /* Clean up the collection too */ ++ strncpy(krb5_ccname, authctxt->krb5_ccname, sizeof(krb5_ccname) - 10); ++ krb5_ccname_dir_start = strchr(krb5_ccname, ':') + 1; ++ *krb5_ccname_dir_start++ = '\0'; ++ if (strcmp(krb5_ccname, "DIR") == 0) { ++ ++ strcat(krb5_ccname_dir_start, "/primary"); ++ ++ if (stat(krb5_ccname_dir_start, &krb5_ccname_stat) == 0) { ++ if (unlink(krb5_ccname_dir_start) == 0) { ++ krb5_ccname_dir_end = strrchr(krb5_ccname_dir_start, '/'); ++ *krb5_ccname_dir_end = '\0'; ++ if (rmdir(krb5_ccname_dir_start) == -1) ++ debug("cache dir '%s' remove failed: %s", ++ krb5_ccname_dir_start, strerror(errno)); ++ } ++ else ++ debug("cache primary file '%s', remove failed: %s", ++ krb5_ccname_dir_start, strerror(errno)); ++ } ++ } ++ } ++ krb5_cccol_cursor_free(ctx, &cursor); + } ++out: + if (authctxt->krb5_user) { + krb5_free_principal(authctxt->krb5_ctx, authctxt->krb5_user); + authctxt->krb5_user = NULL; +@@ -237,36 +287,186 @@ krb5_cleanup_proc(Authctxt *authctxt) + } + } + +-#ifndef HEIMDAL +-krb5_error_code +-ssh_krb5_cc_gen(krb5_context ctx, krb5_ccache *ccache) { +- int tmpfd, ret, oerrno; +- char ccname[40]; +- mode_t old_umask; + +- ret = snprintf(ccname, sizeof(ccname), +- "FILE:/tmp/krb5cc_%d_XXXXXXXXXX", geteuid()); +- if (ret < 0 || (size_t)ret >= sizeof(ccname)) +- return ENOMEM; +- +- old_umask = umask(0177); +- tmpfd = mkstemp(ccname + strlen("FILE:")); +- oerrno = errno; +- umask(old_umask); +- if (tmpfd == -1) { +- logit("mkstemp(): %.100s", strerror(oerrno)); +- return oerrno; ++#if !defined(HEIMDAL) ++int ++ssh_asprintf_append(char **dsc, const char *fmt, ...) { ++ char *src, *old; ++ va_list ap; ++ int i; ++ ++ va_start(ap, fmt); ++ i = vasprintf(&src, fmt, ap); ++ va_end(ap); ++ ++ if (i == -1 || src == NULL) ++ return -1; ++ ++ old = *dsc; ++ ++ i = asprintf(dsc, "%s%s", *dsc, src); ++ if (i == -1 || src == NULL) { ++ free(src); ++ return -1; ++ } ++ ++ free(old); ++ free(src); ++ ++ return i; ++} ++ ++int ++ssh_krb5_expand_template(char **result, const char *template) { ++ char *p_n, *p_o, *r, *tmp_template; ++ ++ debug3("%s: called, template = %s", __func__, template); ++ if (template == NULL) ++ return -1; ++ ++ tmp_template = p_n = p_o = xstrdup(template); ++ r = xstrdup(""); ++ ++ while ((p_n = strstr(p_o, "%{")) != NULL) { ++ ++ *p_n++ = '\0'; ++ if (ssh_asprintf_append(&r, "%s", p_o) == -1) ++ goto cleanup; ++ ++ if (strncmp(p_n, "{uid}", 5) == 0 || strncmp(p_n, "{euid}", 6) == 0 || ++ strncmp(p_n, "{USERID}", 8) == 0) { ++ p_o = strchr(p_n, '}') + 1; ++ if (ssh_asprintf_append(&r, "%d", geteuid()) == -1) ++ goto cleanup; ++ continue; ++ } ++ else if (strncmp(p_n, "{TEMP}", 6) == 0) { ++ p_o = strchr(p_n, '}') + 1; ++ if (ssh_asprintf_append(&r, "/tmp") == -1) ++ goto cleanup; ++ continue; ++ } else { ++ p_o = strchr(p_n, '}') + 1; ++ p_o = '\0'; ++ debug("%s: unsupported token %s in %s", __func__, p_n, template); ++ /* unknown token, fallback to the default */ ++ goto cleanup; ++ } + } + +- if (fchmod(tmpfd,S_IRUSR | S_IWUSR) == -1) { ++ if (ssh_asprintf_append(&r, "%s", p_o) == -1) ++ goto cleanup; ++ ++ *result = r; ++ free(tmp_template); ++ return 0; ++ ++cleanup: ++ free(r); ++ free(tmp_template); ++ return -1; ++} ++ ++krb5_error_code ++ssh_krb5_get_cctemplate(krb5_context ctx, char **ccname) { ++ profile_t p; ++ int ret = 0; ++ char *value = NULL; ++ ++ debug3("%s: called", __func__); ++ ret = krb5_get_profile(ctx, &p); ++ if (ret) ++ return ret; ++ ++ ret = profile_get_string(p, "libdefaults", "default_ccache_name", NULL, NULL, &value); ++ if (ret || !value) ++ return ret; ++ ++ ret = ssh_krb5_expand_template(ccname, value); ++ ++ debug3("%s: returning with ccname = %s", __func__, *ccname); ++ return ret; ++} ++ ++krb5_error_code ++ssh_krb5_cc_new_unique(krb5_context ctx, krb5_ccache *ccache, int *need_environment) { ++ int tmpfd, ret, oerrno, type_len; ++ char *ccname = NULL; ++ mode_t old_umask; ++ char *type = NULL, *colon = NULL; ++ ++ debug3("%s: called", __func__); ++ if (need_environment) ++ *need_environment = 0; ++ ret = ssh_krb5_get_cctemplate(ctx, &ccname); ++ if (ret || !ccname || options.kerberos_unique_ticket) { ++ /* Otherwise, go with the old method */ ++ if (ccname) ++ free(ccname); ++ ccname = NULL; ++ ++ ret = asprintf(&ccname, ++ "FILE:/tmp/krb5cc_%d_XXXXXXXXXX", geteuid()); ++ if (ret < 0) ++ return ENOMEM; ++ ++ old_umask = umask(0177); ++ tmpfd = mkstemp(ccname + strlen("FILE:")); + oerrno = errno; +- logit("fchmod(): %.100s", strerror(oerrno)); ++ umask(old_umask); ++ if (tmpfd == -1) { ++ logit("mkstemp(): %.100s", strerror(oerrno)); ++ return oerrno; ++ } ++ ++ if (fchmod(tmpfd,S_IRUSR | S_IWUSR) == -1) { ++ oerrno = errno; ++ logit("fchmod(): %.100s", strerror(oerrno)); ++ close(tmpfd); ++ return oerrno; ++ } ++ /* make sure the KRB5CCNAME is set for non-standard location */ ++ if (need_environment) ++ *need_environment = 1; + close(tmpfd); +- return oerrno; + } +- close(tmpfd); + +- return (krb5_cc_resolve(ctx, ccname, ccache)); ++ debug3("%s: setting default ccname to %s", __func__, ccname); ++ /* set the default with already expanded user IDs */ ++ ret = krb5_cc_set_default_name(ctx, ccname); ++ if (ret) ++ return ret; ++ ++ if ((colon = strstr(ccname, ":")) != NULL) { ++ type_len = colon - ccname; ++ type = malloc((type_len + 1) * sizeof(char)); ++ if (type == NULL) ++ return ENOMEM; ++ strncpy(type, ccname, type_len); ++ type[type_len] = 0; ++ } else { ++ type = strdup(ccname); ++ } ++ ++ /* If we have a credential cache from krb5.conf, we need to switch ++ * a primary cache for this collection, if it supports that (non-FILE) ++ */ ++ if (krb5_cc_support_switch(ctx, type)) { ++ debug3("%s: calling cc_new_unique(%s)", __func__, ccname); ++ ret = krb5_cc_new_unique(ctx, type, NULL, ccache); ++ if (ret) ++ return ret; ++ ++ debug3("%s: calling cc_switch()", __func__); ++ return krb5_cc_switch(ctx, *ccache); ++ } else { ++ /* Otherwise, we can not create a unique ccname here (either ++ * it is already unique from above or the type does not support ++ * collections ++ */ ++ debug3("%s: calling cc_resolve(%s)", __func__, ccname); ++ return (krb5_cc_resolve(ctx, ccname, ccache)); ++ } + } + #endif /* !HEIMDAL */ + #endif /* KRB5 */ +diff --git a/auth.h b/auth.h +index 29491df9..fdab5040 100644 +--- a/auth.h ++++ b/auth.h +@@ -82,6 +82,7 @@ struct Authctxt { + krb5_principal krb5_user; + char *krb5_ticket_file; + char *krb5_ccname; ++ int krb5_set_env; + #endif + struct sshbuf *loginmsg; + +@@ -243,6 +244,6 @@ int sys_auth_passwd(struct ssh *, const char *); + + #if defined(KRB5) && !defined(HEIMDAL) + #include +-krb5_error_code ssh_krb5_cc_gen(krb5_context, krb5_ccache *); ++krb5_error_code ssh_krb5_cc_new_unique(krb5_context, krb5_ccache *, int *); + #endif + #endif +diff --git a/gss-serv-krb5.c b/gss-serv-krb5.c +index 795992d9..0623a107 100644 +--- a/gss-serv-krb5.c ++++ b/gss-serv-krb5.c +@@ -114,7 +114,7 @@ ssh_gssapi_krb5_userok(ssh_gssapi_client *client, char *name) + /* This writes out any forwarded credentials from the structure populated + * during userauth. Called after we have setuid to the user */ + +-static void ++static int + ssh_gssapi_krb5_storecreds(ssh_gssapi_client *client) + { + krb5_ccache ccache; +@@ -121,16 +121,17 @@ ssh_gssapi_krb5_storecreds(ssh_gssapi_client *client) + krb5_error_code problem; + krb5_principal princ; + OM_uint32 maj_status, min_status; +- const char *new_ccname, *new_cctype; ++ int len; + const char *errmsg; ++ int set_env = 0; + + if (client->creds == NULL) { + debug("No credentials stored"); +- return; ++ return 0; + } + + if (ssh_gssapi_krb5_init() == 0) +- return; ++ return 0; + + #ifdef HEIMDAL + # ifdef HAVE_KRB5_CC_NEW_UNIQUE +@@ -144,14 +145,14 @@ ssh_gssapi_krb5_storecreds(ssh_gssapi_client *client) + krb5_get_err_text(krb_context, problem)); + # endif + krb5_free_error_message(krb_context, errmsg); +- return; ++ return 0; + } + #else +- if ((problem = ssh_krb5_cc_gen(krb_context, &ccache))) { ++ if ((problem = ssh_krb5_cc_new_unique(krb_context, &ccache, &set_env)) != 0) { + errmsg = krb5_get_error_message(krb_context, problem); +- logit("ssh_krb5_cc_gen(): %.100s", errmsg); ++ logit("ssh_krb5_cc_new_unique(): %.100s", errmsg); + krb5_free_error_message(krb_context, errmsg); +- return; ++ return 0; + } + #endif /* #ifdef HEIMDAL */ + +@@ -160,7 +161,7 @@ ssh_gssapi_krb5_storecreds(ssh_gssapi_client *client) + errmsg = krb5_get_error_message(krb_context, problem); + logit("krb5_parse_name(): %.100s", errmsg); + krb5_free_error_message(krb_context, errmsg); +- return; ++ return 0; + } + + if ((problem = krb5_cc_initialize(krb_context, ccache, princ))) { +@@ -169,7 +170,7 @@ ssh_gssapi_krb5_storecreds(ssh_gssapi_client *client) + krb5_free_error_message(krb_context, errmsg); + krb5_free_principal(krb_context, princ); + krb5_cc_destroy(krb_context, ccache); +- return; ++ return 0; + } + + krb5_free_principal(krb_context, princ); +@@ -178,37 +179,27 @@ ssh_gssapi_krb5_storecreds(ssh_gssapi_client *client) + client->creds, ccache))) { + logit("gss_krb5_copy_ccache() failed"); + krb5_cc_destroy(krb_context, ccache); +- return; ++ return 0; + } + +- new_cctype = krb5_cc_get_type(krb_context, ccache); +- new_ccname = krb5_cc_get_name(krb_context, ccache); +- +- client->store.envvar = "KRB5CCNAME"; +-#ifdef USE_CCAPI +- xasprintf(&client->store.envval, "API:%s", new_ccname); +-#else +- if (new_ccname[0] == ':') +- new_ccname++; +- xasprintf(&client->store.envval, "%s:%s", new_cctype, new_ccname); +- if (strcmp(new_cctype, "DIR") == 0) { +- char *p; +- p = strrchr(client->store.envval, '/'); +- if (p) +- *p = '\0'; +- } +-#endif ++ if (set_env) { ++ const char *filename = krb5_cc_get_name(krb_context, ccache); ++ client->store.envvar = "KRB5CCNAME"; ++ len = strlen(filename) + 6; ++ client->store.envval = xmalloc(len); ++ snprintf(client->store.envval, len, "FILE:%s", filename); ++ } + + #ifdef USE_PAM +- if (options.use_pam) ++ if (options.use_pam && set_env) + do_pam_putenv(client->store.envvar, client->store.envval); + #endif + + krb5_cc_close(krb_context, ccache); + + client->store.data = krb_context; + +- return; ++ return set_env; + } + + int +diff --git a/gss-serv.c b/gss-serv.c +index 6cae720e..16e55cbc 100644 +--- a/gss-serv.c ++++ b/gss-serv.c +@@ -320,13 +320,15 @@ ssh_gssapi_getclient(Gssctxt *ctx, ssh_gssapi_client *client) + } + + /* As user */ +-void ++int + ssh_gssapi_storecreds(void) + { + if (gssapi_client.mech && gssapi_client.mech->storecreds) { +- (*gssapi_client.mech->storecreds)(&gssapi_client); ++ return (*gssapi_client.mech->storecreds)(&gssapi_client); + } else + debug("ssh_gssapi_storecreds: Not a GSSAPI mechanism"); ++ ++ return 0; + } + + /* This allows GSSAPI methods to do things to the childs environment based +diff --git a/servconf.c b/servconf.c +index cb578658..a6e01df2 100644 +--- a/servconf.c ++++ b/servconf.c +@@ -122,6 +122,7 @@ initialize_server_options(ServerOptions *options) + options->kerberos_or_local_passwd = -1; + options->kerberos_ticket_cleanup = -1; + options->kerberos_get_afs_token = -1; ++ options->kerberos_unique_ticket = -1; + options->gss_authentication=-1; + options->gss_keyex = -1; + options->gss_cleanup_creds = -1; +@@ -315,6 +316,8 @@ fill_default_server_options(ServerOptions *options) + options->kerberos_ticket_cleanup = 1; + if (options->kerberos_get_afs_token == -1) + options->kerberos_get_afs_token = 0; ++ if (options->kerberos_unique_ticket == -1) ++ options->kerberos_unique_ticket = 0; + if (options->gss_authentication == -1) + options->gss_authentication = 0; + if (options->gss_keyex == -1) +@@ -447,7 +450,8 @@ typedef enum { + sPermitRootLogin, sLogFacility, sLogLevel, + sRhostsRSAAuthentication, sRSAAuthentication, + sKerberosAuthentication, sKerberosOrLocalPasswd, sKerberosTicketCleanup, +- sKerberosGetAFSToken, sChallengeResponseAuthentication, ++ sKerberosGetAFSToken, sKerberosUniqueTicket, ++ sChallengeResponseAuthentication, + sPasswordAuthentication, sKbdInteractiveAuthentication, + sListenAddress, sAddressFamily, + sPrintMotd, sPrintLastLog, sIgnoreRhosts, +@@ -526,11 +530,13 @@ static struct { + #else + { "kerberosgetafstoken", sUnsupported, SSHCFG_GLOBAL }, + #endif ++ { "kerberosuniqueticket", sKerberosUniqueTicket, SSHCFG_GLOBAL }, + #else + { "kerberosauthentication", sUnsupported, SSHCFG_ALL }, + { "kerberosorlocalpasswd", sUnsupported, SSHCFG_GLOBAL }, + { "kerberosticketcleanup", sUnsupported, SSHCFG_GLOBAL }, + { "kerberosgetafstoken", sUnsupported, SSHCFG_GLOBAL }, ++ { "kerberosuniqueticket", sUnsupported, SSHCFG_GLOBAL }, + #endif + { "kerberostgtpassing", sUnsupported, SSHCFG_GLOBAL }, + { "afstokenpassing", sUnsupported, SSHCFG_GLOBAL }, +@@ -1437,6 +1443,10 @@ process_server_config_line(ServerOptions *options, char *line, + intptr = &options->kerberos_get_afs_token; + goto parse_flag; + ++ case sKerberosUniqueTicket: ++ intptr = &options->kerberos_unique_ticket; ++ goto parse_flag; ++ + case sGssAuthentication: + intptr = &options->gss_authentication; + goto parse_flag; +@@ -2507,6 +2517,7 @@ dump_config(ServerOptions *o) + # ifdef USE_AFS + dump_cfg_fmtint(sKerberosGetAFSToken, o->kerberos_get_afs_token); + # endif ++ dump_cfg_fmtint(sKerberosUniqueTicket, o->kerberos_unique_ticket); + #endif + #ifdef GSSAPI + dump_cfg_fmtint(sGssAuthentication, o->gss_authentication); +diff --git a/servconf.h b/servconf.h +index db8362c6..4fa42d64 100644 +--- a/servconf.h ++++ b/servconf.h +@@ -123,6 +123,8 @@ typedef struct { + * file on logout. */ + int kerberos_get_afs_token; /* If true, try to get AFS token if + * authenticated with Kerberos. */ ++ int kerberos_unique_ticket; /* If true, the aquired ticket will ++ * be stored in per-session ccache */ + int gss_authentication; /* If true, permit GSSAPI authentication */ + int gss_keyex; /* If true, permit GSSAPI key exchange */ + int gss_cleanup_creds; /* If true, destroy cred cache on logout */ +diff --git a/session.c b/session.c +index 85df6a27..480a5ead 100644 +--- a/session.c ++++ b/session.c +@@ -1033,7 +1033,8 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) + /* Allow any GSSAPI methods that we've used to alter + * the childs environment as they see fit + */ +- ssh_gssapi_do_child(&env, &envsize); ++ if (s->authctxt->krb5_set_env) ++ ssh_gssapi_do_child(&env, &envsize); + #endif + + /* Set basic environment. */ +@@ -1105,7 +1106,7 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) + } + #endif + #ifdef KRB5 +- if (s->authctxt->krb5_ccname) ++ if (s->authctxt->krb5_ccname && s->authctxt->krb5_set_env) + child_set_env(&env, &envsize, "KRB5CCNAME", + s->authctxt->krb5_ccname); + #endif +diff --git a/ssh-gss.h b/ssh-gss.h +index 6593e422..245178af 100644 +--- a/ssh-gss.h ++++ b/ssh-gss.h +@@ -62,7 +62,6 @@ + #define KEX_GSS_GEX_SHA1_ID "gss-gex-sha1-" + + typedef struct { +- char *filename; + char *envvar; + char *envval; + struct passwd *owner; +@@ -83,7 +82,7 @@ typedef struct ssh_gssapi_mech_struct { + int (*dochild) (ssh_gssapi_client *); + int (*userok) (ssh_gssapi_client *, char *); + int (*localname) (ssh_gssapi_client *, char **); +- void (*storecreds) (ssh_gssapi_client *); ++ int (*storecreds) (ssh_gssapi_client *); + int (*updatecreds) (ssh_gssapi_ccache *, ssh_gssapi_client *); + } ssh_gssapi_mech; + +@@ -127,7 +126,7 @@ int ssh_gssapi_userok(char *name); + OM_uint32 ssh_gssapi_checkmic(Gssctxt *, gss_buffer_t, gss_buffer_t); + void ssh_gssapi_do_child(char ***, u_int *); + void ssh_gssapi_cleanup_creds(void); +-void ssh_gssapi_storecreds(void); ++int ssh_gssapi_storecreds(void); + const char *ssh_gssapi_displayname(void); + + char *ssh_gssapi_server_mechanisms(void); +diff --git a/sshd.c b/sshd.c +index edbe815c..89514e8a 100644 +--- a/sshd.c ++++ b/sshd.c +@@ -2162,7 +2162,7 @@ main(int ac, char **av) + #ifdef GSSAPI + if (options.gss_authentication) { + temporarily_use_uid(authctxt->pw); +- ssh_gssapi_storecreds(); ++ authctxt->krb5_set_env = ssh_gssapi_storecreds(); + restore_uid(); + } + #endif +diff --git a/sshd_config.5 b/sshd_config.5 +index c0683d4a..2349f477 100644 +--- a/sshd_config.5 ++++ b/sshd_config.5 +@@ -860,6 +860,12 @@ Specifies whether to automatically destroy the user's ticket cache + file on logout. + The default is + .Cm yes . ++.It Cm KerberosUniqueTicket ++Specifies whether to store the aquired tickets in the per-session credential ++cache or whether to use per-user credential cache, which might overwrite ++tickets aquired in different sessions of the same user. ++The default is ++.Cm no . + .It Cm KexAlgorithms + Specifies the available KEX (Key Exchange) algorithms. + Multiple algorithms must be comma-separated. diff --git a/openssh-7.7p1-redhat.patch b/openssh-7.7p1-redhat.patch new file mode 100644 index 0000000..99a4411 --- /dev/null +++ b/openssh-7.7p1-redhat.patch @@ -0,0 +1,164 @@ +diff -up openssh-7.7p1/ssh_config.redhat openssh-7.7p1/ssh_config +--- openssh-7.7p1/ssh_config.redhat 2018-04-02 07:38:28.000000000 +0200 ++++ openssh-7.7p1/ssh_config 2018-07-03 10:44:06.522245125 +0200 +@@ -44,3 +44,7 @@ + # VisualHostKey no + # ProxyCommand ssh -q -W %h:%p gateway.example.com + # RekeyLimit 1G 1h ++# ++# To modify the system-wide ssh configuration, create a *.conf file under ++# /etc/ssh/ssh_config.d/ which will be automatically included below ++Include /etc/ssh/ssh_config.d/*.conf +diff -up openssh-7.7p1/ssh_config_redhat.redhat openssh-7.7p1/ssh_config_redhat +--- openssh-7.7p1/ssh_config_redhat.redhat 2018-07-03 10:44:06.522245125 +0200 ++++ openssh-7.7p1/ssh_config_redhat 2018-07-03 10:44:06.522245125 +0200 +@@ -0,0 +1,20 @@ ++# Follow system-wide Crypto Policy, if defined: ++Include /etc/crypto-policies/back-ends/openssh.config ++ ++# Uncomment this if you want to use .local domain ++# Host *.local ++# CheckHostIP no ++ ++Host * ++ GSSAPIAuthentication yes ++ ++# If this option is set to yes then remote X11 clients will have full access ++# to the original X11 display. As virtually no X11 client supports the untrusted ++# mode correctly we set this to yes. ++ ForwardX11Trusted yes ++ ++# Send locale-related environment variables ++ SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES ++ SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT ++ SendEnv LC_IDENTIFICATION LC_ALL LANGUAGE ++ SendEnv XMODIFIERS +diff -up openssh-7.7p1/sshd_config.0.redhat openssh-7.7p1/sshd_config.0 +--- openssh-7.7p1/sshd_config.0.redhat 2018-04-02 07:39:27.000000000 +0200 ++++ openssh-7.7p1/sshd_config.0 2018-07-03 10:44:06.523245133 +0200 +@@ -872,9 +872,9 @@ DESCRIPTION + + SyslogFacility + Gives the facility code that is used when logging messages from +- sshd(8). The possible values are: DAEMON, USER, AUTH, LOCAL0, +- LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. The +- default is AUTH. ++ sshd(8). The possible values are: DAEMON, USER, AUTH, AUTHPRIV, ++ LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. ++ The default is AUTH. + + TCPKeepAlive + Specifies whether the system should send TCP keepalive messages +diff -up openssh-7.7p1/sshd_config.5.redhat openssh-7.7p1/sshd_config.5 +--- openssh-7.7p1/sshd_config.5.redhat 2018-04-02 07:38:28.000000000 +0200 ++++ openssh-7.7p1/sshd_config.5 2018-07-03 10:44:06.523245133 +0200 +@@ -1461,7 +1461,7 @@ By default no subsystems are defined. + .It Cm SyslogFacility + Gives the facility code that is used when logging messages from + .Xr sshd 8 . +-The possible values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, ++The possible values are: DAEMON, USER, AUTH, AUTHPRIV, LOCAL0, LOCAL1, LOCAL2, + LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. + The default is AUTH. + .It Cm TCPKeepAlive +diff -up openssh-7.7p1/sshd_config.redhat openssh-7.7p1/sshd_config +--- openssh-7.7p1/sshd_config.redhat 2018-04-02 07:38:28.000000000 +0200 ++++ openssh-7.7p1/sshd_config 2018-07-03 10:45:16.950782466 +0200 +@@ -10,20 +10,34 @@ + # possible, but leave them commented. Uncommented options override the + # default value. + ++# If you want to change the port on a SELinux system, you have to tell ++# SELinux about this change. ++# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER ++# + #Port 22 + #AddressFamily any + #ListenAddress 0.0.0.0 + #ListenAddress :: + +-#HostKey /etc/ssh/ssh_host_rsa_key +-#HostKey /etc/ssh/ssh_host_ecdsa_key +-#HostKey /etc/ssh/ssh_host_ed25519_key ++HostKey /etc/ssh/ssh_host_rsa_key ++HostKey /etc/ssh/ssh_host_ecdsa_key ++HostKey /etc/ssh/ssh_host_ed25519_key + + # Ciphers and keying + #RekeyLimit default none + ++# System-wide Crypto policy: ++# This system is following system-wide crypto policy. The changes to ++# Ciphers, MACs, KexAlgoritms and GSSAPIKexAlgorithsm will not have any ++# effect here. They will be overridden by command-line options passed on ++# the server start up. ++# To opt out, uncomment a line with redefinition of CRYPTO_POLICY= ++# variable in /etc/sysconfig/sshd to overwrite the policy. ++# For more information, see manual page for update-crypto-policies(8). ++ + # Logging + #SyslogFacility AUTH ++SyslogFacility AUTHPRIV + #LogLevel INFO + + # Authentication: +@@ -56,9 +70,11 @@ AuthorizedKeysFile .ssh/authorized_keys + # To disable tunneled clear text passwords, change to no here! + #PasswordAuthentication yes + #PermitEmptyPasswords no ++PasswordAuthentication yes + + # Change to no to disable s/key passwords + #ChallengeResponseAuthentication yes ++ChallengeResponseAuthentication no + + # Kerberos options + #KerberosAuthentication no +@@ -67,8 +83,8 @@ AuthorizedKeysFile .ssh/authorized_keys + #KerberosGetAFSToken no + + # GSSAPI options +-#GSSAPIAuthentication no +-#GSSAPICleanupCredentials yes ++GSSAPIAuthentication yes ++GSSAPICleanupCredentials no + + # Set this to 'yes' to enable PAM authentication, account processing, + # and session processing. If this is enabled, PAM authentication will +@@ -79,16 +95,20 @@ AuthorizedKeysFile .ssh/authorized_keys + # If you just want the PAM account and session checks to run without + # PAM authentication, then enable this but set PasswordAuthentication + # and ChallengeResponseAuthentication to 'no'. +-#UsePAM no ++UsePAM yes + + #AllowAgentForwarding yes + #AllowTcpForwarding yes + #GatewayPorts no +-#X11Forwarding no ++X11Forwarding yes + #X11DisplayOffset 10 + #X11UseLocalhost yes + #PermitTTY yes +-#PrintMotd yes ++ ++# It is recommended to use pam_motd in /etc/pam.d/ssh instead of PrintMotd, ++# as it is more configurable and versatile than the built-in version. ++PrintMotd no ++ + #PrintLastLog yes + #TCPKeepAlive yes + #PermitUserEnvironment no +@@ -106,6 +126,12 @@ AuthorizedKeysFile .ssh/authorized_keys + # no default banner path + #Banner none + ++# Accept locale-related environment variables ++AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES ++AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT ++AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE ++AcceptEnv XMODIFIERS ++ + # override default of no subsystems + Subsystem sftp /usr/libexec/sftp-server + diff --git a/openssh-7.8p1-UsePAM-warning.patch b/openssh-7.8p1-UsePAM-warning.patch new file mode 100644 index 0000000..da39361 --- /dev/null +++ b/openssh-7.8p1-UsePAM-warning.patch @@ -0,0 +1,26 @@ +diff --git a/sshd.c b/sshd.c +--- a/sshd.c ++++ b/sshd.c +@@ -1701,6 +1701,10 @@ main(int ac, char **av) + parse_server_config(&options, rexeced_flag ? "rexec" : config_file_name, + cfg, NULL); + ++ /* 'UsePAM no' is not supported in Fedora */ ++ if (! options.use_pam) ++ logit("WARNING: 'UsePAM no' is not supported in Fedora and may cause several problems."); ++ + seed_rng(); + + /* Fill in default values for those options not explicitly set. */ +diff --git a/sshd_config b/sshd_config +--- a/sshd_config ++++ b/sshd_config +@@ -101,6 +101,8 @@ GSSAPICleanupCredentials no + # If you just want the PAM account and session checks to run without + # PAM authentication, then enable this but set PasswordAuthentication + # and ChallengeResponseAuthentication to 'no'. ++# WARNING: 'UsePAM no' is not supported in Fedora and may cause several ++# problems. + UsePAM yes + + #AllowAgentForwarding yes diff --git a/openssh-7.8p1-gsskex.patch b/openssh-7.8p1-gsskex.patch new file mode 100644 index 0000000..6a350c7 --- /dev/null +++ b/openssh-7.8p1-gsskex.patch @@ -0,0 +1,2905 @@ +diff -up openssh/auth2.c.gsskex openssh/auth2.c +--- openssh/auth2.c.gsskex 2018-08-22 11:47:33.260216045 +0200 ++++ openssh/auth2.c 2018-08-22 11:47:33.307216424 +0200 +@@ -74,6 +74,7 @@ extern Authmethod method_passwd; + extern Authmethod method_kbdint; + extern Authmethod method_hostbased; + #ifdef GSSAPI ++extern Authmethod method_gsskeyex; + extern Authmethod method_gssapi; + #endif + +@@ -81,6 +82,7 @@ Authmethod *authmethods[] = { + &method_none, + &method_pubkey, + #ifdef GSSAPI ++ &method_gsskeyex, + &method_gssapi, + #endif + &method_passwd, +diff -up openssh/auth2-gss.c.gsskex openssh/auth2-gss.c +--- openssh/auth2-gss.c.gsskex 2018-08-22 11:47:33.260216045 +0200 ++++ openssh/auth2-gss.c 2018-08-22 13:00:48.722680124 +0200 +@@ -31,6 +31,7 @@ + #include + + #include ++#include + + #include "xmalloc.h" + #include "sshkey.h" +@@ -54,6 +55,44 @@ static int input_gssapi_mic(int type, u_ + static int input_gssapi_exchange_complete(int type, u_int32_t plen, struct ssh *ssh); + static int input_gssapi_errtok(int, u_int32_t, struct ssh *); + ++/* ++ * The 'gssapi_keyex' userauth mechanism. ++ */ ++static int ++userauth_gsskeyex(struct ssh *ssh) ++{ ++ Authctxt *authctxt = ssh->authctxt; ++ int authenticated = 0; ++ struct sshbuf *b = NULL; ++ gss_buffer_desc mic, gssbuf; ++ u_int len; ++ ++ mic.value = packet_get_string(&len); ++ mic.length = len; ++ ++ packet_check_eom(); ++ ++ if ((b = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ ++ ssh_gssapi_buildmic(b, authctxt->user, authctxt->service, ++ "gssapi-keyex"); ++ ++ gssbuf.value = sshbuf_mutable_ptr(b); ++ gssbuf.length = sshbuf_len(b); ++ ++ /* gss_kex_context is NULL with privsep, so we can't check it here */ ++ if (!GSS_ERROR(PRIVSEP(ssh_gssapi_checkmic(gss_kex_context, ++ &gssbuf, &mic)))) ++ authenticated = PRIVSEP(ssh_gssapi_userok(authctxt->user, ++ authctxt->pw)); ++ ++ sshbuf_free(b); ++ free(mic.value); ++ ++ return (authenticated); ++} ++ + /* + * We only support those mechanisms that we know about (ie ones that we know + * how to check local user kuserok and the like) +@@ -260,7 +296,8 @@ input_gssapi_exchange_complete(int type, + if ((r = sshpkt_get_end(ssh)) != 0) + fatal("%s: %s", __func__, ssh_err(r)); + +- authenticated = PRIVSEP(ssh_gssapi_userok(authctxt->user)); ++ authenticated = PRIVSEP(ssh_gssapi_userok(authctxt->user, ++ authctxt->pw)); + + if ((!use_privsep || mm_is_monitor()) && + (displayname = ssh_gssapi_displayname()) != NULL) +@@ -313,7 +350,8 @@ input_gssapi_mic(int type, u_int32_t ple + gssbuf.length = sshbuf_len(b); + + if (!GSS_ERROR(PRIVSEP(ssh_gssapi_checkmic(gssctxt, &gssbuf, &mic)))) +- authenticated = PRIVSEP(ssh_gssapi_userok(authctxt->user)); ++ authenticated = ++ PRIVSEP(ssh_gssapi_userok(authctxt->user, authctxt->pw)); + else + logit("GSSAPI MIC check failed"); + +@@ -335,6 +373,12 @@ input_gssapi_mic(int type, u_int32_t ple + return 0; + } + ++Authmethod method_gsskeyex = { ++ "gssapi-keyex", ++ userauth_gsskeyex, ++ &options.gss_authentication ++}; ++ + Authmethod method_gssapi = { + "gssapi-with-mic", + userauth_gssapi, +diff -up openssh/auth.c.gsskex openssh/auth.c +--- openssh/auth.c.gsskex 2018-08-22 11:47:33.274216158 +0200 ++++ openssh/auth.c 2018-08-22 11:47:33.308216432 +0200 +@@ -395,6 +395,7 @@ auth_root_allowed(struct ssh *ssh, const + case PERMIT_NO_PASSWD: + if (strcmp(method, "publickey") == 0 || + strcmp(method, "hostbased") == 0 || ++ strcmp(method, "gssapi-keyex") == 0 || + strcmp(method, "gssapi-with-mic") == 0) + return 1; + break; +diff -up openssh/clientloop.c.gsskex openssh/clientloop.c +--- openssh/clientloop.c.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/clientloop.c 2018-08-22 11:47:33.309216441 +0200 +@@ -112,6 +112,10 @@ + #include "ssherr.h" + #include "hostfile.h" + ++#ifdef GSSAPI ++#include "ssh-gss.h" ++#endif ++ + /* import options */ + extern Options options; + +@@ -1357,9 +1361,18 @@ client_loop(struct ssh *ssh, int have_pt + break; + + /* Do channel operations unless rekeying in progress. */ +- if (!ssh_packet_is_rekeying(ssh)) ++ if (!ssh_packet_is_rekeying(ssh)) { + channel_after_select(ssh, readset, writeset); + ++#ifdef GSSAPI ++ if (options.gss_renewal_rekey && ++ ssh_gssapi_credentials_updated(NULL)) { ++ debug("credentials updated - forcing rekey"); ++ need_rekeying = 1; ++ } ++#endif ++ } ++ + /* Buffer input from the connection. */ + client_process_net_input(readset); + +diff -up openssh/configure.ac.gsskex openssh/configure.ac +--- openssh/configure.ac.gsskex 2018-08-22 11:47:33.296216335 +0200 ++++ openssh/configure.ac 2018-08-22 11:47:33.309216441 +0200 +@@ -673,6 +673,30 @@ main() { if (NSVersionOfRunTimeLibrary(" + [Use tunnel device compatibility to OpenBSD]) + AC_DEFINE([SSH_TUN_PREPEND_AF], [1], + [Prepend the address family to IP tunnel traffic]) ++ AC_MSG_CHECKING(if we have the Security Authorization Session API) ++ AC_TRY_COMPILE([#include ], ++ [SessionCreate(0, 0);], ++ [ac_cv_use_security_session_api="yes" ++ AC_DEFINE(USE_SECURITY_SESSION_API, 1, ++ [platform has the Security Authorization Session API]) ++ LIBS="$LIBS -framework Security" ++ AC_MSG_RESULT(yes)], ++ [ac_cv_use_security_session_api="no" ++ AC_MSG_RESULT(no)]) ++ AC_MSG_CHECKING(if we have an in-memory credentials cache) ++ AC_TRY_COMPILE( ++ [#include ], ++ [cc_context_t c; ++ (void) cc_initialize (&c, 0, NULL, NULL);], ++ [AC_DEFINE(USE_CCAPI, 1, ++ [platform uses an in-memory credentials cache]) ++ LIBS="$LIBS -framework Security" ++ AC_MSG_RESULT(yes) ++ if test "x$ac_cv_use_security_session_api" = "xno"; then ++ AC_MSG_ERROR(*** Need a security framework to use the credentials cache API ***) ++ fi], ++ [AC_MSG_RESULT(no)] ++ ) + m4_pattern_allow([AU_IPv]) + AC_CHECK_DECL([AU_IPv4], [], + AC_DEFINE([AU_IPv4], [0], [System only supports IPv4 audit records]) +diff -up openssh/gss-genr.c.gsskex openssh/gss-genr.c +--- openssh/gss-genr.c.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/gss-genr.c 2018-08-22 13:18:47.444383602 +0200 +@@ -35,18 +35,177 @@ + #include + #include + #include ++#include + + #include "xmalloc.h" + #include "ssherr.h" + #include "sshbuf.h" + #include "log.h" + #include "ssh2.h" ++#include "cipher.h" ++#include "sshkey.h" ++#include "kex.h" + + #include "ssh-gss.h" + + extern u_char *session_id2; + extern u_int session_id2_len; + ++typedef struct { ++ char *encoded; ++ gss_OID oid; ++} ssh_gss_kex_mapping; ++ ++/* ++ * XXX - It would be nice to find a more elegant way of handling the ++ * XXX passing of the key exchange context to the userauth routines ++ */ ++ ++Gssctxt *gss_kex_context = NULL; ++ ++static ssh_gss_kex_mapping *gss_enc2oid = NULL; ++ ++int ++ssh_gssapi_oid_table_ok() { ++ return (gss_enc2oid != NULL); ++} ++ ++/* ++ * Return a list of the gss-group1-sha1 mechanisms supported by this program ++ * ++ * We test mechanisms to ensure that we can use them, to avoid starting ++ * a key exchange with a bad mechanism ++ */ ++ ++char * ++ssh_gssapi_client_mechanisms(const char *host, const char *client) { ++ gss_OID_set gss_supported; ++ OM_uint32 min_status; ++ ++ if (GSS_ERROR(gss_indicate_mechs(&min_status, &gss_supported))) ++ return NULL; ++ ++ return(ssh_gssapi_kex_mechs(gss_supported, ssh_gssapi_check_mechanism, ++ host, client)); ++} ++ ++char * ++ssh_gssapi_kex_mechs(gss_OID_set gss_supported, ssh_gssapi_check_fn *check, ++ const char *host, const char *client) { ++ struct sshbuf *buf; ++ size_t i; ++ int oidpos, enclen, r; ++ char *mechs, *encoded; ++ u_char digest[EVP_MAX_MD_SIZE]; ++ char deroid[2]; ++ const EVP_MD *evp_md = EVP_md5(); ++ EVP_MD_CTX md; ++ ++ if (gss_enc2oid != NULL) { ++ for (i = 0; gss_enc2oid[i].encoded != NULL; i++) ++ free(gss_enc2oid[i].encoded); ++ free(gss_enc2oid); ++ } ++ ++ gss_enc2oid = xmalloc(sizeof(ssh_gss_kex_mapping) * ++ (gss_supported->count + 1)); ++ ++ if ((buf = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ ++ oidpos = 0; ++ for (i = 0; i < gss_supported->count; i++) { ++ if (gss_supported->elements[i].length < 128 && ++ (*check)(NULL, &(gss_supported->elements[i]), host, client)) { ++ ++ deroid[0] = SSH_GSS_OIDTYPE; ++ deroid[1] = gss_supported->elements[i].length; ++ ++ EVP_DigestInit(&md, evp_md); ++ EVP_DigestUpdate(&md, deroid, 2); ++ EVP_DigestUpdate(&md, ++ gss_supported->elements[i].elements, ++ gss_supported->elements[i].length); ++ EVP_DigestFinal(&md, digest, NULL); ++ ++ encoded = xmalloc(EVP_MD_size(evp_md) * 2); ++ enclen = __b64_ntop(digest, EVP_MD_size(evp_md), ++ encoded, EVP_MD_size(evp_md) * 2); ++ ++ if (oidpos != 0) ++ if ((r = sshbuf_put_u8(buf, ',')) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ if ((r = sshbuf_put(buf, KEX_GSS_GEX_SHA1_ID, ++ sizeof(KEX_GSS_GEX_SHA1_ID) - 1)) != 0 || ++ (r = sshbuf_put(buf, encoded, enclen)) != 0 || ++ (r = sshbuf_put_u8(buf, ',')) != 0 || ++ (r = sshbuf_put(buf, KEX_GSS_GRP1_SHA1_ID, ++ sizeof(KEX_GSS_GRP1_SHA1_ID) - 1)) != 0 || ++ (r = sshbuf_put(buf, encoded, enclen)) != 0 || ++ (r = sshbuf_put_u8(buf, ',')) != 0 || ++ (r = sshbuf_put(buf, KEX_GSS_GRP14_SHA1_ID, ++ sizeof(KEX_GSS_GRP14_SHA1_ID) - 1)) != 0 || ++ (r = sshbuf_put(buf, encoded, enclen)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ gss_enc2oid[oidpos].oid = &(gss_supported->elements[i]); ++ gss_enc2oid[oidpos].encoded = encoded; ++ oidpos++; ++ } ++ } ++ gss_enc2oid[oidpos].oid = NULL; ++ gss_enc2oid[oidpos].encoded = NULL; ++ ++ if ((r = sshbuf_put_u8(buf, '\0')) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ mechs = xmalloc(sshbuf_len(buf)); ++ sshbuf_get(buf, mechs, sshbuf_len(buf)); ++ sshbuf_free(buf); ++ ++ if (strlen(mechs) == 0) { ++ free(mechs); ++ mechs = NULL; ++ } ++ ++ return (mechs); ++} ++ ++gss_OID ++ssh_gssapi_id_kex(Gssctxt *ctx, char *name, int kex_type) { ++ int i = 0; ++ ++ switch (kex_type) { ++ case KEX_GSS_GRP1_SHA1: ++ if (strlen(name) < sizeof(KEX_GSS_GRP1_SHA1_ID)) ++ return GSS_C_NO_OID; ++ name += sizeof(KEX_GSS_GRP1_SHA1_ID) - 1; ++ break; ++ case KEX_GSS_GRP14_SHA1: ++ if (strlen(name) < sizeof(KEX_GSS_GRP14_SHA1_ID)) ++ return GSS_C_NO_OID; ++ name += sizeof(KEX_GSS_GRP14_SHA1_ID) - 1; ++ break; ++ case KEX_GSS_GEX_SHA1: ++ if (strlen(name) < sizeof(KEX_GSS_GEX_SHA1_ID)) ++ return GSS_C_NO_OID; ++ name += sizeof(KEX_GSS_GEX_SHA1_ID) - 1; ++ break; ++ default: ++ return GSS_C_NO_OID; ++ } ++ ++ while (gss_enc2oid[i].encoded != NULL && ++ strcmp(name, gss_enc2oid[i].encoded) != 0) ++ i++; ++ ++ if (gss_enc2oid[i].oid != NULL && ctx != NULL) ++ ssh_gssapi_set_oid(ctx, gss_enc2oid[i].oid); ++ ++ return gss_enc2oid[i].oid; ++} ++ + /* sshbuf_get for gss_buffer_desc */ + int + ssh_gssapi_get_buffer_desc(struct sshbuf *b, gss_buffer_desc *g) +@@ -218,7 +373,7 @@ ssh_gssapi_init_ctx(Gssctxt *ctx, int de + } + + ctx->major = gss_init_sec_context(&ctx->minor, +- GSS_C_NO_CREDENTIAL, &ctx->context, ctx->name, ctx->oid, ++ ctx->client_creds, &ctx->context, ctx->name, ctx->oid, + GSS_C_MUTUAL_FLAG | GSS_C_INTEG_FLAG | deleg_flag, + 0, NULL, recv_tok, NULL, send_tok, flags, NULL); + +@@ -248,8 +403,42 @@ ssh_gssapi_import_name(Gssctxt *ctx, con + } + + OM_uint32 ++ssh_gssapi_client_identity(Gssctxt *ctx, const char *name) ++{ ++ gss_buffer_desc gssbuf; ++ gss_name_t gssname; ++ OM_uint32 status; ++ gss_OID_set oidset; ++ ++ gssbuf.value = (void *) name; ++ gssbuf.length = strlen(gssbuf.value); ++ ++ gss_create_empty_oid_set(&status, &oidset); ++ gss_add_oid_set_member(&status, ctx->oid, &oidset); ++ ++ ctx->major = gss_import_name(&ctx->minor, &gssbuf, ++ GSS_C_NT_USER_NAME, &gssname); ++ ++ if (!ctx->major) ++ ctx->major = gss_acquire_cred(&ctx->minor, ++ gssname, 0, oidset, GSS_C_INITIATE, ++ &ctx->client_creds, NULL, NULL); ++ ++ gss_release_name(&status, &gssname); ++ gss_release_oid_set(&status, &oidset); ++ ++ if (ctx->major) ++ ssh_gssapi_error(ctx); ++ ++ return(ctx->major); ++} ++ ++OM_uint32 + ssh_gssapi_sign(Gssctxt *ctx, gss_buffer_t buffer, gss_buffer_t hash) + { ++ if (ctx == NULL) ++ return -1; ++ + if ((ctx->major = gss_get_mic(&ctx->minor, ctx->context, + GSS_C_QOP_DEFAULT, buffer, hash))) + ssh_gssapi_error(ctx); +@@ -257,6 +446,19 @@ ssh_gssapi_sign(Gssctxt *ctx, gss_buffer + return (ctx->major); + } + ++/* Priviledged when used by server */ ++OM_uint32 ++ssh_gssapi_checkmic(Gssctxt *ctx, gss_buffer_t gssbuf, gss_buffer_t gssmic) ++{ ++ if (ctx == NULL) ++ return -1; ++ ++ ctx->major = gss_verify_mic(&ctx->minor, ctx->context, ++ gssbuf, gssmic, NULL); ++ ++ return (ctx->major); ++} ++ + void + ssh_gssapi_buildmic(struct sshbuf *b, const char *user, const char *service, + const char *context) +@@ -273,11 +475,16 @@ ssh_gssapi_buildmic(struct sshbuf *b, co + } + + int +-ssh_gssapi_check_mechanism(Gssctxt **ctx, gss_OID oid, const char *host) ++ssh_gssapi_check_mechanism(Gssctxt **ctx, gss_OID oid, const char *host, ++ const char *client) + { + gss_buffer_desc token = GSS_C_EMPTY_BUFFER; + OM_uint32 major, minor; + gss_OID_desc spnego_oid = {6, (void *)"\x2B\x06\x01\x05\x05\x02"}; ++ Gssctxt *intctx = NULL; ++ ++ if (ctx == NULL) ++ ctx = &intctx; + + /* RFC 4462 says we MUST NOT do SPNEGO */ + if (oid->length == spnego_oid.length && +@@ -287,6 +494,10 @@ ssh_gssapi_check_mechanism(Gssctxt **ctx + ssh_gssapi_build_ctx(ctx); + ssh_gssapi_set_oid(*ctx, oid); + major = ssh_gssapi_import_name(*ctx, host); ++ ++ if (!GSS_ERROR(major) && client) ++ major = ssh_gssapi_client_identity(*ctx, client); ++ + if (!GSS_ERROR(major)) { + major = ssh_gssapi_init_ctx(*ctx, 0, GSS_C_NO_BUFFER, &token, + NULL); +@@ -296,10 +507,66 @@ ssh_gssapi_check_mechanism(Gssctxt **ctx + GSS_C_NO_BUFFER); + } + +- if (GSS_ERROR(major)) ++ if (GSS_ERROR(major) || intctx != NULL) + ssh_gssapi_delete_ctx(ctx); + + return (!GSS_ERROR(major)); + } + ++int ++ssh_gssapi_credentials_updated(Gssctxt *ctxt) { ++ static gss_name_t saved_name = GSS_C_NO_NAME; ++ static OM_uint32 saved_lifetime = 0; ++ static gss_OID saved_mech = GSS_C_NO_OID; ++ static gss_name_t name; ++ static OM_uint32 last_call = 0; ++ OM_uint32 lifetime, now, major, minor; ++ int equal; ++ ++ now = time(NULL); ++ ++ if (ctxt) { ++ debug("Rekey has happened - updating saved versions"); ++ ++ if (saved_name != GSS_C_NO_NAME) ++ gss_release_name(&minor, &saved_name); ++ ++ major = gss_inquire_cred(&minor, GSS_C_NO_CREDENTIAL, ++ &saved_name, &saved_lifetime, NULL, NULL); ++ ++ if (!GSS_ERROR(major)) { ++ saved_mech = ctxt->oid; ++ saved_lifetime+= now; ++ } else { ++ /* Handle the error */ ++ } ++ return 0; ++ } ++ ++ if (now - last_call < 10) ++ return 0; ++ ++ last_call = now; ++ ++ if (saved_mech == GSS_C_NO_OID) ++ return 0; ++ ++ major = gss_inquire_cred(&minor, GSS_C_NO_CREDENTIAL, ++ &name, &lifetime, NULL, NULL); ++ if (major == GSS_S_CREDENTIALS_EXPIRED) ++ return 0; ++ else if (GSS_ERROR(major)) ++ return 0; ++ ++ major = gss_compare_name(&minor, saved_name, name, &equal); ++ gss_release_name(&minor, &name); ++ if (GSS_ERROR(major)) ++ return 0; ++ ++ if (equal && (saved_lifetime < lifetime + now - 10)) ++ return 1; ++ ++ return 0; ++} ++ + #endif /* GSSAPI */ +diff -up openssh/gss-serv.c.gsskex openssh/gss-serv.c +--- openssh/gss-serv.c.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/gss-serv.c 2018-08-22 11:47:33.310216448 +0200 +@@ -44,17 +44,19 @@ + #include "session.h" + #include "misc.h" + #include "servconf.h" ++#include "uidswap.h" + + #include "ssh-gss.h" ++#include "monitor_wrap.h" + + extern ServerOptions options; + + static ssh_gssapi_client gssapi_client = +- { GSS_C_EMPTY_BUFFER, GSS_C_EMPTY_BUFFER, +- GSS_C_NO_CREDENTIAL, NULL, {NULL, NULL, NULL, NULL}}; ++ { GSS_C_EMPTY_BUFFER, GSS_C_EMPTY_BUFFER, GSS_C_NO_CREDENTIAL, ++ GSS_C_NO_NAME, NULL, {NULL, NULL, NULL, NULL}, 0, 0}; + + ssh_gssapi_mech gssapi_null_mech = +- { NULL, NULL, {0, NULL}, NULL, NULL, NULL, NULL}; ++ { NULL, NULL, {0, NULL}, NULL, NULL, NULL, NULL, NULL}; + + #ifdef KRB5 + extern ssh_gssapi_mech gssapi_kerberos_mech; +@@ -141,6 +143,28 @@ ssh_gssapi_server_ctx(Gssctxt **ctx, gss + } + + /* Unprivileged */ ++char * ++ssh_gssapi_server_mechanisms() { ++ if (supported_oids == NULL) ++ ssh_gssapi_prepare_supported_oids(); ++ return (ssh_gssapi_kex_mechs(supported_oids, ++ &ssh_gssapi_server_check_mech, NULL, NULL)); ++} ++ ++/* Unprivileged */ ++int ++ssh_gssapi_server_check_mech(Gssctxt **dum, gss_OID oid, const char *data, ++ const char *dummy) { ++ Gssctxt *ctx = NULL; ++ int res; ++ ++ res = !GSS_ERROR(PRIVSEP(ssh_gssapi_server_ctx(&ctx, oid))); ++ ssh_gssapi_delete_ctx(&ctx); ++ ++ return (res); ++} ++ ++/* Unprivileged */ + void + ssh_gssapi_supported_oids(gss_OID_set *oidset) + { +@@ -150,7 +174,9 @@ ssh_gssapi_supported_oids(gss_OID_set *o + gss_OID_set supported; + + gss_create_empty_oid_set(&min_status, oidset); +- gss_indicate_mechs(&min_status, &supported); ++ ++ if (GSS_ERROR(gss_indicate_mechs(&min_status, &supported))) ++ return; + + while (supported_mechs[i]->name != NULL) { + if (GSS_ERROR(gss_test_oid_set_member(&min_status, +@@ -276,8 +302,48 @@ OM_uint32 + ssh_gssapi_getclient(Gssctxt *ctx, ssh_gssapi_client *client) + { + int i = 0; ++ int equal = 0; ++ gss_name_t new_name = GSS_C_NO_NAME; ++ gss_buffer_desc ename = GSS_C_EMPTY_BUFFER; ++ ++ if (options.gss_store_rekey && client->used && ctx->client_creds) { ++ if (client->mech->oid.length != ctx->oid->length || ++ (memcmp(client->mech->oid.elements, ++ ctx->oid->elements, ctx->oid->length) !=0)) { ++ debug("Rekeyed credentials have different mechanism"); ++ return GSS_S_COMPLETE; ++ } ++ ++ if ((ctx->major = gss_inquire_cred_by_mech(&ctx->minor, ++ ctx->client_creds, ctx->oid, &new_name, ++ NULL, NULL, NULL))) { ++ ssh_gssapi_error(ctx); ++ return (ctx->major); ++ } ++ ++ ctx->major = gss_compare_name(&ctx->minor, client->name, ++ new_name, &equal); ++ ++ if (GSS_ERROR(ctx->major)) { ++ ssh_gssapi_error(ctx); ++ return (ctx->major); ++ } ++ ++ if (!equal) { ++ debug("Rekeyed credentials have different name"); ++ return GSS_S_COMPLETE; ++ } ++ ++ debug("Marking rekeyed credentials for export"); + +- gss_buffer_desc ename; ++ gss_release_name(&ctx->minor, &client->name); ++ gss_release_cred(&ctx->minor, &client->creds); ++ client->name = new_name; ++ client->creds = ctx->client_creds; ++ ctx->client_creds = GSS_C_NO_CREDENTIAL; ++ client->updated = 1; ++ return GSS_S_COMPLETE; ++ } + + client->mech = NULL; + +@@ -292,6 +358,13 @@ ssh_gssapi_getclient(Gssctxt *ctx, ssh_g + if (client->mech == NULL) + return GSS_S_FAILURE; + ++ if (ctx->client_creds && ++ (ctx->major = gss_inquire_cred_by_mech(&ctx->minor, ++ ctx->client_creds, ctx->oid, &client->name, NULL, NULL, NULL))) { ++ ssh_gssapi_error(ctx); ++ return (ctx->major); ++ } ++ + if ((ctx->major = gss_display_name(&ctx->minor, ctx->client, + &client->displayname, NULL))) { + ssh_gssapi_error(ctx); +@@ -309,6 +382,8 @@ ssh_gssapi_getclient(Gssctxt *ctx, ssh_g + return (ctx->major); + } + ++ gss_release_buffer(&ctx->minor, &ename); ++ + /* We can't copy this structure, so we just move the pointer to it */ + client->creds = ctx->client_creds; + ctx->client_creds = GSS_C_NO_CREDENTIAL; +@@ -319,11 +394,20 @@ ssh_gssapi_getclient(Gssctxt *ctx, ssh_g + void + ssh_gssapi_cleanup_creds(void) + { +- if (gssapi_client.store.filename != NULL) { +- /* Unlink probably isn't sufficient */ +- debug("removing gssapi cred file\"%s\"", +- gssapi_client.store.filename); +- unlink(gssapi_client.store.filename); ++ krb5_ccache ccache = NULL; ++ krb5_error_code problem; ++ ++ if (gssapi_client.store.data != NULL) { ++ if ((problem = krb5_cc_resolve(gssapi_client.store.data, gssapi_client.store.envval, &ccache))) { ++ debug("%s: krb5_cc_resolve(): %.100s", __func__, ++ krb5_get_err_text(gssapi_client.store.data, problem)); ++ } else if ((problem = krb5_cc_destroy(gssapi_client.store.data, ccache))) { ++ debug("%s: krb5_cc_resolve(): %.100s", __func__, ++ krb5_get_err_text(gssapi_client.store.data, problem)); ++ } else { ++ krb5_free_context(gssapi_client.store.data); ++ gssapi_client.store.data = NULL; ++ } + } + } + +@@ -356,7 +440,7 @@ ssh_gssapi_do_child(char ***envp, u_int + + /* Privileged */ + int +-ssh_gssapi_userok(char *user) ++ssh_gssapi_userok(char *user, struct passwd *pw) + { + OM_uint32 lmin; + +@@ -366,9 +450,11 @@ ssh_gssapi_userok(char *user) + return 0; + } + if (gssapi_client.mech && gssapi_client.mech->userok) +- if ((*gssapi_client.mech->userok)(&gssapi_client, user)) ++ if ((*gssapi_client.mech->userok)(&gssapi_client, user)) { ++ gssapi_client.used = 1; ++ gssapi_client.store.owner = pw; + return 1; +- else { ++ } else { + /* Destroy delegated credentials if userok fails */ + gss_release_buffer(&lmin, &gssapi_client.displayname); + gss_release_buffer(&lmin, &gssapi_client.exportedname); +@@ -382,14 +468,89 @@ ssh_gssapi_userok(char *user) + return (0); + } + +-/* Privileged */ +-OM_uint32 +-ssh_gssapi_checkmic(Gssctxt *ctx, gss_buffer_t gssbuf, gss_buffer_t gssmic) ++/* These bits are only used for rekeying. The unpriviledged child is running ++ * as the user, the monitor is root. ++ * ++ * In the child, we want to : ++ * *) Ask the monitor to store our credentials into the store we specify ++ * *) If it succeeds, maybe do a PAM update ++ */ ++ ++/* Stuff for PAM */ ++ ++#ifdef USE_PAM ++static int ssh_gssapi_simple_conv(int n, const struct pam_message **msg, ++ struct pam_response **resp, void *data) + { +- ctx->major = gss_verify_mic(&ctx->minor, ctx->context, +- gssbuf, gssmic, NULL); ++ return (PAM_CONV_ERR); ++} ++#endif + +- return (ctx->major); ++void ++ssh_gssapi_rekey_creds() { ++ int ok; ++ int ret; ++#ifdef USE_PAM ++ pam_handle_t *pamh = NULL; ++ struct pam_conv pamconv = {ssh_gssapi_simple_conv, NULL}; ++ char *envstr; ++#endif ++ ++ if (gssapi_client.store.envval == NULL && ++ gssapi_client.store.envvar == NULL) ++ return; ++ ++ ok = PRIVSEP(ssh_gssapi_update_creds(&gssapi_client.store)); ++ ++ if (!ok) ++ return; ++ ++ debug("Rekeyed credentials stored successfully"); ++ ++ /* Actually managing to play with the ssh pam stack from here will ++ * be next to impossible. In any case, we may want different options ++ * for rekeying. So, use our own :) ++ */ ++#ifdef USE_PAM ++ if (!use_privsep) { ++ debug("Not even going to try and do PAM with privsep disabled"); ++ return; ++ } ++ ++ ret = pam_start("sshd-rekey", gssapi_client.store.owner->pw_name, ++ &pamconv, &pamh); ++ if (ret) ++ return; ++ ++ xasprintf(&envstr, "%s=%s", gssapi_client.store.envvar, ++ gssapi_client.store.envval); ++ ++ ret = pam_putenv(pamh, envstr); ++ if (!ret) ++ pam_setcred(pamh, PAM_REINITIALIZE_CRED); ++ pam_end(pamh, PAM_SUCCESS); ++#endif ++} ++ ++int ++ssh_gssapi_update_creds(ssh_gssapi_ccache *store) { ++ int ok = 0; ++ ++ /* Check we've got credentials to store */ ++ if (!gssapi_client.updated) ++ return 0; ++ ++ gssapi_client.updated = 0; ++ ++ temporarily_use_uid(gssapi_client.store.owner); ++ if (gssapi_client.mech && gssapi_client.mech->updatecreds) ++ ok = (*gssapi_client.mech->updatecreds)(store, &gssapi_client); ++ else ++ debug("No update function for this mechanism"); ++ ++ restore_uid(); ++ ++ return ok; + } + + /* Privileged */ +diff -up openssh/gss-serv-krb5.c.gsskex openssh/gss-serv-krb5.c +--- openssh/gss-serv-krb5.c.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/gss-serv-krb5.c 2018-08-22 11:47:33.311216457 +0200 +@@ -120,7 +120,7 @@ ssh_gssapi_krb5_storecreds(ssh_gssapi_cl + krb5_error_code problem; + krb5_principal princ; + OM_uint32 maj_status, min_status; +- int len; ++ const char *new_ccname, *new_cctype; + const char *errmsg; + + if (client->creds == NULL) { +@@ -180,11 +180,23 @@ ssh_gssapi_krb5_storecreds(ssh_gssapi_cl + return; + } + +- client->store.filename = xstrdup(krb5_cc_get_name(krb_context, ccache)); ++ new_cctype = krb5_cc_get_type(krb_context, ccache); ++ new_ccname = krb5_cc_get_name(krb_context, ccache); ++ + client->store.envvar = "KRB5CCNAME"; +- len = strlen(client->store.filename) + 6; +- client->store.envval = xmalloc(len); +- snprintf(client->store.envval, len, "FILE:%s", client->store.filename); ++#ifdef USE_CCAPI ++ xasprintf(&client->store.envval, "API:%s", new_ccname); ++#else ++ if (new_ccname[0] == ':') ++ new_ccname++; ++ xasprintf(&client->store.envval, "%s:%s", new_cctype, new_ccname); ++ if (strcmp(new_cctype, "DIR") == 0) { ++ char *p; ++ p = strrchr(client->store.envval, '/'); ++ if (p) ++ *p = '\0'; ++ } ++#endif + + #ifdef USE_PAM + if (options.use_pam) +@@ -193,9 +205,76 @@ ssh_gssapi_krb5_storecreds(ssh_gssapi_cl + + krb5_cc_close(krb_context, ccache); + ++ client->store.data = krb_context; ++ + return; + } + ++int ++ssh_gssapi_krb5_updatecreds(ssh_gssapi_ccache *store, ++ ssh_gssapi_client *client) ++{ ++ krb5_ccache ccache = NULL; ++ krb5_principal principal = NULL; ++ char *name = NULL; ++ krb5_error_code problem; ++ OM_uint32 maj_status, min_status; ++ ++ if ((problem = krb5_cc_resolve(krb_context, store->envval, &ccache))) { ++ logit("krb5_cc_resolve(): %.100s", ++ krb5_get_err_text(krb_context, problem)); ++ return 0; ++ } ++ ++ /* Find out who the principal in this cache is */ ++ if ((problem = krb5_cc_get_principal(krb_context, ccache, ++ &principal))) { ++ logit("krb5_cc_get_principal(): %.100s", ++ krb5_get_err_text(krb_context, problem)); ++ krb5_cc_close(krb_context, ccache); ++ return 0; ++ } ++ ++ if ((problem = krb5_unparse_name(krb_context, principal, &name))) { ++ logit("krb5_unparse_name(): %.100s", ++ krb5_get_err_text(krb_context, problem)); ++ krb5_free_principal(krb_context, principal); ++ krb5_cc_close(krb_context, ccache); ++ return 0; ++ } ++ ++ ++ if (strcmp(name,client->exportedname.value)!=0) { ++ debug("Name in local credentials cache differs. Not storing"); ++ krb5_free_principal(krb_context, principal); ++ krb5_cc_close(krb_context, ccache); ++ krb5_free_unparsed_name(krb_context, name); ++ return 0; ++ } ++ krb5_free_unparsed_name(krb_context, name); ++ ++ /* Name matches, so lets get on with it! */ ++ ++ if ((problem = krb5_cc_initialize(krb_context, ccache, principal))) { ++ logit("krb5_cc_initialize(): %.100s", ++ krb5_get_err_text(krb_context, problem)); ++ krb5_free_principal(krb_context, principal); ++ krb5_cc_close(krb_context, ccache); ++ return 0; ++ } ++ ++ krb5_free_principal(krb_context, principal); ++ ++ if ((maj_status = gss_krb5_copy_ccache(&min_status, client->creds, ++ ccache))) { ++ logit("gss_krb5_copy_ccache() failed. Sorry!"); ++ krb5_cc_close(krb_context, ccache); ++ return 0; ++ } ++ ++ return 1; ++} ++ + ssh_gssapi_mech gssapi_kerberos_mech = { + "toWM5Slw5Ew8Mqkay+al2g==", + "Kerberos", +@@ -203,7 +282,8 @@ ssh_gssapi_mech gssapi_kerberos_mech = { + NULL, + &ssh_gssapi_krb5_userok, + NULL, +- &ssh_gssapi_krb5_storecreds ++ &ssh_gssapi_krb5_storecreds, ++ &ssh_gssapi_krb5_updatecreds + }; + + #endif /* KRB5 */ +diff -up openssh/kex.c.gsskex openssh/kex.c +--- openssh/kex.c.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/kex.c 2018-08-22 11:47:33.311216457 +0200 +@@ -54,6 +54,10 @@ + #include "sshbuf.h" + #include "digest.h" + ++#ifdef GSSAPI ++#include "ssh-gss.h" ++#endif ++ + /* prototype */ + static int kex_choose_conf(struct ssh *); + static int kex_input_newkeys(int, u_int32_t, struct ssh *); +@@ -103,6 +107,11 @@ static const struct kexalg kexalgs[] = { + { KEX_CURVE25519_SHA256, KEX_C25519_SHA256, 0, SSH_DIGEST_SHA256 }, + { KEX_CURVE25519_SHA256_OLD, KEX_C25519_SHA256, 0, SSH_DIGEST_SHA256 }, + #endif /* HAVE_EVP_SHA256 || !WITH_OPENSSL */ ++#ifdef GSSAPI ++ { KEX_GSS_GEX_SHA1_ID, KEX_GSS_GEX_SHA1, 0, SSH_DIGEST_SHA1 }, ++ { KEX_GSS_GRP1_SHA1_ID, KEX_GSS_GRP1_SHA1, 0, SSH_DIGEST_SHA1 }, ++ { KEX_GSS_GRP14_SHA1_ID, KEX_GSS_GRP14_SHA1, 0, SSH_DIGEST_SHA1 }, ++#endif + { NULL, -1, -1, -1}, + }; + +@@ -136,6 +145,12 @@ kex_alg_by_name(const char *name) + for (k = kexalgs; k->name != NULL; k++) { + if (strcmp(k->name, name) == 0) + return k; ++#ifdef GSSAPI ++ if (strncmp(name, "gss-", 4) == 0) { ++ if (strncmp(k->name, name, strlen(k->name)) == 0) ++ return k; ++ } ++#endif + } + return NULL; + } +diff -up openssh/kexgssc.c.gsskex openssh/kexgssc.c +--- openssh/kexgssc.c.gsskex 2018-08-22 11:47:33.311216457 +0200 ++++ openssh/kexgssc.c 2018-08-22 11:47:33.311216457 +0200 +@@ -0,0 +1,338 @@ ++/* ++ * Copyright (c) 2001-2009 Simon Wilkinson. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "includes.h" ++ ++#ifdef GSSAPI ++ ++#include "includes.h" ++ ++#include ++#include ++ ++#include ++ ++#include "xmalloc.h" ++#include "sshbuf.h" ++#include "ssh2.h" ++#include "sshkey.h" ++#include "cipher.h" ++#include "kex.h" ++#include "log.h" ++#include "packet.h" ++#include "dh.h" ++#include "digest.h" ++ ++#include "ssh-gss.h" ++ ++int ++kexgss_client(struct ssh *ssh) { ++ gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; ++ gss_buffer_desc recv_tok, gssbuf, msg_tok, *token_ptr; ++ Gssctxt *ctxt; ++ OM_uint32 maj_status, min_status, ret_flags; ++ u_int klen, kout, slen = 0, strlen; ++ DH *dh; ++ BIGNUM *dh_server_pub = NULL; ++ BIGNUM *shared_secret = NULL; ++ BIGNUM *p = NULL; ++ BIGNUM *g = NULL; ++ u_char *kbuf; ++ u_char *serverhostkey = NULL; ++ u_char *empty = ""; ++ char *msg; ++ char *lang; ++ int type = 0; ++ int first = 1; ++ int nbits = 0, min = DH_GRP_MIN, max = DH_GRP_MAX; ++ u_char hash[SSH_DIGEST_MAX_LENGTH]; ++ size_t hashlen; ++ ++ /* Initialise our GSSAPI world */ ++ ssh_gssapi_build_ctx(&ctxt); ++ if (ssh_gssapi_id_kex(ctxt, ssh->kex->name, ssh->kex->kex_type) ++ == GSS_C_NO_OID) ++ fatal("Couldn't identify host exchange"); ++ ++ if (ssh_gssapi_import_name(ctxt, ssh->kex->gss_host)) ++ fatal("Couldn't import hostname"); ++ ++ if (ssh->kex->gss_client && ++ ssh_gssapi_client_identity(ctxt, ssh->kex->gss_client)) ++ fatal("Couldn't acquire client credentials"); ++ ++ switch (ssh->kex->kex_type) { ++ case KEX_GSS_GRP1_SHA1: ++ dh = dh_new_group1(); ++ break; ++ case KEX_GSS_GRP14_SHA1: ++ dh = dh_new_group14(); ++ break; ++ case KEX_GSS_GEX_SHA1: ++ debug("Doing group exchange\n"); ++ nbits = dh_estimate(ssh->kex->we_need * 8); ++ packet_start(SSH2_MSG_KEXGSS_GROUPREQ); ++ packet_put_int(min); ++ packet_put_int(nbits); ++ packet_put_int(max); ++ ++ packet_send(); ++ ++ packet_read_expect(SSH2_MSG_KEXGSS_GROUP); ++ ++ if ((p = BN_new()) == NULL) ++ fatal("BN_new() failed"); ++ packet_get_bignum2(p); ++ if ((g = BN_new()) == NULL) ++ fatal("BN_new() failed"); ++ packet_get_bignum2(g); ++ packet_check_eom(); ++ ++ if (BN_num_bits(p) < min || BN_num_bits(p) > max) ++ fatal("GSSGRP_GEX group out of range: %d !< %d !< %d", ++ min, BN_num_bits(p), max); ++ ++ dh = dh_new_group(g, p); ++ break; ++ default: ++ fatal("%s: Unexpected KEX type %d", __func__, ssh->kex->kex_type); ++ } ++ ++ /* Step 1 - e is dh->pub_key */ ++ dh_gen_key(dh, ssh->kex->we_need * 8); ++ ++ /* This is f, we initialise it now to make life easier */ ++ dh_server_pub = BN_new(); ++ if (dh_server_pub == NULL) ++ fatal("dh_server_pub == NULL"); ++ ++ token_ptr = GSS_C_NO_BUFFER; ++ ++ do { ++ debug("Calling gss_init_sec_context"); ++ ++ maj_status = ssh_gssapi_init_ctx(ctxt, ++ ssh->kex->gss_deleg_creds, token_ptr, &send_tok, ++ &ret_flags); ++ ++ if (GSS_ERROR(maj_status)) { ++ if (send_tok.length != 0) { ++ packet_start(SSH2_MSG_KEXGSS_CONTINUE); ++ packet_put_string(send_tok.value, ++ send_tok.length); ++ } ++ fatal("gss_init_context failed"); ++ } ++ ++ /* If we've got an old receive buffer get rid of it */ ++ if (token_ptr != GSS_C_NO_BUFFER) ++ free(recv_tok.value); ++ ++ if (maj_status == GSS_S_COMPLETE) { ++ /* If mutual state flag is not true, kex fails */ ++ if (!(ret_flags & GSS_C_MUTUAL_FLAG)) ++ fatal("Mutual authentication failed"); ++ ++ /* If integ avail flag is not true kex fails */ ++ if (!(ret_flags & GSS_C_INTEG_FLAG)) ++ fatal("Integrity check failed"); ++ } ++ ++ /* ++ * If we have data to send, then the last message that we ++ * received cannot have been a 'complete'. ++ */ ++ if (send_tok.length != 0) { ++ if (first) { ++ packet_start(SSH2_MSG_KEXGSS_INIT); ++ packet_put_string(send_tok.value, ++ send_tok.length); ++ packet_put_bignum2(dh->pub_key); ++ first = 0; ++ } else { ++ packet_start(SSH2_MSG_KEXGSS_CONTINUE); ++ packet_put_string(send_tok.value, ++ send_tok.length); ++ } ++ packet_send(); ++ gss_release_buffer(&min_status, &send_tok); ++ ++ /* If we've sent them data, they should reply */ ++ do { ++ type = packet_read(); ++ if (type == SSH2_MSG_KEXGSS_HOSTKEY) { ++ debug("Received KEXGSS_HOSTKEY"); ++ if (serverhostkey) ++ fatal("Server host key received more than once"); ++ serverhostkey = ++ packet_get_string(&slen); ++ } ++ } while (type == SSH2_MSG_KEXGSS_HOSTKEY); ++ ++ switch (type) { ++ case SSH2_MSG_KEXGSS_CONTINUE: ++ debug("Received GSSAPI_CONTINUE"); ++ if (maj_status == GSS_S_COMPLETE) ++ fatal("GSSAPI Continue received from server when complete"); ++ recv_tok.value = packet_get_string(&strlen); ++ recv_tok.length = strlen; ++ break; ++ case SSH2_MSG_KEXGSS_COMPLETE: ++ debug("Received GSSAPI_COMPLETE"); ++ packet_get_bignum2(dh_server_pub); ++ msg_tok.value = packet_get_string(&strlen); ++ msg_tok.length = strlen; ++ ++ /* Is there a token included? */ ++ if (packet_get_char()) { ++ recv_tok.value= ++ packet_get_string(&strlen); ++ recv_tok.length = strlen; ++ /* If we're already complete - protocol error */ ++ if (maj_status == GSS_S_COMPLETE) ++ packet_disconnect("Protocol error: received token when complete"); ++ } else { ++ /* No token included */ ++ if (maj_status != GSS_S_COMPLETE) ++ packet_disconnect("Protocol error: did not receive final token"); ++ } ++ break; ++ case SSH2_MSG_KEXGSS_ERROR: ++ debug("Received Error"); ++ maj_status = packet_get_int(); ++ min_status = packet_get_int(); ++ msg = packet_get_string(NULL); ++ lang = packet_get_string(NULL); ++ fatal("GSSAPI Error: \n%.400s",msg); ++ default: ++ packet_disconnect("Protocol error: didn't expect packet type %d", ++ type); ++ } ++ token_ptr = &recv_tok; ++ } else { ++ /* No data, and not complete */ ++ if (maj_status != GSS_S_COMPLETE) ++ fatal("Not complete, and no token output"); ++ } ++ } while (maj_status & GSS_S_CONTINUE_NEEDED); ++ ++ /* ++ * We _must_ have received a COMPLETE message in reply from the ++ * server, which will have set dh_server_pub and msg_tok ++ */ ++ ++ if (type != SSH2_MSG_KEXGSS_COMPLETE) ++ fatal("Didn't receive a SSH2_MSG_KEXGSS_COMPLETE when I expected it"); ++ ++ /* Check f in range [1, p-1] */ ++ if (!dh_pub_is_valid(dh, dh_server_pub)) ++ packet_disconnect("bad server public DH value"); ++ ++ /* compute K=f^x mod p */ ++ klen = DH_size(dh); ++ kbuf = xmalloc(klen); ++ kout = DH_compute_key(kbuf, dh_server_pub, dh); ++ if ((int)kout < 0) ++ fatal("DH_compute_key: failed"); ++ ++ shared_secret = BN_new(); ++ if (shared_secret == NULL) ++ fatal("kexgss_client: BN_new failed"); ++ ++ if (BN_bin2bn(kbuf, kout, shared_secret) == NULL) ++ fatal("kexdh_client: BN_bin2bn failed"); ++ ++ memset(kbuf, 0, klen); ++ free(kbuf); ++ ++ hashlen = sizeof(hash); ++ switch (ssh->kex->kex_type) { ++ case KEX_GSS_GRP1_SHA1: ++ case KEX_GSS_GRP14_SHA1: ++ kex_dh_hash(ssh->kex->hash_alg, ssh->kex->client_version_string, ++ ssh->kex->server_version_string, ++ sshbuf_ptr(ssh->kex->my), sshbuf_len(ssh->kex->my), ++ sshbuf_ptr(ssh->kex->peer), sshbuf_len(ssh->kex->peer), ++ (serverhostkey ? serverhostkey : empty), slen, ++ dh->pub_key, /* e */ ++ dh_server_pub, /* f */ ++ shared_secret, /* K */ ++ hash, &hashlen ++ ); ++ break; ++ case KEX_GSS_GEX_SHA1: ++ kexgex_hash( ++ ssh->kex->hash_alg, ++ ssh->kex->client_version_string, ++ ssh->kex->server_version_string, ++ sshbuf_ptr(ssh->kex->my), sshbuf_len(ssh->kex->my), ++ sshbuf_ptr(ssh->kex->peer), sshbuf_len(ssh->kex->peer), ++ (serverhostkey ? serverhostkey : empty), slen, ++ min, nbits, max, ++ dh->p, dh->g, ++ dh->pub_key, ++ dh_server_pub, ++ shared_secret, ++ hash, &hashlen ++ ); ++ break; ++ default: ++ fatal("%s: Unexpected KEX type %d", __func__, ssh->kex->kex_type); ++ } ++ ++ gssbuf.value = hash; ++ gssbuf.length = hashlen; ++ ++ /* Verify that the hash matches the MIC we just got. */ ++ if (GSS_ERROR(ssh_gssapi_checkmic(ctxt, &gssbuf, &msg_tok))) ++ packet_disconnect("Hash's MIC didn't verify"); ++ ++ free(msg_tok.value); ++ ++ DH_free(dh); ++ if (serverhostkey) ++ free(serverhostkey); ++ BN_clear_free(dh_server_pub); ++ ++ /* save session id */ ++ if (ssh->kex->session_id == NULL) { ++ ssh->kex->session_id_len = hashlen; ++ ssh->kex->session_id = xmalloc(ssh->kex->session_id_len); ++ memcpy(ssh->kex->session_id, hash, ssh->kex->session_id_len); ++ } ++ ++ if (ssh->kex->gss_deleg_creds) ++ ssh_gssapi_credentials_updated(ctxt); ++ ++ if (gss_kex_context == NULL) ++ gss_kex_context = ctxt; ++ else ++ ssh_gssapi_delete_ctx(&ctxt); ++ ++ kex_derive_keys_bn(ssh, hash, hashlen, shared_secret); ++ BN_clear_free(shared_secret); ++ return kex_send_newkeys(ssh); ++} ++ ++#endif /* GSSAPI */ +diff -up openssh/kexgsss.c.gsskex openssh/kexgsss.c +--- openssh/kexgsss.c.gsskex 2018-08-22 11:47:33.311216457 +0200 ++++ openssh/kexgsss.c 2018-08-22 11:47:33.311216457 +0200 +@@ -0,0 +1,297 @@ ++/* ++ * Copyright (c) 2001-2009 Simon Wilkinson. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "includes.h" ++ ++#ifdef GSSAPI ++ ++#include ++ ++#include ++#include ++ ++#include "xmalloc.h" ++#include "sshbuf.h" ++#include "ssh2.h" ++#include "sshkey.h" ++#include "cipher.h" ++#include "kex.h" ++#include "log.h" ++#include "packet.h" ++#include "dh.h" ++#include "ssh-gss.h" ++#include "monitor_wrap.h" ++#include "misc.h" /* servconf.h needs misc.h for struct ForwardOptions */ ++#include "servconf.h" ++#include "ssh-gss.h" ++#include "digest.h" ++ ++extern ServerOptions options; ++ ++int ++kexgss_server(struct ssh *ssh) ++{ ++ OM_uint32 maj_status, min_status; ++ ++ /* ++ * Some GSSAPI implementations use the input value of ret_flags (an ++ * output variable) as a means of triggering mechanism specific ++ * features. Initializing it to zero avoids inadvertently ++ * activating this non-standard behaviour. ++ */ ++ ++ OM_uint32 ret_flags = 0; ++ gss_buffer_desc gssbuf, recv_tok, msg_tok; ++ gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; ++ Gssctxt *ctxt = NULL; ++ u_int slen, klen, kout; ++ u_char *kbuf; ++ DH *dh; ++ int min = -1, max = -1, nbits = -1; ++ int cmin = -1, cmax = -1; /* client proposal */ ++ BIGNUM *shared_secret = NULL; ++ BIGNUM *dh_client_pub = NULL; ++ int type = 0; ++ gss_OID oid; ++ char *mechs; ++ u_char hash[SSH_DIGEST_MAX_LENGTH]; ++ size_t hashlen; ++ ++ /* Initialise GSSAPI */ ++ ++ /* If we're rekeying, privsep means that some of the private structures ++ * in the GSSAPI code are no longer available. This kludges them back ++ * into life ++ */ ++ if (!ssh_gssapi_oid_table_ok()) ++ if ((mechs = ssh_gssapi_server_mechanisms())) ++ free(mechs); ++ ++ debug2("%s: Identifying %s", __func__, ssh->kex->name); ++ oid = ssh_gssapi_id_kex(NULL, ssh->kex->name, ssh->kex->kex_type); ++ if (oid == GSS_C_NO_OID) ++ fatal("Unknown gssapi mechanism"); ++ ++ debug2("%s: Acquiring credentials", __func__); ++ ++ if (GSS_ERROR(PRIVSEP(ssh_gssapi_server_ctx(&ctxt, oid)))) ++ fatal("Unable to acquire credentials for the server"); ++ ++ switch (ssh->kex->kex_type) { ++ case KEX_GSS_GRP1_SHA1: ++ dh = dh_new_group1(); ++ break; ++ case KEX_GSS_GRP14_SHA1: ++ dh = dh_new_group14(); ++ break; ++ case KEX_GSS_GEX_SHA1: ++ debug("Doing group exchange"); ++ packet_read_expect(SSH2_MSG_KEXGSS_GROUPREQ); ++ /* store client proposal to provide valid signature */ ++ cmin = packet_get_int(); ++ nbits = packet_get_int(); ++ cmax = packet_get_int(); ++ min = MAX(DH_GRP_MIN, cmin); ++ max = MIN(DH_GRP_MAX, cmax); ++ packet_check_eom(); ++ if (max < min || nbits < min || max < nbits) ++ fatal("GSS_GEX, bad parameters: %d !< %d !< %d", ++ min, nbits, max); ++ dh = PRIVSEP(choose_dh(min, nbits, max)); ++ if (dh == NULL) ++ packet_disconnect("Protocol error: no matching group found"); ++ ++ packet_start(SSH2_MSG_KEXGSS_GROUP); ++ packet_put_bignum2(dh->p); ++ packet_put_bignum2(dh->g); ++ packet_send(); ++ ++ packet_write_wait(); ++ break; ++ default: ++ fatal("%s: Unexpected KEX type %d", __func__, ssh->kex->kex_type); ++ } ++ ++ dh_gen_key(dh, ssh->kex->we_need * 8); ++ ++ do { ++ debug("Wait SSH2_MSG_GSSAPI_INIT"); ++ type = packet_read(); ++ switch(type) { ++ case SSH2_MSG_KEXGSS_INIT: ++ if (dh_client_pub != NULL) ++ fatal("Received KEXGSS_INIT after initialising"); ++ recv_tok.value = packet_get_string(&slen); ++ recv_tok.length = slen; ++ ++ if ((dh_client_pub = BN_new()) == NULL) ++ fatal("dh_client_pub == NULL"); ++ ++ packet_get_bignum2(dh_client_pub); ++ ++ /* Send SSH_MSG_KEXGSS_HOSTKEY here, if we want */ ++ break; ++ case SSH2_MSG_KEXGSS_CONTINUE: ++ recv_tok.value = packet_get_string(&slen); ++ recv_tok.length = slen; ++ break; ++ default: ++ packet_disconnect( ++ "Protocol error: didn't expect packet type %d", ++ type); ++ } ++ ++ maj_status = PRIVSEP(ssh_gssapi_accept_ctx(ctxt, &recv_tok, ++ &send_tok, &ret_flags)); ++ ++ free(recv_tok.value); ++ ++ if (maj_status != GSS_S_COMPLETE && send_tok.length == 0) ++ fatal("Zero length token output when incomplete"); ++ ++ if (dh_client_pub == NULL) ++ fatal("No client public key"); ++ ++ if (maj_status & GSS_S_CONTINUE_NEEDED) { ++ debug("Sending GSSAPI_CONTINUE"); ++ packet_start(SSH2_MSG_KEXGSS_CONTINUE); ++ packet_put_string(send_tok.value, send_tok.length); ++ packet_send(); ++ gss_release_buffer(&min_status, &send_tok); ++ } ++ } while (maj_status & GSS_S_CONTINUE_NEEDED); ++ ++ if (GSS_ERROR(maj_status)) { ++ if (send_tok.length > 0) { ++ packet_start(SSH2_MSG_KEXGSS_CONTINUE); ++ packet_put_string(send_tok.value, send_tok.length); ++ packet_send(); ++ } ++ fatal("accept_ctx died"); ++ } ++ ++ if (!(ret_flags & GSS_C_MUTUAL_FLAG)) ++ fatal("Mutual Authentication flag wasn't set"); ++ ++ if (!(ret_flags & GSS_C_INTEG_FLAG)) ++ fatal("Integrity flag wasn't set"); ++ ++ if (!dh_pub_is_valid(dh, dh_client_pub)) ++ packet_disconnect("bad client public DH value"); ++ ++ klen = DH_size(dh); ++ kbuf = xmalloc(klen); ++ kout = DH_compute_key(kbuf, dh_client_pub, dh); ++ if ((int)kout < 0) ++ fatal("DH_compute_key: failed"); ++ ++ shared_secret = BN_new(); ++ if (shared_secret == NULL) ++ fatal("kexgss_server: BN_new failed"); ++ ++ if (BN_bin2bn(kbuf, kout, shared_secret) == NULL) ++ fatal("kexgss_server: BN_bin2bn failed"); ++ ++ memset(kbuf, 0, klen); ++ free(kbuf); ++ ++ hashlen = sizeof(hash); ++ switch (ssh->kex->kex_type) { ++ case KEX_GSS_GRP1_SHA1: ++ case KEX_GSS_GRP14_SHA1: ++ kex_dh_hash(ssh->kex->hash_alg, ++ ssh->kex->client_version_string, ssh->kex->server_version_string, ++ sshbuf_ptr(ssh->kex->peer), sshbuf_len(ssh->kex->peer), ++ sshbuf_ptr(ssh->kex->my), sshbuf_len(ssh->kex->my), ++ NULL, 0, /* Change this if we start sending host keys */ ++ dh_client_pub, dh->pub_key, shared_secret, ++ hash, &hashlen ++ ); ++ break; ++ case KEX_GSS_GEX_SHA1: ++ kexgex_hash( ++ ssh->kex->hash_alg, ++ ssh->kex->client_version_string, ssh->kex->server_version_string, ++ sshbuf_ptr(ssh->kex->peer), sshbuf_len(ssh->kex->peer), ++ sshbuf_ptr(ssh->kex->my), sshbuf_len(ssh->kex->my), ++ NULL, 0, ++ cmin, nbits, cmax, ++ dh->p, dh->g, ++ dh_client_pub, ++ dh->pub_key, ++ shared_secret, ++ hash, &hashlen ++ ); ++ break; ++ default: ++ fatal("%s: Unexpected KEX type %d", __func__, ssh->kex->kex_type); ++ } ++ ++ BN_clear_free(dh_client_pub); ++ ++ if (ssh->kex->session_id == NULL) { ++ ssh->kex->session_id_len = hashlen; ++ ssh->kex->session_id = xmalloc(ssh->kex->session_id_len); ++ memcpy(ssh->kex->session_id, hash, ssh->kex->session_id_len); ++ } ++ ++ gssbuf.value = hash; ++ gssbuf.length = hashlen; ++ ++ if (GSS_ERROR(PRIVSEP(ssh_gssapi_sign(ctxt,&gssbuf,&msg_tok)))) ++ fatal("Couldn't get MIC"); ++ ++ packet_start(SSH2_MSG_KEXGSS_COMPLETE); ++ packet_put_bignum2(dh->pub_key); ++ packet_put_string(msg_tok.value,msg_tok.length); ++ ++ if (send_tok.length != 0) { ++ packet_put_char(1); /* true */ ++ packet_put_string(send_tok.value, send_tok.length); ++ } else { ++ packet_put_char(0); /* false */ ++ } ++ packet_send(); ++ ++ gss_release_buffer(&min_status, &send_tok); ++ gss_release_buffer(&min_status, &msg_tok); ++ ++ if (gss_kex_context == NULL) ++ gss_kex_context = ctxt; ++ else ++ ssh_gssapi_delete_ctx(&ctxt); ++ ++ DH_free(dh); ++ ++ kex_derive_keys_bn(ssh, hash, hashlen, shared_secret); ++ BN_clear_free(shared_secret); ++ kex_send_newkeys(ssh); ++ ++ /* If this was a rekey, then save out any delegated credentials we ++ * just exchanged. */ ++ if (options.gss_store_rekey) ++ ssh_gssapi_rekey_creds(); ++ return 0; ++} ++#endif /* GSSAPI */ +diff -up openssh/kex.h.gsskex openssh/kex.h +--- openssh/kex.h.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/kex.h 2018-08-22 11:47:33.311216457 +0200 +@@ -100,6 +100,11 @@ enum kex_exchange { + KEX_DH_GEX_SHA256, + KEX_ECDH_SHA2, + KEX_C25519_SHA256, ++#ifdef GSSAPI ++ KEX_GSS_GRP1_SHA1, ++ KEX_GSS_GRP14_SHA1, ++ KEX_GSS_GEX_SHA1, ++#endif + KEX_MAX + }; + +@@ -148,6 +153,12 @@ struct kex { + u_int flags; + int hash_alg; + int ec_nid; ++#ifdef GSSAPI ++ int gss_deleg_creds; ++ int gss_trust_dns; ++ char *gss_host; ++ char *gss_client; ++#endif + char *client_version_string; + char *server_version_string; + char *failed_choice; +@@ -197,6 +208,10 @@ int kexecdh_client(struct ssh *); + int kexecdh_server(struct ssh *); + int kexc25519_client(struct ssh *); + int kexc25519_server(struct ssh *); ++#ifdef GSSAPI ++int kexgss_client(struct ssh *); ++int kexgss_server(struct ssh *); ++#endif + + int kex_dh_hash(int, const char *, const char *, + const u_char *, size_t, const u_char *, size_t, const u_char *, size_t, +diff -up openssh/Makefile.in.gsskex openssh/Makefile.in +--- openssh/Makefile.in.gsskex 2018-08-22 11:47:33.312216465 +0200 ++++ openssh/Makefile.in 2018-08-22 13:19:54.955928277 +0200 +@@ -100,6 +100,7 @@ LIBSSH_OBJS=${LIBOPENSSH_OBJS} \ + readpass.o ttymodes.o xmalloc.o addrmatch.o \ + atomicio.o dispatch.o mac.o uuencode.o misc.o utf8.o \ + monitor_fdpass.o rijndael.o ssh-dss.o ssh-ecdsa.o ssh-rsa.o dh.o \ ++ kexgssc.o \ + msg.o progressmeter.o dns.o entropy.o gss-genr.o umac.o umac128.o \ + ssh-pkcs11.o smult_curve25519_ref.o \ + poly1305.o chacha.o cipher-chachapoly.o \ +@@ -121,7 +122,7 @@ SSHDOBJS=sshd.o auth-rhosts.o auth-passw + auth-bsdauth.o auth2-hostbased.o auth2-kbdint.o \ + auth2-none.o auth2-passwd.o auth2-pubkey.o \ + monitor.o monitor_wrap.o auth-krb5.o \ +- auth2-gss.o gss-serv.o gss-serv-krb5.o \ ++ auth2-gss.o gss-serv.o gss-serv-krb5.o kexgsss.o \ + loginrec.o auth-pam.o auth-shadow.o auth-sia.o md5crypt.o \ + sftp-server.o sftp-common.o \ + sandbox-null.o sandbox-rlimit.o sandbox-systrace.o sandbox-darwin.o \ +diff -up openssh/monitor.c.gsskex openssh/monitor.c +--- openssh/monitor.c.gsskex 2018-08-22 11:47:33.263216069 +0200 ++++ openssh/monitor.c 2018-08-22 13:22:19.589095240 +0200 +@@ -146,6 +146,8 @@ int mm_answer_gss_setup_ctx(int, struct + int mm_answer_gss_accept_ctx(int, struct sshbuf *); + int mm_answer_gss_userok(int, struct sshbuf *); + int mm_answer_gss_checkmic(int, struct sshbuf *); ++int mm_answer_gss_sign(int, struct sshbuf *); ++int mm_answer_gss_updatecreds(int, struct sshbuf *); + #endif + + #ifdef SSH_AUDIT_EVENTS +@@ -219,11 +221,18 @@ struct mon_table mon_dispatch_proto20[] + {MONITOR_REQ_GSSSTEP, 0, mm_answer_gss_accept_ctx}, + {MONITOR_REQ_GSSUSEROK, MON_ONCE|MON_AUTHDECIDE, mm_answer_gss_userok}, + {MONITOR_REQ_GSSCHECKMIC, MON_ONCE, mm_answer_gss_checkmic}, ++ {MONITOR_REQ_GSSSIGN, MON_ONCE, mm_answer_gss_sign}, + #endif + {0, 0, NULL} + }; + + struct mon_table mon_dispatch_postauth20[] = { ++#ifdef GSSAPI ++ {MONITOR_REQ_GSSSETUP, 0, mm_answer_gss_setup_ctx}, ++ {MONITOR_REQ_GSSSTEP, 0, mm_answer_gss_accept_ctx}, ++ {MONITOR_REQ_GSSSIGN, 0, mm_answer_gss_sign}, ++ {MONITOR_REQ_GSSUPCREDS, 0, mm_answer_gss_updatecreds}, ++#endif + #ifdef WITH_OPENSSL + {MONITOR_REQ_MODULI, 0, mm_answer_moduli}, + #endif +@@ -293,6 +302,10 @@ monitor_child_preauth(Authctxt *_authctx + /* Permit requests for moduli and signatures */ + monitor_permit(mon_dispatch, MONITOR_REQ_MODULI, 1); + monitor_permit(mon_dispatch, MONITOR_REQ_SIGN, 1); ++#ifdef GSSAPI ++ /* and for the GSSAPI key exchange */ ++ monitor_permit(mon_dispatch, MONITOR_REQ_GSSSETUP, 1); ++#endif + + /* The first few requests do not require asynchronous access */ + while (!authenticated) { +@@ -405,6 +418,10 @@ monitor_child_postauth(struct monitor *p + monitor_permit(mon_dispatch, MONITOR_REQ_MODULI, 1); + monitor_permit(mon_dispatch, MONITOR_REQ_SIGN, 1); + monitor_permit(mon_dispatch, MONITOR_REQ_TERM, 1); ++#ifdef GSSAPI ++ /* and for the GSSAPI key exchange */ ++ monitor_permit(mon_dispatch, MONITOR_REQ_GSSSETUP, 1); ++#endif + + if (auth_opts->permit_pty_flag) { + monitor_permit(mon_dispatch, MONITOR_REQ_PTY, 1); +@@ -1695,6 +1712,13 @@ monitor_apply_keystate(struct monitor *p + # endif + #endif /* WITH_OPENSSL */ + kex->kex[KEX_C25519_SHA256] = kexc25519_server; ++#ifdef GSSAPI ++ if (options.gss_keyex) { ++ kex->kex[KEX_GSS_GRP1_SHA1] = kexgss_server; ++ kex->kex[KEX_GSS_GRP14_SHA1] = kexgss_server; ++ kex->kex[KEX_GSS_GEX_SHA1] = kexgss_server; ++ } ++#endif + kex->load_host_public_key=&get_hostkey_public_by_type; + kex->load_host_private_key=&get_hostkey_private_by_type; + kex->host_key_index=&get_hostkey_index; +@@ -1785,7 +1809,7 @@ mm_answer_gss_setup_ctx(int sock, struct + u_char *p; + int r; + +- if (!options.gss_authentication) ++ if (!options.gss_authentication && !options.gss_keyex) + fatal("%s: GSSAPI authentication not enabled", __func__); + + if ((r = sshbuf_get_string(m, &p, &len)) != 0) +@@ -1818,7 +1842,7 @@ mm_answer_gss_accept_ctx(int sock, struc + OM_uint32 flags = 0; /* GSI needs this */ + int r; + +- if (!options.gss_authentication) ++ if (!options.gss_authentication && !options.gss_keyex) + fatal("%s: GSSAPI authentication not enabled", __func__); + + if ((r = ssh_gssapi_get_buffer_desc(m, &in)) != 0) +@@ -1839,6 +1863,7 @@ mm_answer_gss_accept_ctx(int sock, struc + monitor_permit(mon_dispatch, MONITOR_REQ_GSSSTEP, 0); + monitor_permit(mon_dispatch, MONITOR_REQ_GSSUSEROK, 1); + monitor_permit(mon_dispatch, MONITOR_REQ_GSSCHECKMIC, 1); ++ monitor_permit(mon_dispatch, MONITOR_REQ_GSSSIGN, 1); + } + return (0); + } +@@ -1850,7 +1875,7 @@ mm_answer_gss_checkmic(int sock, struct + OM_uint32 ret; + int r; + +- if (!options.gss_authentication) ++ if (!options.gss_authentication && !options.gss_keyex) + fatal("%s: GSSAPI authentication not enabled", __func__); + + if ((r = ssh_gssapi_get_buffer_desc(m, &gssbuf)) != 0 || +@@ -1880,10 +1905,11 @@ mm_answer_gss_userok(int sock, struct ss + int r, authenticated; + const char *displayname; + +- if (!options.gss_authentication) ++ if (!options.gss_authentication && !options.gss_keyex) + fatal("%s: GSSAPI authentication not enabled", __func__); + +- authenticated = authctxt->valid && ssh_gssapi_userok(authctxt->user); ++ authenticated = authctxt->valid && ++ ssh_gssapi_userok(authctxt->user, authctxt->pw); + + sshbuf_reset(m); + if ((r = sshbuf_put_u32(m, authenticated)) != 0) +@@ -1900,5 +1926,74 @@ mm_answer_gss_userok(int sock, struct ss + /* Monitor loop will terminate if authenticated */ + return (authenticated); + } ++ ++int ++mm_answer_gss_sign(int socket, struct sshbuf *m) ++{ ++ gss_buffer_desc data; ++ gss_buffer_desc hash = GSS_C_EMPTY_BUFFER; ++ OM_uint32 major, minor; ++ int r; ++ ++ if (!options.gss_authentication && !options.gss_keyex) ++ fatal("In GSSAPI monitor when GSSAPI is disabled"); ++ ++ if ((r = sshbuf_get_string(m, (u_char **)&data.value, &data.length)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ if (data.length != 20) ++ fatal("%s: data length incorrect: %d", __func__, ++ (int) data.length); ++ ++ /* Save the session ID on the first time around */ ++ if (session_id2_len == 0) { ++ session_id2_len = data.length; ++ session_id2 = xmalloc(session_id2_len); ++ memcpy(session_id2, data.value, session_id2_len); ++ } ++ major = ssh_gssapi_sign(gsscontext, &data, &hash); ++ ++ free(data.value); ++ ++ sshbuf_reset(m); ++ if ((r = sshbuf_put_u32(m, major)) != 0 || ++ (r = sshbuf_put_string(m, hash.value, hash.length)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ mm_request_send(socket, MONITOR_ANS_GSSSIGN, m); ++ ++ gss_release_buffer(&minor, &hash); ++ ++ /* Turn on getpwnam permissions */ ++ monitor_permit(mon_dispatch, MONITOR_REQ_PWNAM, 1); ++ ++ /* And credential updating, for when rekeying */ ++ monitor_permit(mon_dispatch, MONITOR_REQ_GSSUPCREDS, 1); ++ ++ return (0); ++} ++ ++int ++mm_answer_gss_updatecreds(int socket, struct sshbuf *m) { ++ ssh_gssapi_ccache store; ++ int ok, r; ++ ++ if ((r = sshbuf_get_cstring(m, &store.envvar, NULL)) != 0 || ++ (r = sshbuf_get_cstring(m, &store.envval, NULL)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ ok = ssh_gssapi_update_creds(&store); ++ ++ free(store.envvar); ++ free(store.envval); ++ ++ sshbuf_reset(m); ++ if ((r = sshbuf_put_u32(m, ok)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ mm_request_send(socket, MONITOR_ANS_GSSUPCREDS, m); ++ ++ return(0); ++} ++ + #endif /* GSSAPI */ + +diff -up openssh/monitor.h.gsskex openssh/monitor.h +--- openssh/monitor.h.gsskex 2018-08-22 11:47:33.263216069 +0200 ++++ openssh/monitor.h 2018-08-22 11:47:33.313216473 +0200 +@@ -58,6 +58,8 @@ enum monitor_reqtype { + #ifdef WITH_SELINUX + MONITOR_REQ_AUTHROLE = 80, + #endif ++ MONITOR_REQ_GSSSIGN = 82, MONITOR_ANS_GSSSIGN = 83, ++ MONITOR_REQ_GSSUPCREDS = 84, MONITOR_ANS_GSSUPCREDS = 85, + + MONITOR_REQ_PAM_START = 100, + MONITOR_REQ_PAM_ACCOUNT = 102, MONITOR_ANS_PAM_ACCOUNT = 103, +diff -up openssh/monitor_wrap.c.gsskex openssh/monitor_wrap.c +--- openssh/monitor_wrap.c.gsskex 2018-08-22 11:47:33.313216473 +0200 ++++ openssh/monitor_wrap.c 2018-08-22 13:27:38.665669643 +0200 +@@ -1004,7 +1004,7 @@ mm_ssh_gssapi_checkmic(Gssctxt *ctx, gss + } + + int +-mm_ssh_gssapi_userok(char *user) ++mm_ssh_gssapi_userok(char *user, struct passwd *pw) + { + struct sshbuf *m; + int r, authenticated = 0; +@@ -1023,4 +1023,52 @@ mm_ssh_gssapi_userok(char *user) + debug3("%s: user %sauthenticated",__func__, authenticated ? "" : "not "); + return (authenticated); + } ++ ++OM_uint32 ++mm_ssh_gssapi_sign(Gssctxt *ctx, gss_buffer_desc *data, gss_buffer_desc *hash) ++{ ++ struct sshbuf *m; ++ OM_uint32 major; ++ int r; ++ ++ if ((m = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ if ((r = sshbuf_put_string(m, data->value, data->length)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSSIGN, m); ++ mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_GSSSIGN, m); ++ ++ if ((r = sshbuf_get_u32(m, &major)) != 0 || ++ (r = sshbuf_get_string(m, (u_char **)&hash->value, &hash->length)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ sshbuf_free(m); ++ ++ return(major); ++} ++ ++int ++mm_ssh_gssapi_update_creds(ssh_gssapi_ccache *store) ++{ ++ struct sshbuf *m; ++ int ok, r; ++ ++ if ((m = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ ++ if ((r = sshbuf_put_cstring(m, store->envvar ? store->envvar : "")) != 0 || ++ (r = sshbuf_put_cstring(m, store->envval ? store->envval : "")) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSUPCREDS, m); ++ mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_GSSUPCREDS, m); ++ ++ if ((r = sshbuf_get_u32(m, &ok)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ ++ sshbuf_free(m); ++ ++ return (ok); ++} + #endif /* GSSAPI */ +diff -up openssh/monitor_wrap.h.gsskex openssh/monitor_wrap.h +--- openssh/monitor_wrap.h.gsskex 2018-08-22 11:47:33.263216069 +0200 ++++ openssh/monitor_wrap.h 2018-08-22 11:47:33.313216473 +0200 +@@ -63,8 +63,10 @@ int mm_sshkey_verify(const struct sshkey + OM_uint32 mm_ssh_gssapi_server_ctx(Gssctxt **, gss_OID); + OM_uint32 mm_ssh_gssapi_accept_ctx(Gssctxt *, + gss_buffer_desc *, gss_buffer_desc *, OM_uint32 *); +-int mm_ssh_gssapi_userok(char *user); ++int mm_ssh_gssapi_userok(char *user, struct passwd *); + OM_uint32 mm_ssh_gssapi_checkmic(Gssctxt *, gss_buffer_t, gss_buffer_t); ++OM_uint32 mm_ssh_gssapi_sign(Gssctxt *, gss_buffer_t, gss_buffer_t); ++int mm_ssh_gssapi_update_creds(ssh_gssapi_ccache *); + #endif + + #ifdef USE_PAM +diff -up openssh/readconf.c.gsskex openssh/readconf.c +--- openssh/readconf.c.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/readconf.c 2018-08-22 13:28:17.487982869 +0200 +@@ -161,6 +161,8 @@ typedef enum { + oClearAllForwardings, oNoHostAuthenticationForLocalhost, + oEnableSSHKeysign, oRekeyLimit, oVerifyHostKeyDNS, oConnectTimeout, + oAddressFamily, oGssAuthentication, oGssDelegateCreds, ++ oGssTrustDns, oGssKeyEx, oGssClientIdentity, oGssRenewalRekey, ++ oGssServerIdentity, + oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly, + oSendEnv, oSetEnv, oControlPath, oControlMaster, oControlPersist, + oHashKnownHosts, +@@ -201,10 +203,19 @@ static struct { + /* Sometimes-unsupported options */ + #if defined(GSSAPI) + { "gssapiauthentication", oGssAuthentication }, ++ { "gssapikeyexchange", oGssKeyEx }, + { "gssapidelegatecredentials", oGssDelegateCreds }, ++ { "gssapitrustdns", oGssTrustDns }, ++ { "gssapiclientidentity", oGssClientIdentity }, ++ { "gssapiserveridentity", oGssServerIdentity }, ++ { "gssapirenewalforcesrekey", oGssRenewalRekey }, + # else + { "gssapiauthentication", oUnsupported }, ++ { "gssapikeyexchange", oUnsupported }, + { "gssapidelegatecredentials", oUnsupported }, ++ { "gssapitrustdns", oUnsupported }, ++ { "gssapiclientidentity", oUnsupported }, ++ { "gssapirenewalforcesrekey", oUnsupported }, + #endif + #ifdef ENABLE_PKCS11 + { "smartcarddevice", oPKCS11Provider }, +@@ -973,10 +984,30 @@ parse_time: + intptr = &options->gss_authentication; + goto parse_flag; + ++ case oGssKeyEx: ++ intptr = &options->gss_keyex; ++ goto parse_flag; ++ + case oGssDelegateCreds: + intptr = &options->gss_deleg_creds; + goto parse_flag; + ++ case oGssTrustDns: ++ intptr = &options->gss_trust_dns; ++ goto parse_flag; ++ ++ case oGssClientIdentity: ++ charptr = &options->gss_client_identity; ++ goto parse_string; ++ ++ case oGssServerIdentity: ++ charptr = &options->gss_server_identity; ++ goto parse_string; ++ ++ case oGssRenewalRekey: ++ intptr = &options->gss_renewal_rekey; ++ goto parse_flag; ++ + case oBatchMode: + intptr = &options->batch_mode; + goto parse_flag; +@@ -1817,7 +1848,12 @@ initialize_options(Options * options) + options->pubkey_authentication = -1; + options->challenge_response_authentication = -1; + options->gss_authentication = -1; ++ options->gss_keyex = -1; + options->gss_deleg_creds = -1; ++ options->gss_trust_dns = -1; ++ options->gss_renewal_rekey = -1; ++ options->gss_client_identity = NULL; ++ options->gss_server_identity = NULL; + options->password_authentication = -1; + options->kbd_interactive_authentication = -1; + options->kbd_interactive_devices = NULL; +@@ -1962,8 +1998,14 @@ fill_default_options(Options * options) + options->challenge_response_authentication = 1; + if (options->gss_authentication == -1) + options->gss_authentication = 0; ++ if (options->gss_keyex == -1) ++ options->gss_keyex = 0; + if (options->gss_deleg_creds == -1) + options->gss_deleg_creds = 0; ++ if (options->gss_trust_dns == -1) ++ options->gss_trust_dns = 0; ++ if (options->gss_renewal_rekey == -1) ++ options->gss_renewal_rekey = 0; + if (options->password_authentication == -1) + options->password_authentication = 1; + if (options->kbd_interactive_authentication == -1) +diff -up openssh/readconf.h.gsskex openssh/readconf.h +--- openssh/readconf.h.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/readconf.h 2018-08-22 11:47:33.314216481 +0200 +@@ -40,7 +40,12 @@ typedef struct { + int challenge_response_authentication; + /* Try S/Key or TIS, authentication. */ + int gss_authentication; /* Try GSS authentication */ ++ int gss_keyex; /* Try GSS key exchange */ + int gss_deleg_creds; /* Delegate GSS credentials */ ++ int gss_trust_dns; /* Trust DNS for GSS canonicalization */ ++ int gss_renewal_rekey; /* Credential renewal forces rekey */ ++ char *gss_client_identity; /* Principal to initiate GSSAPI with */ ++ char *gss_server_identity; /* GSSAPI target principal */ + int password_authentication; /* Try password + * authentication. */ + int kbd_interactive_authentication; /* Try keyboard-interactive auth. */ +diff -up openssh/regress/cert-hostkey.sh.gsskex openssh/regress/cert-hostkey.sh +--- openssh/regress/cert-hostkey.sh.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/regress/cert-hostkey.sh 2018-08-22 11:47:33.314216481 +0200 +@@ -66,7 +66,7 @@ touch $OBJ/host_revoked_plain + touch $OBJ/host_revoked_cert + cat $OBJ/host_ca_key.pub $OBJ/host_ca_key2.pub > $OBJ/host_revoked_ca + +-PLAIN_TYPES=`$SSH -Q key-plain | sed 's/^ssh-dss/ssh-dsa/g;s/^ssh-//'` ++PLAIN_TYPES=`$SSH -Q key-plain | grep -v null | sed 's/^ssh-dss/ssh-dsa/g;s/^ssh-//'` + + if echo "$PLAIN_TYPES" | grep '^rsa$' >/dev/null 2>&1 ; then + PLAIN_TYPES="$PLAIN_TYPES rsa-sha2-256 rsa-sha2-512" +diff -up openssh/regress/cert-userkey.sh.gsskex openssh/regress/cert-userkey.sh +--- openssh/regress/cert-userkey.sh.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/regress/cert-userkey.sh 2018-08-22 11:47:33.314216481 +0200 +@@ -7,7 +7,7 @@ rm -f $OBJ/authorized_keys_$USER $OBJ/us + cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak + cp $OBJ/ssh_proxy $OBJ/ssh_proxy_bak + +-PLAIN_TYPES=`$SSH -Q key-plain | sed 's/^ssh-dss/ssh-dsa/;s/^ssh-//'` ++PLAIN_TYPES=`$SSH -Q key-plain | grep -v null | sed 's/^ssh-dss/ssh-dsa/;s/^ssh-//'` + EXTRA_TYPES="" + + if echo "$PLAIN_TYPES" | grep '^rsa$' >/dev/null 2>&1 ; then +diff -up openssh/regress/kextype.sh.gsskex openssh/regress/kextype.sh +--- openssh/regress/kextype.sh.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/regress/kextype.sh 2018-08-22 11:47:33.315216489 +0200 +@@ -14,6 +14,9 @@ echo "KexAlgorithms=$KEXOPT" >> $OBJ/ssh + + tries="1 2 3 4" + for k in `${SSH} -Q kex`; do ++ if [ $k = "gss-gex-sha1-" -o $k = "gss-group1-sha1-" -o $k = "gss-group14-sha1-" ]; then ++ continue ++ fi + verbose "kex $k" + for i in $tries; do + ${SSH} -F $OBJ/ssh_proxy -o KexAlgorithms=$k x true +diff -up openssh/regress/rekey.sh.gsskex openssh/regress/rekey.sh +--- openssh/regress/rekey.sh.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/regress/rekey.sh 2018-08-22 11:47:33.315216489 +0200 +@@ -38,6 +38,9 @@ increase_datafile_size 300 + + opts="" + for i in `${SSH} -Q kex`; do ++ if [ $i = "gss-gex-sha1-" -o $i = "gss-group1-sha1-" -o $i = "gss-group14-sha1-" ]; then ++ continue ++ fi + opts="$opts KexAlgorithms=$i" + done + for i in `${SSH} -Q cipher`; do +@@ -56,6 +59,9 @@ done + if ${SSH} -Q cipher-auth | grep '^.*$' >/dev/null 2>&1 ; then + for c in `${SSH} -Q cipher-auth`; do + for kex in `${SSH} -Q kex`; do ++ if [ $kex = "gss-gex-sha1-" -o $kex = "gss-group1-sha1-" -o $kex = "gss-group14-sha1-" ]; then ++ continue ++ fi + verbose "client rekey $c $kex" + ssh_data_rekeying "KexAlgorithms=$kex" -oRekeyLimit=256k -oCiphers=$c + done +diff -up openssh/servconf.c.gsskex openssh/servconf.c +--- openssh/servconf.c.gsskex 2018-08-22 11:47:33.296216335 +0200 ++++ openssh/servconf.c 2018-08-22 13:28:41.905179879 +0200 +@@ -124,8 +124,10 @@ initialize_server_options(ServerOptions + options->kerberos_ticket_cleanup = -1; + options->kerberos_get_afs_token = -1; + options->gss_authentication=-1; ++ options->gss_keyex = -1; + options->gss_cleanup_creds = -1; + options->gss_strict_acceptor = -1; ++ options->gss_store_rekey = -1; + options->password_authentication = -1; + options->kbd_interactive_authentication = -1; + options->challenge_response_authentication = -1; +@@ -334,10 +336,14 @@ fill_default_server_options(ServerOption + options->kerberos_get_afs_token = 0; + if (options->gss_authentication == -1) + options->gss_authentication = 0; ++ if (options->gss_keyex == -1) ++ options->gss_keyex = 0; + if (options->gss_cleanup_creds == -1) + options->gss_cleanup_creds = 1; + if (options->gss_strict_acceptor == -1) + options->gss_strict_acceptor = 1; ++ if (options->gss_store_rekey == -1) ++ options->gss_store_rekey = 0; + if (options->password_authentication == -1) + options->password_authentication = 1; + if (options->kbd_interactive_authentication == -1) +@@ -484,7 +490,7 @@ typedef enum { + sHostKeyAlgorithms, + sClientAliveInterval, sClientAliveCountMax, sAuthorizedKeysFile, + sGssAuthentication, sGssCleanupCreds, sGssStrictAcceptor, +- sAcceptEnv, sSetEnv, sPermitTunnel, ++ sGssKeyEx, sGssStoreRekey, sAcceptEnv, sSetEnv, sPermitTunnel, + sMatch, sPermitOpen, sPermitListen, sForceCommand, sChrootDirectory, + sUsePrivilegeSeparation, sAllowAgentForwarding, + sHostCertificate, +@@ -559,11 +565,17 @@ static struct { + { "gssapiauthentication", sGssAuthentication, SSHCFG_ALL }, + { "gssapicleanupcredentials", sGssCleanupCreds, SSHCFG_GLOBAL }, + { "gssapistrictacceptorcheck", sGssStrictAcceptor, SSHCFG_GLOBAL }, ++ { "gssapikeyexchange", sGssKeyEx, SSHCFG_GLOBAL }, ++ { "gssapistorecredentialsonrekey", sGssStoreRekey, SSHCFG_GLOBAL }, + #else + { "gssapiauthentication", sUnsupported, SSHCFG_ALL }, + { "gssapicleanupcredentials", sUnsupported, SSHCFG_GLOBAL }, + { "gssapistrictacceptorcheck", sUnsupported, SSHCFG_GLOBAL }, ++ { "gssapikeyexchange", sUnsupported, SSHCFG_GLOBAL }, ++ { "gssapistorecredentialsonrekey", sUnsupported, SSHCFG_GLOBAL }, + #endif ++ { "gssusesessionccache", sUnsupported, SSHCFG_GLOBAL }, ++ { "gssapiusesessioncredcache", sUnsupported, SSHCFG_GLOBAL }, + { "passwordauthentication", sPasswordAuthentication, SSHCFG_ALL }, + { "kbdinteractiveauthentication", sKbdInteractiveAuthentication, SSHCFG_ALL }, + { "challengeresponseauthentication", sChallengeResponseAuthentication, SSHCFG_GLOBAL }, +@@ -1463,6 +1475,10 @@ process_server_config_line(ServerOptions + intptr = &options->gss_authentication; + goto parse_flag; + ++ case sGssKeyEx: ++ intptr = &options->gss_keyex; ++ goto parse_flag; ++ + case sGssCleanupCreds: + intptr = &options->gss_cleanup_creds; + goto parse_flag; +@@ -1471,6 +1487,10 @@ process_server_config_line(ServerOptions + intptr = &options->gss_strict_acceptor; + goto parse_flag; + ++ case sGssStoreRekey: ++ intptr = &options->gss_store_rekey; ++ goto parse_flag; ++ + case sPasswordAuthentication: + intptr = &options->password_authentication; + goto parse_flag; +@@ -2560,6 +2580,9 @@ dump_config(ServerOptions *o) + #ifdef GSSAPI + dump_cfg_fmtint(sGssAuthentication, o->gss_authentication); + dump_cfg_fmtint(sGssCleanupCreds, o->gss_cleanup_creds); ++ dump_cfg_fmtint(sGssKeyEx, o->gss_keyex); ++ dump_cfg_fmtint(sGssStrictAcceptor, o->gss_strict_acceptor); ++ dump_cfg_fmtint(sGssStoreRekey, o->gss_store_rekey); + #endif + dump_cfg_fmtint(sPasswordAuthentication, o->password_authentication); + dump_cfg_fmtint(sKbdInteractiveAuthentication, +diff -up openssh/servconf.h.gsskex openssh/servconf.h +--- openssh/servconf.h.gsskex 2018-08-22 11:47:33.296216335 +0200 ++++ openssh/servconf.h 2018-08-22 11:47:33.316216497 +0200 +@@ -124,8 +124,10 @@ typedef struct { + int kerberos_get_afs_token; /* If true, try to get AFS token if + * authenticated with Kerberos. */ + int gss_authentication; /* If true, permit GSSAPI authentication */ ++ int gss_keyex; /* If true, permit GSSAPI key exchange */ + int gss_cleanup_creds; /* If true, destroy cred cache on logout */ + int gss_strict_acceptor; /* If true, restrict the GSSAPI acceptor name */ ++ int gss_store_rekey; + int password_authentication; /* If true, permit password + * authentication. */ + int kbd_interactive_authentication; /* If true, permit */ +diff -up openssh/ssh_config.5.gsskex openssh/ssh_config.5 +--- openssh/ssh_config.5.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/ssh_config.5 2018-08-22 11:47:33.316216497 +0200 +@@ -718,10 +718,40 @@ The default is + Specifies whether user authentication based on GSSAPI is allowed. + The default is + .Cm no . ++.It Cm GSSAPIClientIdentity ++If set, specifies the GSSAPI client identity that ssh should use when ++connecting to the server. The default is unset, which means that the default ++identity will be used. + .It Cm GSSAPIDelegateCredentials + Forward (delegate) credentials to the server. + The default is + .Cm no . ++.It Cm GSSAPIKeyExchange ++Specifies whether key exchange based on GSSAPI may be used. When using ++GSSAPI key exchange the server need not have a host key. ++The default is ++.Dq no . ++.It Cm GSSAPIRenewalForcesRekey ++If set to ++.Dq yes ++then renewal of the client's GSSAPI credentials will force the rekeying of the ++ssh connection. With a compatible server, this can delegate the renewed ++credentials to a session on the server. ++The default is ++.Dq no . ++.It Cm GSSAPIServerIdentity ++If set, specifies the GSSAPI server identity that ssh should expect when ++connecting to the server. The default is unset, which means that the ++expected GSSAPI server identity will be determined from the target ++hostname. ++.It Cm GSSAPITrustDns ++Set to ++.Dq yes to indicate that the DNS is trusted to securely canonicalize ++the name of the host being connected to. If ++.Dq no, the hostname entered on the ++command line will be passed untouched to the GSSAPI library. ++The default is ++.Dq no . + .It Cm HashKnownHosts + Indicates that + .Xr ssh 1 +diff -up openssh/ssh_config.gsskex openssh/ssh_config +--- openssh/ssh_config.gsskex 2018-08-22 11:47:33.289216279 +0200 ++++ openssh/ssh_config 2018-08-22 11:47:33.316216497 +0200 +@@ -24,6 +24,8 @@ + # HostbasedAuthentication no + # GSSAPIAuthentication no + # GSSAPIDelegateCredentials no ++# GSSAPIKeyExchange no ++# GSSAPITrustDNS no + # BatchMode no + # CheckHostIP yes + # AddressFamily any +diff -up openssh/sshconnect2.c.gsskex openssh/sshconnect2.c +--- openssh/sshconnect2.c.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/sshconnect2.c 2018-08-22 13:33:01.674275795 +0200 +@@ -82,6 +82,124 @@ extern char *client_version_string; + extern char *server_version_string; + extern Options options; + ++/* XXX from auth.h -- refactoring move these useful functions away of client context*/ ++ ++/* ++ * Returns the remote DNS hostname as a string. The returned string must not ++ * be freed. NB. this will usually trigger a DNS query the first time it is ++ * called. ++ * This function does additional checks on the hostname to mitigate some ++ * attacks on legacy rhosts-style authentication. ++ * XXX is RhostsRSAAuthentication vulnerable to these? ++ * XXX Can we remove these checks? (or if not, remove RhostsRSAAuthentication?) ++ */ ++ ++static char * ++remote_hostname(struct ssh *ssh) ++{ ++ struct sockaddr_storage from; ++ socklen_t fromlen; ++ struct addrinfo hints, *ai, *aitop; ++ char name[NI_MAXHOST], ntop2[NI_MAXHOST]; ++ const char *ntop = ssh_remote_ipaddr(ssh); ++ ++ /* Get IP address of client. */ ++ fromlen = sizeof(from); ++ memset(&from, 0, sizeof(from)); ++ if (getpeername(ssh_packet_get_connection_in(ssh), ++ (struct sockaddr *)&from, &fromlen) < 0) { ++ debug("getpeername failed: %.100s", strerror(errno)); ++ return strdup(ntop); ++ } ++ ++ ipv64_normalise_mapped(&from, &fromlen); ++ if (from.ss_family == AF_INET6) ++ fromlen = sizeof(struct sockaddr_in6); ++ ++ debug3("Trying to reverse map address %.100s.", ntop); ++ /* Map the IP address to a host name. */ ++ if (getnameinfo((struct sockaddr *)&from, fromlen, name, sizeof(name), ++ NULL, 0, NI_NAMEREQD) != 0) { ++ /* Host name not found. Use ip address. */ ++ return strdup(ntop); ++ } ++ ++ /* ++ * if reverse lookup result looks like a numeric hostname, ++ * someone is trying to trick us by PTR record like following: ++ * 1.1.1.10.in-addr.arpa. IN PTR 2.3.4.5 ++ */ ++ memset(&hints, 0, sizeof(hints)); ++ hints.ai_socktype = SOCK_DGRAM; /*dummy*/ ++ hints.ai_flags = AI_NUMERICHOST; ++ if (getaddrinfo(name, NULL, &hints, &ai) == 0) { ++ logit("Nasty PTR record \"%s\" is set up for %s, ignoring", ++ name, ntop); ++ freeaddrinfo(ai); ++ return strdup(ntop); ++ } ++ ++ /* Names are stored in lowercase. */ ++ lowercase(name); ++ ++ /* ++ * Map it back to an IP address and check that the given ++ * address actually is an address of this host. This is ++ * necessary because anyone with access to a name server can ++ * define arbitrary names for an IP address. Mapping from ++ * name to IP address can be trusted better (but can still be ++ * fooled if the intruder has access to the name server of ++ * the domain). ++ */ ++ memset(&hints, 0, sizeof(hints)); ++ hints.ai_family = from.ss_family; ++ hints.ai_socktype = SOCK_STREAM; ++ if (getaddrinfo(name, NULL, &hints, &aitop) != 0) { ++ logit("reverse mapping checking getaddrinfo for %.700s " ++ "[%s] failed.", name, ntop); ++ return strdup(ntop); ++ } ++ /* Look for the address from the list of addresses. */ ++ for (ai = aitop; ai; ai = ai->ai_next) { ++ if (getnameinfo(ai->ai_addr, ai->ai_addrlen, ntop2, ++ sizeof(ntop2), NULL, 0, NI_NUMERICHOST) == 0 && ++ (strcmp(ntop, ntop2) == 0)) ++ break; ++ } ++ freeaddrinfo(aitop); ++ /* If we reached the end of the list, the address was not there. */ ++ if (ai == NULL) { ++ /* Address not found for the host name. */ ++ logit("Address %.100s maps to %.600s, but this does not " ++ "map back to the address.", ntop, name); ++ return strdup(ntop); ++ } ++ return strdup(name); ++} ++ ++/* ++ * Return the canonical name of the host in the other side of the current ++ * connection. The host name is cached, so it is efficient to call this ++ * several times. ++ */ ++ ++const char * ++get_canonical_hostname(struct ssh *ssh, int use_dns) ++{ ++ static char *dnsname; ++ ++ if (!use_dns) ++ return ssh_remote_ipaddr(ssh); ++ else if (dnsname != NULL) ++ return dnsname; ++ else { ++ dnsname = remote_hostname(ssh); ++ return dnsname; ++ } ++} ++ ++ ++ + /* + * SSH2 key exchange + */ +@@ -162,9 +280,34 @@ ssh_kex2(char *host, struct sockaddr *ho + struct kex *kex; + int r; + ++#ifdef GSSAPI ++ char *orig = NULL, *gss = NULL; ++ char *gss_host = NULL; ++#endif ++ + xxx_host = host; + xxx_hostaddr = hostaddr; + ++#ifdef GSSAPI ++ if (options.gss_keyex) { ++ /* Add the GSSAPI mechanisms currently supported on this ++ * client to the key exchange algorithm proposal */ ++ orig = options.kex_algorithms; ++ ++ if (options.gss_trust_dns) ++ gss_host = (char *)get_canonical_hostname(active_state, 1); ++ else ++ gss_host = host; ++ ++ gss = ssh_gssapi_client_mechanisms(gss_host, options.gss_client_identity); ++ if (gss) { ++ debug("Offering GSSAPI proposal: %s", gss); ++ xasprintf(&options.kex_algorithms, ++ "%s,%s", gss, orig); ++ } ++ } ++#endif ++ + if ((s = kex_names_cat(options.kex_algorithms, "ext-info-c")) == NULL) + fatal("%s: kex_names_cat", __func__); + myproposal[PROPOSAL_KEX_ALGS] = compat_kex_proposal(s); +@@ -194,6 +337,17 @@ ssh_kex2(char *host, struct sockaddr *ho + order_hostkeyalgs(host, hostaddr, port)); + } + ++#ifdef GSSAPI ++ /* If we've got GSSAPI algorithms, then we also support the ++ * 'null' hostkey, as a last resort */ ++ if (options.gss_keyex && gss) { ++ orig = myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS]; ++ xasprintf(&myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS], ++ "%s,null", orig); ++ free(gss); ++ } ++#endif ++ + if (options.rekey_limit || options.rekey_interval) + packet_set_rekey_limits(options.rekey_limit, + options.rekey_interval); +@@ -214,11 +368,31 @@ ssh_kex2(char *host, struct sockaddr *ho + kex->kex[KEX_ECDH_SHA2] = kexecdh_client; + # endif + #endif ++#ifdef GSSAPI ++ if (options.gss_keyex) { ++ kex->kex[KEX_GSS_GRP1_SHA1] = kexgss_client; ++ kex->kex[KEX_GSS_GRP14_SHA1] = kexgss_client; ++ kex->kex[KEX_GSS_GEX_SHA1] = kexgss_client; ++ } ++#endif + kex->kex[KEX_C25519_SHA256] = kexc25519_client; + kex->client_version_string=client_version_string; + kex->server_version_string=server_version_string; + kex->verify_host_key=&verify_host_key_callback; + ++#ifdef GSSAPI ++ if (options.gss_keyex) { ++ kex->gss_deleg_creds = options.gss_deleg_creds; ++ kex->gss_trust_dns = options.gss_trust_dns; ++ kex->gss_client = options.gss_client_identity; ++ if (options.gss_server_identity) { ++ kex->gss_host = options.gss_server_identity; ++ } else { ++ kex->gss_host = gss_host; ++ } ++ } ++#endif ++ + ssh_dispatch_run_fatal(active_state, DISPATCH_BLOCK, &kex->done); + + /* remove ext-info from the KEX proposals for rekeying */ +@@ -314,6 +488,7 @@ int input_gssapi_token(int type, u_int32 + int input_gssapi_hash(int type, u_int32_t, struct ssh *); + int input_gssapi_error(int, u_int32_t, struct ssh *); + int input_gssapi_errtok(int, u_int32_t, struct ssh *); ++int userauth_gsskeyex(Authctxt *authctxt); + #endif + + void userauth(Authctxt *, char *); +@@ -330,6 +505,11 @@ static char *authmethods_get(void); + + Authmethod authmethods[] = { + #ifdef GSSAPI ++ {"gssapi-keyex", ++ userauth_gsskeyex, ++ NULL, ++ &options.gss_authentication, ++ NULL}, + {"gssapi-with-mic", + userauth_gssapi, + NULL, +@@ -657,19 +837,31 @@ userauth_gssapi(Authctxt *authctxt) + static u_int mech = 0; + OM_uint32 min; + int r, ok = 0; ++ const char *gss_host; ++ ++ if (options.gss_server_identity) ++ gss_host = options.gss_server_identity; ++ else if (options.gss_trust_dns) ++ gss_host = get_canonical_hostname(active_state, 1); ++ else ++ gss_host = authctxt->host; + + /* Try one GSSAPI method at a time, rather than sending them all at + * once. */ + + if (gss_supported == NULL) +- gss_indicate_mechs(&min, &gss_supported); ++ if (GSS_ERROR(gss_indicate_mechs(&min, &gss_supported))) { ++ gss_supported = NULL; ++ return 0; ++ } + + /* Check to see if the mechanism is usable before we offer it */ + while (mech < gss_supported->count && !ok) { + /* My DER encoding requires length<128 */ + if (gss_supported->elements[mech].length < 128 && + ssh_gssapi_check_mechanism(&gssctxt, +- &gss_supported->elements[mech], authctxt->host)) { ++ &gss_supported->elements[mech], gss_host, ++ options.gss_client_identity)) { + ok = 1; /* Mechanism works */ + } else { + mech++; +@@ -906,6 +1098,51 @@ input_gssapi_error(int type, u_int32_t p + free(lang); + return r; + } ++ ++int ++userauth_gsskeyex(Authctxt *authctxt) ++{ ++ struct sshbuf *b = NULL; ++ gss_buffer_desc gssbuf; ++ gss_buffer_desc mic = GSS_C_EMPTY_BUFFER; ++ OM_uint32 ms; ++ ++ static int attempt = 0; ++ if (attempt++ >= 1) ++ return (0); ++ ++ if (gss_kex_context == NULL) { ++ debug("No valid Key exchange context"); ++ return (0); ++ } ++ ++ if ((b = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ ++ ssh_gssapi_buildmic(b, authctxt->server_user, authctxt->service, ++ "gssapi-keyex"); ++ ++ gssbuf.value = sshbuf_mutable_ptr(b); ++ gssbuf.length = sshbuf_len(b); ++ ++ if (GSS_ERROR(ssh_gssapi_sign(gss_kex_context, &gssbuf, &mic))) { ++ sshbuf_free(b); ++ return (0); ++ } ++ ++ packet_start(SSH2_MSG_USERAUTH_REQUEST); ++ packet_put_cstring(authctxt->server_user); ++ packet_put_cstring(authctxt->service); ++ packet_put_cstring(authctxt->method->name); ++ packet_put_string(mic.value, mic.length); ++ packet_send(); ++ ++ sshbuf_free(b); ++ gss_release_buffer(&ms, &mic); ++ ++ return (1); ++} ++ + #endif /* GSSAPI */ + + int +diff -up openssh/sshd.c.gsskex openssh/sshd.c +--- openssh/sshd.c.gsskex 2018-08-22 11:47:33.299216360 +0200 ++++ openssh/sshd.c 2018-08-22 13:34:28.455975954 +0200 +@@ -537,8 +537,7 @@ privsep_preauth_child(void) + + #ifdef GSSAPI + /* Cache supported mechanism OIDs for later use */ +- if (options.gss_authentication) +- ssh_gssapi_prepare_supported_oids(); ++ ssh_gssapi_prepare_supported_oids(); + #endif + + reseed_prngs(); +@@ -887,8 +887,9 @@ notify_hostkeys(struct ssh *ssh) + } + debug3("%s: sent %u hostkeys", __func__, nkeys); + if (nkeys == 0) +- fatal("%s: no hostkeys", __func__); +- packet_send(); ++ debug3("%s: no hostkeys", __func__); ++ else ++ packet_send(); + sshbuf_free(buf); + } + +@@ -1841,7 +1842,8 @@ main(int ac, char **av) + free(fp); + } + accumulate_host_timing_secret(cfg, NULL); +- if (!sensitive_data.have_ssh2_key) { ++ /* The GSSAPI key exchange can run without a host key */ ++ if (!sensitive_data.have_ssh2_key && !options.gss_keyex) { + logit("sshd: no hostkeys available -- exiting."); + exit(1); + } +@@ -2321,6 +2323,48 @@ do_ssh2_kex(void) + myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = compat_pkalg_proposal( + list_hostkey_types()); + ++#ifdef GSSAPI ++ { ++ char *orig; ++ char *gss = NULL; ++ char *newstr = NULL; ++ orig = myproposal[PROPOSAL_KEX_ALGS]; ++ ++ /* ++ * If we don't have a host key, then there's no point advertising ++ * the other key exchange algorithms ++ */ ++ ++ if (strlen(myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS]) == 0) ++ orig = NULL; ++ ++ if (options.gss_keyex) ++ gss = ssh_gssapi_server_mechanisms(); ++ else ++ gss = NULL; ++ ++ if (gss && orig) ++ xasprintf(&newstr, "%s,%s", gss, orig); ++ else if (gss) ++ newstr = gss; ++ else if (orig) ++ newstr = orig; ++ ++ /* ++ * If we've got GSSAPI mechanisms, then we've got the 'null' host ++ * key alg, but we can't tell people about it unless its the only ++ * host key algorithm we support ++ */ ++ if (gss && (strlen(myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS])) == 0) ++ myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = "null"; ++ ++ if (newstr) ++ myproposal[PROPOSAL_KEX_ALGS] = newstr; ++ else ++ fatal("No supported key exchange algorithms"); ++ } ++#endif ++ + /* start key exchange */ + if ((r = kex_setup(active_state, myproposal)) != 0) + fatal("kex_setup: %s", ssh_err(r)); +@@ -2338,6 +2382,13 @@ do_ssh2_kex(void) + # endif + #endif + kex->kex[KEX_C25519_SHA256] = kexc25519_server; ++#ifdef GSSAPI ++ if (options.gss_keyex) { ++ kex->kex[KEX_GSS_GRP1_SHA1] = kexgss_server; ++ kex->kex[KEX_GSS_GRP14_SHA1] = kexgss_server; ++ kex->kex[KEX_GSS_GEX_SHA1] = kexgss_server; ++ } ++#endif + kex->server = 1; + kex->client_version_string=client_version_string; + kex->server_version_string=server_version_string; +diff -up openssh/sshd_config.5.gsskex openssh/sshd_config.5 +--- openssh/sshd_config.5.gsskex 2018-08-22 11:47:33.297216344 +0200 ++++ openssh/sshd_config.5 2018-08-22 13:35:05.531275099 +0200 +@@ -642,6 +642,11 @@ Specifies whether to automatically destr + on logout. + The default is + .Cm yes . ++.It Cm GSSAPIKeyExchange ++Specifies whether key exchange based on GSSAPI is allowed. GSSAPI key exchange ++doesn't rely on ssh keys to verify host identity. ++The default is ++.Dq no . + .It Cm GSSAPIStrictAcceptorCheck + Determines whether to be strict about the identity of the GSSAPI acceptor + a client authenticates against. +@@ -656,6 +661,11 @@ machine's default store. + This facility is provided to assist with operation on multi homed machines. + The default is + .Cm yes . ++.It Cm GSSAPIStoreCredentialsOnRekey ++Controls whether the user's GSSAPI credentials should be updated following a ++successful connection rekeying. This option can be used to accepted renewed ++or updated credentials from a compatible client. The default is ++.Dq no . + .It Cm HostbasedAcceptedKeyTypes + Specifies the key types that will be accepted for hostbased authentication + as a list of comma-separated patterns. +diff -up openssh/sshd_config.gsskex openssh/sshd_config +--- openssh/sshd_config.gsskex 2018-08-22 11:47:33.299216360 +0200 ++++ openssh/sshd_config 2018-08-22 11:47:33.318216513 +0200 +@@ -85,6 +85,8 @@ ChallengeResponseAuthentication no + # GSSAPI options + GSSAPIAuthentication yes + GSSAPICleanupCredentials no ++#GSSAPIStrictAcceptorCheck yes ++#GSSAPIKeyExchange no + + # Set this to 'yes' to enable PAM authentication, account processing, + # and session processing. If this is enabled, PAM authentication will +diff -up openssh/ssh-gss.h.gsskex openssh/ssh-gss.h +--- openssh/ssh-gss.h.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/ssh-gss.h 2018-08-22 13:36:44.773075793 +0200 +@@ -1,6 +1,6 @@ + /* $OpenBSD: ssh-gss.h,v 1.14 2018/07/10 09:13:30 djm Exp $ */ + /* +- * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. ++ * Copyright (c) 2001-2009 Simon Wilkinson. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions +@@ -61,10 +61,22 @@ + + #define SSH_GSS_OIDTYPE 0x06 + ++#define SSH2_MSG_KEXGSS_INIT 30 ++#define SSH2_MSG_KEXGSS_CONTINUE 31 ++#define SSH2_MSG_KEXGSS_COMPLETE 32 ++#define SSH2_MSG_KEXGSS_HOSTKEY 33 ++#define SSH2_MSG_KEXGSS_ERROR 34 ++#define SSH2_MSG_KEXGSS_GROUPREQ 40 ++#define SSH2_MSG_KEXGSS_GROUP 41 ++#define KEX_GSS_GRP1_SHA1_ID "gss-group1-sha1-" ++#define KEX_GSS_GRP14_SHA1_ID "gss-group14-sha1-" ++#define KEX_GSS_GEX_SHA1_ID "gss-gex-sha1-" ++ + typedef struct { + char *filename; + char *envvar; + char *envval; ++ struct passwd *owner; + void *data; + } ssh_gssapi_ccache; + +@@ -72,8 +84,11 @@ typedef struct { + gss_buffer_desc displayname; + gss_buffer_desc exportedname; + gss_cred_id_t creds; ++ gss_name_t name; + struct ssh_gssapi_mech_struct *mech; + ssh_gssapi_ccache store; ++ int used; ++ int updated; + } ssh_gssapi_client; + + typedef struct ssh_gssapi_mech_struct { +@@ -84,6 +99,7 @@ typedef struct ssh_gssapi_mech_struct { + int (*userok) (ssh_gssapi_client *, char *); + int (*localname) (ssh_gssapi_client *, char **); + void (*storecreds) (ssh_gssapi_client *); ++ int (*updatecreds) (ssh_gssapi_ccache *, ssh_gssapi_client *); + } ssh_gssapi_mech; + + typedef struct { +@@ -94,10 +110,11 @@ typedef struct { + gss_OID oid; /* client */ + gss_cred_id_t creds; /* server */ + gss_name_t client; /* server */ +- gss_cred_id_t client_creds; /* server */ ++ gss_cred_id_t client_creds; /* both */ + } Gssctxt; + + extern ssh_gssapi_mech *supported_mechs[]; ++extern Gssctxt *gss_kex_context; + + int ssh_gssapi_check_oid(Gssctxt *, void *, size_t); + void ssh_gssapi_set_oid_data(Gssctxt *, void *, size_t); +@@ -123,17 +140,33 @@ void ssh_gssapi_delete_ctx(Gssctxt **); + OM_uint32 ssh_gssapi_sign(Gssctxt *, gss_buffer_t, gss_buffer_t); + void ssh_gssapi_buildmic(struct sshbuf *, const char *, + const char *, const char *); +-int ssh_gssapi_check_mechanism(Gssctxt **, gss_OID, const char *); ++int ssh_gssapi_check_mechanism(Gssctxt **, gss_OID, const char *, const char *); ++OM_uint32 ssh_gssapi_client_identity(Gssctxt *, const char *); ++int ssh_gssapi_credentials_updated(Gssctxt *); + + /* In the server */ ++typedef int ssh_gssapi_check_fn(Gssctxt **, gss_OID, const char *, ++ const char *); ++char *ssh_gssapi_client_mechanisms(const char *, const char *); ++char *ssh_gssapi_kex_mechs(gss_OID_set, ssh_gssapi_check_fn *, const char *, ++ const char *); ++gss_OID ssh_gssapi_id_kex(Gssctxt *, char *, int); ++int ssh_gssapi_server_check_mech(Gssctxt **,gss_OID, const char *, ++ const char *); + OM_uint32 ssh_gssapi_server_ctx(Gssctxt **, gss_OID); +-int ssh_gssapi_userok(char *name); ++int ssh_gssapi_userok(char *name, struct passwd *); + OM_uint32 ssh_gssapi_checkmic(Gssctxt *, gss_buffer_t, gss_buffer_t); + void ssh_gssapi_do_child(char ***, u_int *); + void ssh_gssapi_cleanup_creds(void); + void ssh_gssapi_storecreds(void); + const char *ssh_gssapi_displayname(void); + ++char *ssh_gssapi_server_mechanisms(void); ++int ssh_gssapi_oid_table_ok(); ++ ++int ssh_gssapi_update_creds(ssh_gssapi_ccache *store); ++ ++void ssh_gssapi_rekey_creds(void); + #endif /* GSSAPI */ + + #endif /* _SSH_GSS_H */ +diff -up openssh/sshkey.c.gsskex openssh/sshkey.c +--- openssh/sshkey.c.gsskex 2018-08-22 11:47:33.319216521 +0200 ++++ openssh/sshkey.c 2018-08-22 13:37:18.979351804 +0200 +@@ -140,6 +140,7 @@ static const struct keytype keytypes[] = + # endif /* OPENSSL_HAS_NISTP521 */ + # endif /* OPENSSL_HAS_ECC */ + #endif /* WITH_OPENSSL */ ++ { "null", "null", NULL, KEY_NULL, 0, 0, 1 }, + { NULL, NULL, NULL, -1, -1, 0, 0 } + }; + +diff -up openssh/sshkey.h.gsskex openssh/sshkey.h +--- openssh/sshkey.h.gsskex 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/sshkey.h 2018-08-22 11:47:33.320216529 +0200 +@@ -63,6 +63,7 @@ enum sshkey_types { + KEY_ED25519_CERT, + KEY_XMSS, + KEY_XMSS_CERT, ++ KEY_NULL, + KEY_UNSPEC + }; + +--- openssh/sshconnect2.c.orig 2017-01-04 19:47:10.000000000 +0100 ++++ openssh/sshconnect2.c 2017-01-05 04:13:08.977425272 +0100 +@@ -344,7 +344,6 @@ + orig = myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS]; + xasprintf(&myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS], + "%s,null", orig); +- free(gss); + } + #endif + +@@ -398,6 +397,16 @@ + /* remove ext-info from the KEX proposals for rekeying */ + myproposal[PROPOSAL_KEX_ALGS] = + compat_kex_proposal(options.kex_algorithms); ++#ifdef GSSAPI ++ /* repair myproposal after it was crumpled by the */ ++ /* ext-info removal above */ ++ if (gss) { ++ orig = myproposal[PROPOSAL_KEX_ALGS]; ++ xasprintf(&myproposal[PROPOSAL_KEX_ALGS], ++ "%s,%s", gss, orig); ++ free(gss); ++ } ++#endif + if ((r = kex_prop2buf(kex->my, myproposal)) != 0) + fatal("kex_prop2buf: %s", ssh_err(r)); + diff --git a/openssh-7.8p1-ip-port-config-parser.patch b/openssh-7.8p1-ip-port-config-parser.patch new file mode 100644 index 0000000..6ca0cf5 --- /dev/null +++ b/openssh-7.8p1-ip-port-config-parser.patch @@ -0,0 +1,72 @@ +diff -up openssh/misc.c.config openssh/misc.c +--- openssh/misc.c.config 2018-08-22 13:58:54.922807799 +0200 ++++ openssh/misc.c 2018-08-22 13:58:55.000808428 +0200 +@@ -485,7 +485,7 @@ put_host_port(const char *host, u_short + * The delimiter char, if present, is stored in delim. + * If this is the last field, *cp is set to NULL. + */ +-static char * ++char * + hpdelim2(char **cp, char *delim) + { + char *s, *old; +diff -up openssh/misc.h.config openssh/misc.h +--- openssh/misc.h.config 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/misc.h 2018-08-22 13:58:55.001808436 +0200 +@@ -54,6 +54,7 @@ int set_rdomain(int, const char *); + int a2port(const char *); + int a2tun(const char *, int *); + char *put_host_port(const char *, u_short); ++char *hpdelim2(char **, char *); + char *hpdelim(char **); + char *cleanhostname(char *); + char *colon(char *); +diff -up openssh/servconf.c.config openssh/servconf.c +--- openssh/servconf.c.config 2018-08-22 13:58:54.989808340 +0200 ++++ openssh/servconf.c 2018-08-22 14:18:49.235443937 +0200 +@@ -886,7 +886,7 @@ process_permitopen_list(struct ssh *ssh, + { + u_int i; + int port; +- char *host, *arg, *oarg; ++ char *host, *arg, *oarg, ch; + int where = opcode == sPermitOpen ? FORWARD_LOCAL : FORWARD_REMOTE; + const char *what = lookup_opcode_name(opcode); + +@@ -904,8 +904,8 @@ process_permitopen_list(struct ssh *ssh, + /* Otherwise treat it as a list of permitted host:port */ + for (i = 0; i < num_opens; i++) { + oarg = arg = xstrdup(opens[i]); +- host = hpdelim(&arg); +- if (host == NULL) ++ host = hpdelim2(&arg, &ch); ++ if (host == NULL || ch == '/') + fatal("%s: missing host in %s", __func__, what); + host = cleanhostname(host); + if (arg == NULL || ((port = permitopen_port(arg)) < 0)) +@@ -1323,8 +1323,10 @@ process_server_config_line(ServerOptions + port = 0; + p = arg; + } else { +- p = hpdelim(&arg); +- if (p == NULL) ++ char ch; ++ arg2 = NULL; ++ p = hpdelim2(&arg, &ch); ++ if (p == NULL || ch == '/') + fatal("%s line %d: bad address:port usage", + filename, linenum); + p = cleanhostname(p); +@@ -1965,9 +1967,10 @@ process_server_config_line(ServerOptions + */ + xasprintf(&arg2, "*:%s", arg); + } else { ++ char ch; + arg2 = xstrdup(arg); +- p = hpdelim(&arg); +- if (p == NULL) { ++ p = hpdelim2(&arg, &ch); ++ if (p == NULL || ch == '/') { + fatal("%s line %d: missing host in %s", + filename, linenum, + lookup_opcode_name(opcode)); diff --git a/openssh-7.8p1-role-mls.patch b/openssh-7.8p1-role-mls.patch new file mode 100644 index 0000000..4c58d71 --- /dev/null +++ b/openssh-7.8p1-role-mls.patch @@ -0,0 +1,885 @@ +diff -up openssh/auth2.c.role-mls openssh/auth2.c +--- openssh/auth2.c.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/auth2.c 2018-08-22 11:14:56.815430916 +0200 +@@ -256,6 +256,9 @@ input_userauth_request(int type, u_int32 + Authctxt *authctxt = ssh->authctxt; + Authmethod *m = NULL; + char *user, *service, *method, *style = NULL; ++#ifdef WITH_SELINUX ++ char *role = NULL; ++#endif + int authenticated = 0; + double tstart = monotime_double(); + +@@ -268,6 +271,11 @@ input_userauth_request(int type, u_int32 + debug("userauth-request for user %s service %s method %s", user, service, method); + debug("attempt %d failures %d", authctxt->attempt, authctxt->failures); + ++#ifdef WITH_SELINUX ++ if ((role = strchr(user, '/')) != NULL) ++ *role++ = 0; ++#endif ++ + if ((style = strchr(user, ':')) != NULL) + *style++ = 0; + +@@ -296,8 +304,15 @@ input_userauth_request(int type, u_int32 + use_privsep ? " [net]" : ""); + authctxt->service = xstrdup(service); + authctxt->style = style ? xstrdup(style) : NULL; +- if (use_privsep) ++#ifdef WITH_SELINUX ++ authctxt->role = role ? xstrdup(role) : NULL; ++#endif ++ if (use_privsep) { + mm_inform_authserv(service, style); ++#ifdef WITH_SELINUX ++ mm_inform_authrole(role); ++#endif ++ } + userauth_banner(); + if (auth2_setup_methods_lists(authctxt) != 0) + packet_disconnect("no authentication methods enabled"); +diff -up openssh/auth2-gss.c.role-mls openssh/auth2-gss.c +--- openssh/auth2-gss.c.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/auth2-gss.c 2018-08-22 11:15:42.459799171 +0200 +@@ -281,6 +281,7 @@ input_gssapi_mic(int type, u_int32_t ple + Authctxt *authctxt = ssh->authctxt; + Gssctxt *gssctxt; + int r, authenticated = 0; ++ char *micuser; + struct sshbuf *b; + gss_buffer_desc mic, gssbuf; + const char *displayname; +@@ -298,7 +299,13 @@ input_gssapi_mic(int type, u_int32_t ple + fatal("%s: sshbuf_new failed", __func__); + mic.value = p; + mic.length = len; +- ssh_gssapi_buildmic(b, authctxt->user, authctxt->service, ++#ifdef WITH_SELINUX ++ if (authctxt->role && (strlen(authctxt->role) > 0)) ++ xasprintf(&micuser, "%s/%s", authctxt->user, authctxt->role); ++ else ++#endif ++ micuser = authctxt->user; ++ ssh_gssapi_buildmic(b, micuser, authctxt->service, + "gssapi-with-mic"); + + if ((gssbuf.value = sshbuf_mutable_ptr(b)) == NULL) +@@ -311,6 +318,8 @@ input_gssapi_mic(int type, u_int32_t ple + logit("GSSAPI MIC check failed"); + + sshbuf_free(b); ++ if (micuser != authctxt->user) ++ free(micuser); + free(mic.value); + + if ((!use_privsep || mm_is_monitor()) && +diff -up openssh/auth2-hostbased.c.role-mls openssh/auth2-hostbased.c +--- openssh/auth2-hostbased.c.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/auth2-hostbased.c 2018-08-22 11:14:56.816430924 +0200 +@@ -123,7 +123,16 @@ userauth_hostbased(struct ssh *ssh) + /* reconstruct packet */ + if ((r = sshbuf_put_string(b, session_id2, session_id2_len)) != 0 || + (r = sshbuf_put_u8(b, SSH2_MSG_USERAUTH_REQUEST)) != 0 || ++#ifdef WITH_SELINUX ++ (authctxt->role ++ ? ( (r = sshbuf_put_u32(b, strlen(authctxt->user)+strlen(authctxt->role)+1)) != 0 || ++ (r = sshbuf_put(b, authctxt->user, strlen(authctxt->user))) != 0 || ++ (r = sshbuf_put_u8(b, '/') != 0) || ++ (r = sshbuf_put(b, authctxt->role, strlen(authctxt->role))) != 0) ++ : (r = sshbuf_put_cstring(b, authctxt->user)) != 0) || ++#else + (r = sshbuf_put_cstring(b, authctxt->user)) != 0 || ++#endif + (r = sshbuf_put_cstring(b, authctxt->service)) != 0 || + (r = sshbuf_put_cstring(b, "hostbased")) != 0 || + (r = sshbuf_put_string(b, pkalg, alen)) != 0 || +diff -up openssh/auth2-pubkey.c.role-mls openssh/auth2-pubkey.c +--- openssh/auth2-pubkey.c.role-mls 2018-08-22 11:14:56.816430924 +0200 ++++ openssh/auth2-pubkey.c 2018-08-22 11:17:07.331483958 +0200 +@@ -169,9 +169,16 @@ userauth_pubkey(struct ssh *ssh) + goto done; + } + /* reconstruct packet */ +- xasprintf(&userstyle, "%s%s%s", authctxt->user, ++ xasprintf(&userstyle, "%s%s%s%s%s", authctxt->user, + authctxt->style ? ":" : "", +- authctxt->style ? authctxt->style : ""); ++ authctxt->style ? authctxt->style : "", ++#ifdef WITH_SELINUX ++ authctxt->role ? "/" : "", ++ authctxt->role ? authctxt->role : "" ++#else ++ "", "" ++#endif ++ ); + if ((r = sshbuf_put_u8(b, SSH2_MSG_USERAUTH_REQUEST)) != 0 || + (r = sshbuf_put_cstring(b, userstyle)) != 0 || + (r = sshbuf_put_cstring(b, authctxt->service)) != 0 || +diff -up openssh/auth.h.role-mls openssh/auth.h +--- openssh/auth.h.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/auth.h 2018-08-22 11:14:56.816430924 +0200 +@@ -65,6 +65,9 @@ struct Authctxt { + char *service; + struct passwd *pw; /* set if 'valid' */ + char *style; ++#ifdef WITH_SELINUX ++ char *role; ++#endif + + /* Method lists for multiple authentication */ + char **auth_methods; /* modified from server config */ +diff -up openssh/auth-pam.c.role-mls openssh/auth-pam.c +--- openssh/auth-pam.c.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/auth-pam.c 2018-08-22 11:14:56.816430924 +0200 +@@ -1172,7 +1172,7 @@ is_pam_session_open(void) + * during the ssh authentication process. + */ + int +-do_pam_putenv(char *name, char *value) ++do_pam_putenv(char *name, const char *value) + { + int ret = 1; + #ifdef HAVE_PAM_PUTENV +diff -up openssh/auth-pam.h.role-mls openssh/auth-pam.h +--- openssh/auth-pam.h.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/auth-pam.h 2018-08-22 11:14:56.817430932 +0200 +@@ -33,7 +33,7 @@ u_int do_pam_account(void); + void do_pam_session(struct ssh *); + void do_pam_setcred(int ); + void do_pam_chauthtok(void); +-int do_pam_putenv(char *, char *); ++int do_pam_putenv(char *, const char *); + char ** fetch_pam_environment(void); + char ** fetch_pam_child_environment(void); + void free_pam_environment(char **); +diff -up openssh/configure.ac.role-mls openssh/configure.ac +--- openssh/configure.ac.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/configure.ac 2018-08-22 11:14:56.820430957 +0200 +@@ -4241,10 +4241,7 @@ AC_ARG_WITH([selinux], + LIBS="$LIBS -lselinux" + ], + AC_MSG_ERROR([SELinux support requires libselinux library])) +- SSHLIBS="$SSHLIBS $LIBSELINUX" +- SSHDLIBS="$SSHDLIBS $LIBSELINUX" + AC_CHECK_FUNCS([getseuserbyname get_default_context_with_level]) +- LIBS="$save_LIBS" + fi ] + ) + AC_SUBST([SSHLIBS]) +diff -up openssh/misc.c.role-mls openssh/misc.c +--- openssh/misc.c.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/misc.c 2018-08-22 11:14:56.817430932 +0200 +@@ -542,6 +542,7 @@ char * + colon(char *cp) + { + int flag = 0; ++ int start = 1; + + if (*cp == ':') /* Leading colon is part of file name. */ + return NULL; +@@ -557,6 +558,13 @@ colon(char *cp) + return (cp); + if (*cp == '/') + return NULL; ++ if (start) { ++ /* Slash on beginning or after dots only denotes file name. */ ++ if (*cp == '/') ++ return (0); ++ if (*cp != '.') ++ start = 0; ++ } + } + return NULL; + } +diff -up openssh/monitor.c.role-mls openssh/monitor.c +--- openssh/monitor.c.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/monitor.c 2018-08-22 11:19:56.006844867 +0200 +@@ -115,6 +115,9 @@ int mm_answer_sign(int, struct sshbuf *) + int mm_answer_pwnamallow(int, struct sshbuf *); + int mm_answer_auth2_read_banner(int, struct sshbuf *); + int mm_answer_authserv(int, struct sshbuf *); ++#ifdef WITH_SELINUX ++int mm_answer_authrole(int, struct sshbuf *); ++#endif + int mm_answer_authpassword(int, struct sshbuf *); + int mm_answer_bsdauthquery(int, struct sshbuf *); + int mm_answer_bsdauthrespond(int, struct sshbuf *); +@@ -189,6 +192,9 @@ struct mon_table mon_dispatch_proto20[] + {MONITOR_REQ_SIGN, MON_ONCE, mm_answer_sign}, + {MONITOR_REQ_PWNAM, MON_ONCE, mm_answer_pwnamallow}, + {MONITOR_REQ_AUTHSERV, MON_ONCE, mm_answer_authserv}, ++#ifdef WITH_SELINUX ++ {MONITOR_REQ_AUTHROLE, MON_ONCE, mm_answer_authrole}, ++#endif + {MONITOR_REQ_AUTH2_READ_BANNER, MON_ONCE, mm_answer_auth2_read_banner}, + {MONITOR_REQ_AUTHPASSWORD, MON_AUTH, mm_answer_authpassword}, + #ifdef USE_PAM +@@ -796,6 +802,9 @@ mm_answer_pwnamallow(int sock, struct ss + + /* Allow service/style information on the auth context */ + monitor_permit(mon_dispatch, MONITOR_REQ_AUTHSERV, 1); ++#ifdef WITH_SELINUX ++ monitor_permit(mon_dispatch, MONITOR_REQ_AUTHROLE, 1); ++#endif + monitor_permit(mon_dispatch, MONITOR_REQ_AUTH2_READ_BANNER, 1); + + #ifdef USE_PAM +@@ -842,6 +851,26 @@ mm_answer_authserv(int sock, struct sshb + return (0); + } + ++#ifdef WITH_SELINUX ++int ++mm_answer_authrole(int sock, struct sshbuf *m) ++{ ++ int r; ++ monitor_permit_authentications(1); ++ ++ if ((r = sshbuf_get_cstring(m, &authctxt->role, NULL)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ debug3("%s: role=%s", __func__, authctxt->role); ++ ++ if (strlen(authctxt->role) == 0) { ++ free(authctxt->role); ++ authctxt->role = NULL; ++ } ++ ++ return (0); ++} ++#endif ++ + int + mm_answer_authpassword(int sock, struct sshbuf *m) + { +@@ -1218,7 +1247,7 @@ monitor_valid_userblob(u_char *data, u_i + { + struct sshbuf *b; + const u_char *p; +- char *userstyle, *cp; ++ char *userstyle, *s, *cp; + size_t len; + u_char type; + int r, fail = 0; +@@ -1251,6 +1280,8 @@ monitor_valid_userblob(u_char *data, u_i + fail++; + if ((r = sshbuf_get_cstring(b, &cp, NULL)) != 0) + fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ if ((s = strchr(cp, '/')) != NULL) ++ *s = '\0'; + xasprintf(&userstyle, "%s%s%s", authctxt->user, + authctxt->style ? ":" : "", + authctxt->style ? authctxt->style : ""); +@@ -1286,7 +1317,7 @@ monitor_valid_hostbasedblob(u_char *data + { + struct sshbuf *b; + const u_char *p; +- char *cp, *userstyle; ++ char *cp, *s, *userstyle; + size_t len; + int r, fail = 0; + u_char type; +@@ -1308,6 +1339,8 @@ monitor_valid_hostbasedblob(u_char *data + fail++; + if ((r = sshbuf_get_cstring(b, &cp, NULL)) != 0) + fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ if ((s = strchr(p, '/')) != NULL) ++ *s = '\0'; + xasprintf(&userstyle, "%s%s%s", authctxt->user, + authctxt->style ? ":" : "", + authctxt->style ? authctxt->style : ""); +diff -up openssh/monitor.h.role-mls openssh/monitor.h +--- openssh/monitor.h.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/monitor.h 2018-08-22 11:14:56.818430941 +0200 +@@ -55,6 +55,10 @@ enum monitor_reqtype { + MONITOR_REQ_GSSCHECKMIC = 48, MONITOR_ANS_GSSCHECKMIC = 49, + MONITOR_REQ_TERM = 50, + ++#ifdef WITH_SELINUX ++ MONITOR_REQ_AUTHROLE = 80, ++#endif ++ + MONITOR_REQ_PAM_START = 100, + MONITOR_REQ_PAM_ACCOUNT = 102, MONITOR_ANS_PAM_ACCOUNT = 103, + MONITOR_REQ_PAM_INIT_CTX = 104, MONITOR_ANS_PAM_INIT_CTX = 105, +diff -up openssh/monitor_wrap.c.role-mls openssh/monitor_wrap.c +--- openssh/monitor_wrap.c.role-mls 2018-08-22 11:14:56.818430941 +0200 ++++ openssh/monitor_wrap.c 2018-08-22 11:21:47.938747968 +0200 +@@ -390,6 +390,27 @@ mm_inform_authserv(char *service, char * + sshbuf_free(m); + } + ++/* Inform the privileged process about role */ ++ ++#ifdef WITH_SELINUX ++void ++mm_inform_authrole(char *role) ++{ ++ int r; ++ struct sshbuf *m; ++ ++ debug3("%s entering", __func__); ++ ++ if ((m = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ if ((r = sshbuf_put_cstring(m, role ? role : "")) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUTHROLE, m); ++ ++ sshbuf_free(m); ++} ++#endif ++ + /* Do the password authentication */ + int + mm_auth_password(struct ssh *ssh, char *password) +diff -up openssh/monitor_wrap.h.role-mls openssh/monitor_wrap.h +--- openssh/monitor_wrap.h.role-mls 2018-08-22 11:14:56.818430941 +0200 ++++ openssh/monitor_wrap.h 2018-08-22 11:22:10.439929513 +0200 +@@ -44,6 +44,9 @@ DH *mm_choose_dh(int, int, int); + int mm_sshkey_sign(struct sshkey *, u_char **, size_t *, const u_char *, size_t, + const char *, u_int compat); + void mm_inform_authserv(char *, char *); ++#ifdef WITH_SELINUX ++void mm_inform_authrole(char *); ++#endif + struct passwd *mm_getpwnamallow(const char *); + char *mm_auth2_read_banner(void); + int mm_auth_password(struct ssh *, char *); +diff -up openssh/openbsd-compat/Makefile.in.role-mls openssh/openbsd-compat/Makefile.in +--- openssh/openbsd-compat/Makefile.in.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/openbsd-compat/Makefile.in 2018-08-22 11:14:56.819430949 +0200 +@@ -92,7 +92,8 @@ PORTS= port-aix.o \ + port-linux.o \ + port-solaris.o \ + port-net.o \ +- port-uw.o ++ port-uw.o \ ++ port-linux-sshd.o + + .c.o: + $(CC) $(CFLAGS) $(CPPFLAGS) -c $< +diff -up openssh/openbsd-compat/port-linux.c.role-mls openssh/openbsd-compat/port-linux.c +--- openssh/openbsd-compat/port-linux.c.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/openbsd-compat/port-linux.c 2018-08-22 11:14:56.819430949 +0200 +@@ -100,37 +100,6 @@ ssh_selinux_getctxbyname(char *pwname) + return sc; + } + +-/* Set the execution context to the default for the specified user */ +-void +-ssh_selinux_setup_exec_context(char *pwname) +-{ +- security_context_t user_ctx = NULL; +- +- if (!ssh_selinux_enabled()) +- return; +- +- debug3("%s: setting execution context", __func__); +- +- user_ctx = ssh_selinux_getctxbyname(pwname); +- if (setexeccon(user_ctx) != 0) { +- switch (security_getenforce()) { +- case -1: +- fatal("%s: security_getenforce() failed", __func__); +- case 0: +- error("%s: Failed to set SELinux execution " +- "context for %s", __func__, pwname); +- break; +- default: +- fatal("%s: Failed to set SELinux execution context " +- "for %s (in enforcing mode)", __func__, pwname); +- } +- } +- if (user_ctx != NULL) +- freecon(user_ctx); +- +- debug3("%s: done", __func__); +-} +- + /* Set the TTY context for the specified user */ + void + ssh_selinux_setup_pty(char *pwname, const char *tty) +@@ -145,7 +114,11 @@ ssh_selinux_setup_pty(char *pwname, cons + + debug3("%s: setting TTY context on %s", __func__, tty); + +- user_ctx = ssh_selinux_getctxbyname(pwname); ++ if (getexeccon(&user_ctx) != 0) { ++ error("%s: getexeccon: %s", __func__, strerror(errno)); ++ goto out; ++ } ++ + + /* XXX: should these calls fatal() upon failure in enforcing mode? */ + +diff -up openssh/openbsd-compat/port-linux.h.role-mls openssh/openbsd-compat/port-linux.h +--- openssh/openbsd-compat/port-linux.h.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/openbsd-compat/port-linux.h 2018-08-22 11:14:56.819430949 +0200 +@@ -20,9 +20,10 @@ + #ifdef WITH_SELINUX + int ssh_selinux_enabled(void); + void ssh_selinux_setup_pty(char *, const char *); +-void ssh_selinux_setup_exec_context(char *); + void ssh_selinux_change_context(const char *); + void ssh_selinux_setfscreatecon(const char *); ++ ++void sshd_selinux_setup_exec_context(char *); + #endif + + #ifdef LINUX_OOM_ADJUST +diff -up openssh/openbsd-compat/port-linux-sshd.c.role-mls openssh/openbsd-compat/port-linux-sshd.c +--- openssh/openbsd-compat/port-linux-sshd.c.role-mls 2018-08-22 11:14:56.819430949 +0200 ++++ openssh/openbsd-compat/port-linux-sshd.c 2018-08-22 11:14:56.819430949 +0200 +@@ -0,0 +1,425 @@ ++/* ++ * Copyright (c) 2005 Daniel Walsh ++ * Copyright (c) 2014 Petr Lautrbach ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++/* ++ * Linux-specific portability code - just SELinux support for sshd at present ++ */ ++ ++#include "includes.h" ++ ++#if defined(WITH_SELINUX) || defined(LINUX_OOM_ADJUST) ++#include ++#include ++#include ++#include ++#include ++ ++#include "log.h" ++#include "xmalloc.h" ++#include "misc.h" /* servconf.h needs misc.h for struct ForwardOptions */ ++#include "servconf.h" ++#include "port-linux.h" ++#include "sshkey.h" ++#include "hostfile.h" ++#include "auth.h" ++ ++#ifdef WITH_SELINUX ++#include ++#include ++#include ++#include ++ ++#ifdef HAVE_LINUX_AUDIT ++#include ++#include ++#endif ++ ++extern ServerOptions options; ++extern Authctxt *the_authctxt; ++extern int inetd_flag; ++extern int rexeced_flag; ++ ++/* Send audit message */ ++static int ++sshd_selinux_send_audit_message(int success, security_context_t default_context, ++ security_context_t selected_context) ++{ ++ int rc=0; ++#ifdef HAVE_LINUX_AUDIT ++ char *msg = NULL; ++ int audit_fd = audit_open(); ++ security_context_t default_raw=NULL; ++ security_context_t selected_raw=NULL; ++ rc = -1; ++ if (audit_fd < 0) { ++ if (errno == EINVAL || errno == EPROTONOSUPPORT || ++ errno == EAFNOSUPPORT) ++ return 0; /* No audit support in kernel */ ++ error("Error connecting to audit system."); ++ return rc; ++ } ++ if (selinux_trans_to_raw_context(default_context, &default_raw) < 0) { ++ error("Error translating default context."); ++ default_raw = NULL; ++ } ++ if (selinux_trans_to_raw_context(selected_context, &selected_raw) < 0) { ++ error("Error translating selected context."); ++ selected_raw = NULL; ++ } ++ if (asprintf(&msg, "sshd: default-context=%s selected-context=%s", ++ default_raw ? default_raw : (default_context ? default_context: "?"), ++ selected_context ? selected_raw : (selected_context ? selected_context :"?")) < 0) { ++ error("Error allocating memory."); ++ goto out; ++ } ++ if (audit_log_user_message(audit_fd, AUDIT_USER_ROLE_CHANGE, ++ msg, NULL, NULL, NULL, success) <= 0) { ++ error("Error sending audit message."); ++ goto out; ++ } ++ rc = 0; ++ out: ++ free(msg); ++ freecon(default_raw); ++ freecon(selected_raw); ++ close(audit_fd); ++#endif ++ return rc; ++} ++ ++static int ++mls_range_allowed(security_context_t src, security_context_t dst) ++{ ++ struct av_decision avd; ++ int retval; ++ access_vector_t bit; ++ security_class_t class; ++ ++ debug("%s: src:%s dst:%s", __func__, src, dst); ++ class = string_to_security_class("context"); ++ if (!class) { ++ error("string_to_security_class failed to translate security class context"); ++ return 1; ++ } ++ bit = string_to_av_perm(class, "contains"); ++ if (!bit) { ++ error("string_to_av_perm failed to translate av perm contains"); ++ return 1; ++ } ++ retval = security_compute_av(src, dst, class, bit, &avd); ++ if (retval || ((bit & avd.allowed) != bit)) ++ return 0; ++ ++ return 1; ++} ++ ++static int ++get_user_context(const char *sename, const char *role, const char *lvl, ++ security_context_t *sc) { ++#ifdef HAVE_GET_DEFAULT_CONTEXT_WITH_LEVEL ++ if (lvl == NULL || lvl[0] == '\0' || get_default_context_with_level(sename, lvl, NULL, sc) != 0) { ++ /* User may have requested a level completely outside of his ++ allowed range. We get a context just for auditing as the ++ range check below will certainly fail for default context. */ ++#endif ++ if (get_default_context(sename, NULL, sc) != 0) { ++ *sc = NULL; ++ return -1; ++ } ++#ifdef HAVE_GET_DEFAULT_CONTEXT_WITH_LEVEL ++ } ++#endif ++ if (role != NULL && role[0]) { ++ context_t con; ++ char *type=NULL; ++ if (get_default_type(role, &type) != 0) { ++ error("get_default_type: failed to get default type for '%s'", ++ role); ++ goto out; ++ } ++ con = context_new(*sc); ++ if (!con) { ++ goto out; ++ } ++ context_role_set(con, role); ++ context_type_set(con, type); ++ freecon(*sc); ++ *sc = strdup(context_str(con)); ++ context_free(con); ++ if (!*sc) ++ return -1; ++ } ++#ifdef HAVE_GET_DEFAULT_CONTEXT_WITH_LEVEL ++ if (lvl != NULL && lvl[0]) { ++ /* verify that the requested range is obtained */ ++ context_t con; ++ security_context_t obtained_raw; ++ security_context_t requested_raw; ++ con = context_new(*sc); ++ if (!con) { ++ goto out; ++ } ++ context_range_set(con, lvl); ++ if (selinux_trans_to_raw_context(*sc, &obtained_raw) < 0) { ++ context_free(con); ++ goto out; ++ } ++ if (selinux_trans_to_raw_context(context_str(con), &requested_raw) < 0) { ++ freecon(obtained_raw); ++ context_free(con); ++ goto out; ++ } ++ ++ debug("get_user_context: obtained context '%s' requested context '%s'", ++ obtained_raw, requested_raw); ++ if (strcmp(obtained_raw, requested_raw)) { ++ /* set the context to the real requested one but fail */ ++ freecon(requested_raw); ++ freecon(obtained_raw); ++ freecon(*sc); ++ *sc = strdup(context_str(con)); ++ context_free(con); ++ return -1; ++ } ++ freecon(requested_raw); ++ freecon(obtained_raw); ++ context_free(con); ++ } ++#endif ++ return 0; ++ out: ++ freecon(*sc); ++ *sc = NULL; ++ return -1; ++} ++ ++static void ++ssh_selinux_get_role_level(char **role, const char **level) ++{ ++ *role = NULL; ++ *level = NULL; ++ if (the_authctxt) { ++ if (the_authctxt->role != NULL) { ++ char *slash; ++ *role = xstrdup(the_authctxt->role); ++ if ((slash = strchr(*role, '/')) != NULL) { ++ *slash = '\0'; ++ *level = slash + 1; ++ } ++ } ++ } ++} ++ ++/* Return the default security context for the given username */ ++static int ++sshd_selinux_getctxbyname(char *pwname, ++ security_context_t *default_sc, security_context_t *user_sc) ++{ ++ char *sename, *lvl; ++ char *role; ++ const char *reqlvl; ++ int r = 0; ++ context_t con = NULL; ++ ++ ssh_selinux_get_role_level(&role, &reqlvl); ++ ++#ifdef HAVE_GETSEUSERBYNAME ++ if ((r=getseuserbyname(pwname, &sename, &lvl)) != 0) { ++ sename = NULL; ++ lvl = NULL; ++ } ++#else ++ sename = pwname; ++ lvl = ""; ++#endif ++ ++ if (r == 0) { ++#ifdef HAVE_GET_DEFAULT_CONTEXT_WITH_LEVEL ++ r = get_default_context_with_level(sename, lvl, NULL, default_sc); ++#else ++ r = get_default_context(sename, NULL, default_sc); ++#endif ++ } ++ ++ if (r == 0) { ++ /* If launched from xinetd, we must use current level */ ++ if (inetd_flag && !rexeced_flag) { ++ security_context_t sshdsc=NULL; ++ ++ if (getcon_raw(&sshdsc) < 0) ++ fatal("failed to allocate security context"); ++ ++ if ((con=context_new(sshdsc)) == NULL) ++ fatal("failed to allocate selinux context"); ++ reqlvl = context_range_get(con); ++ freecon(sshdsc); ++ if (reqlvl !=NULL && lvl != NULL && strcmp(reqlvl, lvl) == 0) ++ /* we actually don't change level */ ++ reqlvl = ""; ++ ++ debug("%s: current connection level '%s'", __func__, reqlvl); ++ ++ } ++ ++ if ((reqlvl != NULL && reqlvl[0]) || (role != NULL && role[0])) { ++ r = get_user_context(sename, role, reqlvl, user_sc); ++ ++ if (r == 0 && reqlvl != NULL && reqlvl[0]) { ++ security_context_t default_level_sc = *default_sc; ++ if (role != NULL && role[0]) { ++ if (get_user_context(sename, role, lvl, &default_level_sc) < 0) ++ default_level_sc = *default_sc; ++ } ++ /* verify that the requested range is contained in the user range */ ++ if (mls_range_allowed(default_level_sc, *user_sc)) { ++ logit("permit MLS level %s (user range %s)", reqlvl, lvl); ++ } else { ++ r = -1; ++ error("deny MLS level %s (user range %s)", reqlvl, lvl); ++ } ++ if (default_level_sc != *default_sc) ++ freecon(default_level_sc); ++ } ++ } else { ++ *user_sc = *default_sc; ++ } ++ } ++ if (r != 0) { ++ error("%s: Failed to get default SELinux security " ++ "context for %s", __func__, pwname); ++ } ++ ++#ifdef HAVE_GETSEUSERBYNAME ++ free(sename); ++ free(lvl); ++#endif ++ ++ if (role != NULL) ++ free(role); ++ if (con) ++ context_free(con); ++ ++ return (r); ++} ++ ++/* Setup environment variables for pam_selinux */ ++static int ++sshd_selinux_setup_pam_variables(void) ++{ ++ const char *reqlvl; ++ char *role; ++ char *use_current; ++ int rv; ++ ++ debug3("%s: setting execution context", __func__); ++ ++ ssh_selinux_get_role_level(&role, &reqlvl); ++ ++ rv = do_pam_putenv("SELINUX_ROLE_REQUESTED", role ? role : ""); ++ ++ if (inetd_flag && !rexeced_flag) { ++ use_current = "1"; ++ } else { ++ use_current = ""; ++ rv = rv || do_pam_putenv("SELINUX_LEVEL_REQUESTED", reqlvl ? reqlvl: ""); ++ } ++ ++ rv = rv || do_pam_putenv("SELINUX_USE_CURRENT_RANGE", use_current); ++ ++ if (role != NULL) ++ free(role); ++ ++ return rv; ++} ++ ++/* Set the execution context to the default for the specified user */ ++void ++sshd_selinux_setup_exec_context(char *pwname) ++{ ++ security_context_t user_ctx = NULL; ++ int r = 0; ++ security_context_t default_ctx = NULL; ++ ++ if (!ssh_selinux_enabled()) ++ return; ++ ++ if (options.use_pam) { ++ /* do not compute context, just setup environment for pam_selinux */ ++ if (sshd_selinux_setup_pam_variables()) { ++ switch (security_getenforce()) { ++ case -1: ++ fatal("%s: security_getenforce() failed", __func__); ++ case 0: ++ error("%s: SELinux PAM variable setup failure. Continuing in permissive mode.", ++ __func__); ++ break; ++ default: ++ fatal("%s: SELinux PAM variable setup failure. Aborting connection.", ++ __func__); ++ } ++ } ++ return; ++ } ++ ++ debug3("%s: setting execution context", __func__); ++ ++ r = sshd_selinux_getctxbyname(pwname, &default_ctx, &user_ctx); ++ if (r >= 0) { ++ r = setexeccon(user_ctx); ++ if (r < 0) { ++ error("%s: Failed to set SELinux execution context %s for %s", ++ __func__, user_ctx, pwname); ++ } ++#ifdef HAVE_SETKEYCREATECON ++ else if (setkeycreatecon(user_ctx) < 0) { ++ error("%s: Failed to set SELinux keyring creation context %s for %s", ++ __func__, user_ctx, pwname); ++ } ++#endif ++ } ++ if (user_ctx == NULL) { ++ user_ctx = default_ctx; ++ } ++ if (r < 0 || user_ctx != default_ctx) { ++ /* audit just the case when user changed a role or there was ++ a failure */ ++ sshd_selinux_send_audit_message(r >= 0, default_ctx, user_ctx); ++ } ++ if (r < 0) { ++ switch (security_getenforce()) { ++ case -1: ++ fatal("%s: security_getenforce() failed", __func__); ++ case 0: ++ error("%s: SELinux failure. Continuing in permissive mode.", ++ __func__); ++ break; ++ default: ++ fatal("%s: SELinux failure. Aborting connection.", ++ __func__); ++ } ++ } ++ if (user_ctx != NULL && user_ctx != default_ctx) ++ freecon(user_ctx); ++ if (default_ctx != NULL) ++ freecon(default_ctx); ++ ++ debug3("%s: done", __func__); ++} ++ ++#endif ++#endif ++ +diff -up openssh/platform.c.role-mls openssh/platform.c +--- openssh/platform.c.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/platform.c 2018-08-22 11:14:56.819430949 +0200 +@@ -183,7 +183,7 @@ platform_setusercontext_post_groups(stru + } + #endif /* HAVE_SETPCRED */ + #ifdef WITH_SELINUX +- ssh_selinux_setup_exec_context(pw->pw_name); ++ sshd_selinux_setup_exec_context(pw->pw_name); + #endif + } + +diff -up openssh/sshd.c.role-mls openssh/sshd.c +--- openssh/sshd.c.role-mls 2018-08-20 07:57:29.000000000 +0200 ++++ openssh/sshd.c 2018-08-22 11:14:56.820430957 +0200 +@@ -2186,6 +2186,9 @@ main(int ac, char **av) + restore_uid(); + } + #endif ++#ifdef WITH_SELINUX ++ sshd_selinux_setup_exec_context(authctxt->pw->pw_name); ++#endif + #ifdef USE_PAM + if (options.use_pam) { + do_pam_setcred(1); diff --git a/openssh-7.8p1-scp-ipv6.patch b/openssh-7.8p1-scp-ipv6.patch new file mode 100644 index 0000000..8ae0948 --- /dev/null +++ b/openssh-7.8p1-scp-ipv6.patch @@ -0,0 +1,16 @@ +diff --git a/scp.c b/scp.c +index 60682c68..9344806e 100644 +--- a/scp.c ++++ b/scp.c +@@ -714,7 +714,9 @@ toremote(int argc, char **argv) + addargs(&alist, "%s", host); + addargs(&alist, "%s", cmd); + addargs(&alist, "%s", src); +- addargs(&alist, "%s%s%s:%s", ++ addargs(&alist, ++ /* IPv6 address needs to be enclosed with sqare brackets */ ++ strchr(host, ':') != NULL ? "%s%s[%s]:%s" : "%s%s%s:%s", + tuser ? tuser : "", tuser ? "@" : "", + thost, targ); + if (do_local_cmd(&alist) != 0) + diff --git a/openssh-7.8p1.tar.gz b/openssh-7.8p1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..6bb08be1db0d9c28516e0d5d9d2d26d8f0e052c2 GIT binary patch literal 1548026 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

5fk)}dw^GaMCf!J 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�ZWkdDa7+} z?UJH}{L7KiUAZ?!YC|37D4h;3^$tZA2H=omQB-6Q3Mja6hz3Lg030G=Lud{*q5!Kz z8MP7_gxW&-q3pQoWk@}T1D}jEDaf&KTv3q8)=6{JrrhLO9&w1PQ)y}iP}RW*0vJcF ziwUa6Y;}xDGd$R-I%+g}VLef8857m;|D|KEsXdYU5RFC99gG82fI+3Bwj^ge=DA`$ zTo>BvIC&Qsfal7jNDN}Hix%pWJ}I}jOJt&@%c!kl^oyW^8NB4N>QowLRZ z$iWMx2b|zehd{!sA8KL*FE23|JG|7i;VUx7ideSi1{VQ=6zdn3^OL!CTsWlmz^2{d za5NZ>e55^CVw^&c^sBs%R3{=w;JTr$9qmc_tYOV4u8%@ZNGLeW4eRqTHiuQ_Ofm~% zpyCw>4+9%Rp)$;eRUy?yQYxf34Hxy6_>#GBo_Rn)NrmQac3m#F0xaK>mmBdmV(MP4 z?L;x%-VznLs~w;=H_G2I*-clTTLFYODyo_jecYlT9Ms`9NF11?Lf9BjFEWpq!kfr+ z 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

N@_{`7?##fkULHwVclDvhdtXeSC(i{CL@W^PR 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

duhO0 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

-1hY> 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 z zD73r`A?qPqGSMkppVN+h9C*+u?eD*vJ^lLmoj*SL&leQ^&}T{f&+5yajQ#KP>hs;N z@}EE8E+sh1ro)5!M9i&4&j+#z6qQ#()TgfRR%~-{q*O*EAjVW2y#yLkEh#j-QQ0})b znon~2nC^HwopT~VCQ-?o5`ZUps09zh9PpU$TJ?87RDgVb*Eu>qVJ;zzVVC69qYT^x zpltchFucEvIujsoy=)+|b(Ck^h9;f|Jr17qiWMn=Lvr8^z-t3r))1!`SQ(ePz~uoJ z%OX?S;BGa1nmyBgerL7A?>ip=ohV?H*Jk&(D7@%DnGVNT@!SlhStH>7R#&W8)i(4~ zT7B!qYyC#QplNc%6?ai!L86`!wxw2G?F*U-;65?q?QwQ@T*;UqG#+=o_40kH+bR$`qncOsa66rz;vXr z2T40}mY1CFZ2|V>V0@YJFwb9iEbg$nULSH3h3ZS}68(_vNN>+TMI&>zr23F8F}s12 zQxAGhfgCxK6*VBWWZmm{(91-5;IhWF%Nsw}x#O^zMX|k{($c)wW|>;DCeL5eFU*RO z-);(t=0cP&#Ksap@{J#BrN^E+H>vOu%Vg%um=Au^RI!XQBx?yZr`chKonH;UE^5 z1h~MF$>G$&8#rq70`5y{hVrpoVxsd&m`HZpc_PvCMzeS{m#|utE{9UbBDnzf%@_y> zO5aEATtX{h&yJCimu^I#W*D!6#yv&xF@>uD z1omvk{r_z)8+RYgHVFnqI0zLml@4VO9tYOo0!iy_W(%u8O=vU-6}Fkj1g`Tc;w(Y{ z4|7aO1Wl+ZJLCv??rSo}B2u<9M2br_dqu$x#liQSmJ0K`vR53;dNjF0loCzVDre3d z8iD%aRHP%QI5S&Bk12Ba6fRH9?hG5S8T>CyJVdGVga8&M9kUMJGYxDJMVfFru-6Ty z$`p?mr;E7R*NPSH!y@Xx$&xizOj0H~_(Be+)9~K2AC*i46{wCkPcthy zWoVbYDh)6*AgA(r`*mHujIV=(eEP)mRy4W0*xKfDg z_I+U$GY25oUDi;7uiY*7sM{XGa~Xe6j$?FQuN`%orzbzB`_0h4o;I@KkN}M!J4Bcm zMntCsnjJ-$z%88K+t-f8s5&bbd}lH1>0y0mv-!XdTH`g9G*&Pe<-6?3BV7^ipYIqe ziwh}o-n=+Hx;QgUrqA*rVSDU#%DjWUW2zN%P*XAl%<`>}3PaPB6psfQzfD#`a8uIQ zrdW`LDpxP2o9GvsSK%}AIVBN*ac{t+iVHVtCD3sNJkCJ2IGsZpUYM%xcb&z!1M@)^BLwe z`~o9+@IrdVn;C9KNUNN1@-sA~WDct_#0zhOFNNWqqf6Zv#pm%5f3O}0F;$GrM3{_6 zxHY1?3C-mRi$su5Z^;TNDjW5?M-3P8((%;jH!8!GCp zMgpiV7SI3+bNe?u?ZuVnimiC98RbfrPa*v#5>}0K$4}!hy+Ho>y44LByE+O+`?B1n?-Xzs~a77uy(J{p6l`KZ-Ez>vU* z-)7-e$Yn2)z(f0%K+8)kqzC}$2Ve;15>p~wYLbD9TbSBlHT7*lLDLzT0i?SNd&q`E zmsU4U2ahK>vM%k462yG-t2wj#NRK=^W#v=$o#mLFXa_PJ6f?B0(Ut?ufOr{@^AL~f zZZY1m@^|$n6PIJpM1+PCPN+cqtwb?}^a4}wk3dNpVJ^f*g*Ac(_l6YW%)$$H97F%; zdy7(^sSqv?xl^5GuxGs(2d{GJE--N9!%6waB;_0-jEGMj2EcYS{Qn6XpwxW411qf6gY192_Fvau*2ZXw{nyLt^J>=qYj^vr z{nsDx@!5Y}v;9}~tNqtk`>(I|U#q$Q^+)J>*AevmUR#8jCo9Ez^yPY17GC7shlA^g z_q;E5qr`d)@`63)Mtckv`Q{tPeY=03>6;S5uB~C<82TX9@IIXOkYkC5^C8{P)T&!m znPp+ss;>DV{KOhJrDFBeG~rOzO4YsRuXZuwN?FzBkS{IjeR>Eg+R0F+c!|V$qLMoLN=ss6CzmwaGDE6azr|Zt0Y$ zPKtWM5+|;89ub^CvFH;ozj7+l3xbuP#*DPKTK{b8x-_oLB~E)20}rYLeJYqCQv3ei(*mtfA)T0|jV@Fwv9 zL)-;I4a^+rz{GAv))(M0nRijSQNjC?jEBY}TS$ZK<$N0Xpl>~G8Ri{Ng|=aXB!AA( z*ite21ot|n^n*?KBSyR2(CRVMz*CK877@meL{pBDo*A|zn?cqBb}@8LEe1nWRwI^x z!#cW(ly}h}?nkqD7)id)0@({B^8wi>{BhfxYe)1&*2$!M#FngOQ`JgV+DE`E!sqqW zA^{DD^DEOz{Fdc4Yin)T7hPVczGkiI1JVzfl^!6ai5P|KO5i26jDYM|!z|jZb2PwU zsY(}{qlKL%df_(d-qNyeBzZ+X)7#ASmTS#nbw^AnuJAC6>0uBGV=l5c8jyg ztTy6#@UoXz0Bj}c=A7#Be+N`i>+ zBlu*zCg9r&MM;36k%2`WN!nXVl?&%K8RPV?!dQpnqHRN$)ffu_CxOinGdv%mA%A2P z1qt~GP!iqE-|MVALgA>_?o5R4Ap_B8mF*0Z9V7VFK^&D7P?O zHX#Zcf}0Ue`I;0YqkCzA)*WzuJcM2VaxdkM{reo&xo1-SXiE^s>lbJLyDi(SW)c1%5Wt)`|m&4Rm9{p;Gq6#hCc7uE%3181Taf79!4fXoYnZ1 zmlUXY^W`1b6(63dJHBvtVa>dIK4gyDvd0s{|0tg{Bw+E(;CacU&C!C4Q zvePM*xZM(WM44Nkm&=)%JRpmfn7!6hY4r@p*=j509L`o-DGPA6+S0td z8nY~h06-OR<4qCEAeQI}Qn^vXI1#8S1V?jCNp|w1 zH3}a@xM)#}VG>-1Nwl}?ZQCDZP?j*Fwxu?Ss)#vf1|^;aE^2r2+yg@9>FfPyj?P`- zEIXf2b%MeVb&Himhyu^>E-gDU1ts;Cdc=kjm+Fevu#+$*c^&K$zyWZlbfeD)hLB_= z?nvAg2an_R`w(_9@o}GcR9H$VyhV2hD;8$aRZ2n33F%-UD&V->twJ_y$yQ~iwx~`uXKIV;?D(g)sLJ!~)Bx$YQ$tp8 z$<)$aE~-++E=`}5DFq>)@)SZFy>akQ{HrYn6z|*V++yfaxRB^Ij?NtlzQsas-q5k2 zAgq0V;i_F2&%>g^J5J&4#f6{Sh4BO|D!gkK-q~GT_=R1#x@3ZTcHt%Sdx>SSs8#55 zASv6o%c;FW&|kDyByf1hUM-t<^&#`#dBD7%KWN@~E*8z3Bqk4;_ma_7my8ZCnugfz z1T@l^Ss0E0v5B^iV~o3i*U&V&!jzH$a0;AHQb_%DB(SWG)KVTVR+BDqjMjI3W2Ax( zu##IsEJ%0-Zr-cqd_?>dpVC+CRfG)S{*1aDh=drE;2@_iMK>+Ypx+{4nfJDD82*Wi zj?Ym=Ec57w*8d!M%-hiMc5Uay9vJ{N#0$pSPJ{w~y+d7%9fPK%22|T7x?)dt6<2EQ zRrN1BRR04&NsDXhleqTgy;SA72O zHf;a;S?QDU{{U<_in_Be83TBs|3`J_<@WR4Z2qU}^RNCNf4~Qht>gcpx1W4Ko^S7J zCyHDe$WP{Klpht9-;5_{b2l`-DLB6 zKHKcaZ?euJ)xZ4Z#iAOOpq@;|<4SNGj|SnWhb?$MwZR~uMiXt+z?(XWjb}5ME>e+>p9=}R!x1V*=0s*rBeYo&?-%9z zvI$d$U%hA=qy5HhG);&|6+3fmL_5xqO71dZD?n%peR$AAJ3(WEYhD5o;;8oS#?zaC zn~5oLI?NWy46-p2bIjSeJ4Ol_XKsD5`e8)Q1_Wl}<&)!Oe{PDUu$)a%5X z5NdMQ%T#ZkoVc}t9r9l$r&XTbK3u5_smtP6W7t74P5 zhlyyW<4^Y;*x4cA&JH}2LU5hN!-;TN?0ph6CoDc-le*+UJ?B|qDD3eSVncT*$@TcI zL--NLp>>)#F#H{?+pIZFv3y`hSq=d6k2-7!-|M(4DOH@!z9wQHh*Jt=O6(*+jY$xk zh{|=GiI;4>gY(8!Nx(HWtrU#1l%MkTi*v;VH&16_nbo_2|A zT|;>ub#YSEgA+Y)aSD%Qk2h(?K;E#}iM0AERw6XzN!6<@1{IZp_vjT|#bojuFsxf9 zZ1!G}Q!B*+O@ff@Fci6i)I*Om$dGlh^8QdzhCcPOrF_miQqcky62??KJ2&qDj81v? zvb*c9tJz$2X85>DD2Zh9apzZ9P`G{Ji5#)Gcc3aINDJu5MDz>x=qdvG>9$mCy$4>l z=tdG#W$4!Hyrm*K@GV{PlQ5o^YR8?6)5cGgpw&G5zSC--*J~drS#>huFdWEWhqG`{ zDjrh!74j}&FBsDd6PUvx+)AWtBO<9N!iFMm7Lth((8f5Qh3`&4Ah_izxEnU~7J21o%j^q3;j_5?;a425{$kgvuiAV~YF!3?$W6A2i63>(BjIf%L{rGeTrwLs>G^AnJP<_H54Kc zx@Q;xk}Rg9-olfZ+A~Jno@2r22=D-g0UUM!W+On^fJ+6QRUSPv0_W)UVn!&4c^OM< z%nc{H=nSOFz$1b^FWz9;#ru2Sx(hDcAosH6QRm#aJX(|W=d5v7ceDQd_qd8Bys?ktMm$JY1x^_s zA=Vf~;RxqH2xrk$1!D{j5fCIMgC*C^f=n8cvk-*G7~LEAHe?nI`FF0LM=E^bD^yNZ zC6ELC#qUuS$-i?G4+bfusj~wBTR^10NtDYLS}y|RyuUajQM$vO!emg4y&3!%Npb}w zJ4$5?1VGsz!X#qT0CZ8I8gN}kA$nsD?m5KL;P!V!G;}kLrFOjJ8?%tY6WA;k7p=TBt5*^d=<2nQl(q{bHa4{!FR!q^Wa-a zq0ULx`ytejDIMS!70Qx-(7TN{@J|OFYOE_>Kc}^_s6$f$6*P86JSMeF&Hf;S1N$^+ z93OY!FsaOHs-V-u#+w8xFmS^N!@gAzHl{nAl$?$YC3YFZq1E7TLNJnv7$&=+5cO*b zP>66+OL@J@)Ct+t(1M}f-ltX)T&0o^s>)7V)C*@=vA5^xQ@DN5m}EqyHWRg=RGjF? z*?2T4HBJ$;bWWPhv$wUw@5?*|cMjCLoZIhIqLu8(B!3)ygkVBjlG|N^RPu$QV6pLx zsN*$d9iwbY_?fvP==W#(SGs<^pldF!Qb_AF99Gon?%SnHKGGV3q)~~xdI#)eqdWk zWnAJ#J?^yX?c*c(a@09IY1V(LA1Z?NZA{t)CF&;Q3FNuRHkP6i@Of*TX#z%(WDfdP zFV$@VNYjtrJya~~1Qs;vWJ3Z#$1p`tWm~s(zAAdaYe8Q(_0q$RI9uTqQQKh(sV7b` zZ4B``y=`uXbYs2_YK_iWt<`G$P*+Sb#T^FnQNg8msv_wVnTML=Q+QRjbLAK?P`oJK|nFua&9^^PA)26&!aH`M^aqe60Mp#t8dh{ zsRLYgJHXjw(Ps*4W_l7V_*6BDZq24&_ZK^cuC2KkBvk?r6O(lr=rka0!DkL)aUehu z-cRLA-qy%H|!$$YEi&N#gf3SeC>A*XBiU@5>=3_@US#8azRXToT7HOo$T zgi#t}js~SE^rAJ_9P-gOgSC^yjC3Gu+E0ny^*mb)(O#q z)0_iuFOkd(2P#*_$}{o|58oP?mAQHVGc^K{yJE%5@tjTe+!;|@We!rWA|K&xL=BDS zvx5S*wy#wxsC_ulmonarSZcqZQJa+%0EIdlH6y;wB@%?UBElfmfI2MdU>nGBt~#y5 z_z|@;^9jy$9qr6ubdvxM(jZPEAgp>UkMFA>3d;L-Gq{-akTSzIOhuNUV-!Sm%8W;7 zQsv4LVCa1cfz`W5u9l?)QXe0%q^OicQNa6@q3KYtGwt_ENU`;MEGW<;uo-(a9fQ6m z{hlGou-q*W6Br#KoX&(dA5&Kq4&gr>V<7Hf)S2Cuo=Q2~LuhBSPqOl!{EBYL&-HbH zR%?yZ1L3p}tOa?41R;Yao>&}G>FETAU9DK7Mp)!Qpb7#1;*(+0N#>Un&Y%NZ*w@3U z1Wrv=aja_+bg9gp4%w|Qk|`_lkW4a4yxO~3dp6XFWPc|d}8c`~~d;fGDW!(-95}b=xSo?LUN z-yUZA0eqRv;@NyAo|80xPWp^!6IN(~1HX+>Sf^rPjyaq_mqPV&cu!cp9BBeiJsYqk zS5@zkI3PW;SaPklC#C5p%%%ukB6Bgfbappf6xbQcgS&8q2B*;^9KaG7#E96hnz{=$ z$pXlQTRq5;I^-BoW~3l6amt;9$8iU#tQ0dPY&BDB+b(fxz1P;4rieUZl{`zkdB`H^ zmLK2wmP)@?GH*Qds>U15A|N&$z{+8O*fBX$O8i?mR8tIyB&yD}1WU1&Qlp+WmEhp2 zo12@)kV_dlos7q*befLmSJ##@KznUiP9)R&APT$J6vrQxTWfTZ{yryXR2|*QMkEpn zHZkT;yhJex5@2;<31a-u2o_Rue22qAOelg@k%1y0<`vmfa!E}U)Q(S^t&6j>=6U-d zD`Nkw`m~uFXiP}IWMYMXr*+D;rvX){k&DJToy$8%bTVgOO z{f#2WWI{{U>NC@7;s7s7T_g?fBD60=;TRkM1hM=!bl(X5t|`lb+eVA#L=qCPsbxG8Xoc_Dq*9wX1ZCYktMd@UIUSTlS!p=s`TaH zdx$M$md;qgG~kaTuq>giOXNCIZ6%%YkeE1YAplsUX~r&|Ap|N)$KxHXJh;9BjY#wmp%IBiz&SM#DRKmEzs9|%l&oU1zzp!UTDC9~*$ z{}i+I_DXvfN6gYPP3EUG3Z?J|V6rlk~2!oD)}4dc;xS{0iqwwD^u zf%&={8An=iWDDXRx)=Aw!I&|C<-p{1jf4Gfwcc+$>1{sgZ7`boWs31J7+0O0H`~oa zKyDvu|Eqc4*{N7h8mIgO1C0MrKW{afr%I}!Tm?(F=&T%7GE?)9rJ&3@D5-_72+OS( zmndjcLF#;oz5exhlGD(EzD!O?S*ey;?1FWxd9@vRtRnn1*Y9ptpmu|-ZzGh^$~KcD zwXdwnv_i-=`ou1K9k(z6mPJfy!|}^`|KrY!yj_% zbtvRvVlk#`Q%nl21aHnVRf4D1ZZdI5QrvD@_WRnB)@nl%Z98v7QZc4V!j2q(*-*FtswsLpVbi&52@%99M!W+#m4GqvpM zDLfoKJ1~zh58%Zc zPRD@&pZG@gjD!V;kUCa+FhcK)kl>*(VsyR1g6@{HdJcu(7Y>SKS{&62d(U$o{{-K9 zbLzBg8G~|yADul`N82D2iDFV854ooFv_F)Gv95?h*hW|MxGWU(NOZ)J619T}bOVU-q68&1c`7k$}fm;`nG#S-$vuNWD zM`2)x3;05Ti2D&54JM^b?kiQFHA-CBzx;(j z*J__c1FEtJ_px?f5z&39*Vay*snw<78CXLFCAl8=g4<*>K+kv~m$P)CGeIE(OV(Ni zPl-@`d-1Mw-m0}4?>-#8Fh;pztdK+Pw3oecj=@H zU>_Y|8ffJA;Z&j~VBDwj82X^-*=;5Oy(dGFa7uAPC+yj1{48zvJ|6Ys=`bDB0GKqU zwyej)1kT$!C**n^6wd|`?m5|sJ-d&RXQ(g39sm_8$^806kunrs!06?)p$cwhXE^Rf zsVwqDi9nA?LeX#z4)_=K&-i>own<^HgFMpYdJ4lS(IC&yI`zZ%P2=z7W9SIuPCg=k znM_6)jFZC4@jbNtOxGo^CVqyN;#eL!LKKZvM&qJ|n|Ye9UOQC*Rw`SAK%IPOCVJ5L z#z@8NzzJ{|T%9$WB~kQ_ZZw^hvLcCev`31Cp~8J+b{ZBn8IN?}04h!`OUkp5B3{Ka zmQ-RBWInL1_{pc-fY(fi;F#W~)w{a4OUVqV8V586eZ#-dB_Q2_r` z7~WZ0&1RlWBMf`WLGPgz^1~p_>qJYb6G`Z!T~a7e7~r+RcziRTU^67BrARTbHkcG| zM8_f_m$QU&vXDE-=-oFb=0^z@dSrdG6#&EH*zxkjaan;XB=0WSG1^R zR+OcAqnRgb_i9L&X@6w)lkASCY`BlN+Z;|ZrV?Z_5cT66dv8kB_0w1~JC8>ju)?EW zIAzle;BMN;)4>1dCi^B_PE>t12bdr#4fBoSDUZQ&dDHR z#wfY&JxkEe!3+<3O|%arj&&GfSgvT(2V5FQ=7N_F<`oX&Fy%0?mc={PzW7^k3<&rT zNLVg_Nq@JY}gFAkJPNV7yz^$VcTPlwiVm*oX2(L*r z$qBTm)FuIvM)pYck(rS=;Lpjrl>B<1A5aZ1t!4xcY*;Zx52R2JiYI;hsQKBqEdYEk^a2QaW$bL=FGa(BIx5Mbg>PrnBCW6Xh z7WD#~_&w4}Wbgb5bLYgf!M#XwSaL{M7O_w!A|G|7e)0mSUq-@h36+k=Q*boF2C}h8XLfi9`nh z3u=Y&>K^#Gv->l}%QdK3N+V6lrcQmn1%PE2BPewbQ5$G^a5=sLXvSN&bNIe?`mTON zp$UY|WE-cDzd&n(GE7SNONq6~)-;KD8y9j2yqpW!1B1O&`tjhYu*vbnmbSKW zju`CUx(fig#r?GXT%0h|Ba2j_4Aw+EacBvlD4G7abI9D#tQ5x@q7_85RS$r;;{YHi zF%+Qtu;s#T<{3}4KfGU?tf>$rLjB!{=+VI{=+Qrl&2Q43rFB)=+ltjyB%lj>rg92l zN&G6O=EwNgye`r=+e11@*X3?t(I@s)<@O@~ZiDSD?@?#Lgz%dzUaW_#R%#|z)40Pq zOZBj|TGoYsq44mtdF#GtJFyu#vh06-Z+LqN0*e$ii;wW+_u!VhnufiIfPIy_6uK2x zSSf+O?AIx6Nu0XQ2rpCGJ{2ci0w_@^6~KigrJx2_QZb(Dbi=d?cNn(^3oE2!(M~AX zCt#qVj~0R-k$|EZF%*kEf!ZK35#gD_R(gLUg@Mh%Jg^*)MkWk61|ztyQMh=Gl@QBP z`dUiq-Zc_BN{{1U?Yj_lL(mJgq3}0(cwzK;#837O<{k?h_FZmhvTT_gz_S*KS4oj_ zS|sbN{A>4iC(C0F6{5TSCRGN|qE(36RwFj`zY#c#{yql^P?aO_l`)zJWr@*{A@{1< z>L|4i4&m*}h~%-60nyl--=mOai+wr>ssW-2W;Nw=L&uIIys#ct?tY}}Q9FjF!q41# zb~vCXi88Rd%65-x zX*rC){RCME4F@*(sa;FU;1`of!C$Rj=?LuS5LE^)d8-{a-i5cdwe13jr}ZB#`I6!U z5iIqLSl=xgEwwRf9|}34MwsPR^35tjMO$QlVaY}c#^U|_y$_$(a**j z@t0C}4Ki@?M9aPmXRFsP#MoU%?pt=|bIjgcZ20Veo;5>jW@@r}hT;O{&d{pB7`(*c z5X&%YJzF#X%#_SR*kk>XxrP1UESdu81osDWWIYrz*#oya_w15);8vB)F1fqov0J>2 z6F^H^P$A&dpP2ix52KEzWVctcQL4i@ScN*cXKaXfeAYRtAJ;BU+Po&y@Jls&UOPQ% zeyE+djV(%FYX$KDU{{uo&=!zp2SDd9BPErMd#~Zist}`%{VyXDk)hyW8gd=d`8hxO z6KyJz<<%XPxWUnIuJ;QIrGHio65?l25Nwc_dW4H58_+>_7};IrH-HF6g+E1`D|XQn zV~A*4G;5oZX8AawZTG^ZafoCrO=4EOk|?Q@l|p&tPnMCeo)BNaD*FNL+1-|!m@*f0 z&4Wznjy&Ay;OEq}Ig0MASl()@kWKB*O!5W2&J<3IjFn+uTJ7`3VY`F-{eAuC&d>Fh zb_AoPSPw2x0D-9nwJSitO&b)an%)e8A0w%zrJM>U>eAtSHXeqgCLP?9)FKLS(o)fh zh=UPDnJ=Yudz)N_Y_dc}dpdTot)>P@UCZ7?NEo2J+^7JElF!UXPeUUtY}Oa%B8$Kt zwc54T_bQZ{$O@}0EUe)79VIwa;GfQ7kwcBk<)qU(V6$44gFnjV)+qim!YF%0N1!Q56?JR$jQgv0t%1+BD(*Z`)QQ&f&g|rg8t? z$*iKV5ZN>NQm;tZHG5}v?48*uTb8NC4+?)>doCW^9yVZn2Nc@TX>0Qr6~x$p!m2&O zNgn>jPRZ2L?#}MbxI-4nkzC0qL!*ZO$o7cPmB;>uF zH=iVOMeCw9I97;{lDT|ARIl8#(G=BkTeP|^-ABpRXj}$f!y#2!w!!C&(N=$w0p=8e zg$xUf9+{Qm3S|MHoszV7izyA}sFfWUETT%^q#cQw;P@0b`UnO^ zxCA-l*|^^?DvXX6U=@7>WiB6XKoPMdgiITE7-!-~GesI6u{<(-CXSjsK$Q3-sSp{b zcC@V5XCnMHmdqf63}<3_tirVMwFYjy2Z4%DP`(X(E-b6~hazjgBA=wM0UqZHtdbo- z@`23Qs@xc#ecMk}ravEHSv1h1;l`8VZ=EvlpL1upstf=L-Hvb2;WtCx>PBKTaKs!ELk#@R7IA<~$7l&9doWhblAkyYBS|i`KaQ+R9M?oGaN}WwsYY7KHgRSXx(Xt6>FiY|p&O|jxk2F^|5JdzPz^ESV z*8#*v?C^EAkk^vR2HHB9;#3lAX_l0Y`%~iC!&(QZ^zZBEF8W+9jLnOyDa<)s@gh=q zpyI3kN&0^G6BKmaNKrJFM>Db!Va1{=_RLmqe($d>`YcmFT?$!$+iC$o zVjfBHFNDK#k?L8q)oQ#wsS|{?&YI0*c4v`4h;q;>u8AyM#dBt*vaQHa8n5nn ziou!2BQn;pWU55`Y4No}F`I#flcSi-(lly@3bId5EoZF|3zK;PnMm*$tX}(;%B+|f zJi6%WsXN+Faor+&LQ30fN$IkRDh;~Qb`xNU7r+uOTPIgjRYpxE8IUKLv&yW1k%#e6 z_4bHhER(-e3rno~3n@n0ANz8OmE#m*K{Uac0z#C$&?>8q(J$o?Lg{G>v*=El#ExlY zu%(oHkVff$(2Z;D_V01y7SfmP{)%gh<6<+(q70y2)YwKFzpeRmB!9O(GA2v87 zuWPb}rp8#;*!=m|9KDzB#?xLWonzfz(laTP?j%l>-57HR6tKmBV7HGE{9jxPqw zPM^PN)Ss$Vcg#OktH0-np}$9s7gb&)7E@&@AOq+5u!SC2PP|C%f+xC{F2CJG%M>O#kdQtYa(+em;!L-IN|X1 zt^=9En^ANZ#410oMI&F5U2253<#4gyBL9ey1#Rk(5^r!t(K1uiO0=cJ;F3TPU;1)yK^}8mwp^xyEw$SXCim@g zrUF86f`j+cbXpOeGXl9iaqOh@W5ES|Rg9EAG`dbIg+q>6v8wB{zs=ON3Sm9t(V_BF zr0pubNKa((WZK988c*n{`^w{MHHI(XdG@cI0$VFpx*)zNC z!x}5IDW&A}o<*yZ0fxiSMyNU!iZUMn?AXC1v@jqmSi)2BWh?t#ay^wzKq`a^D;yO@ z|C#CxCh7ir)A5AuQS*D$iP5pJy@Dz%z1xM>Hop#}O?*m+iEQ%^IMR@s0%@J^lmzF$ zAq+|ih^=*T6P2VOI72etKvIGegUC~oYM(aS{F-#L=)sw?^eA<+5kYA2HCfPX>dzxv3gQ z81o3@9l^|~plGG6V97F6oE#d2+AgbX3xkD9^ATGsgpl>c)2*l%f{s}Wquq{&6<=zF{bD8)ET$Rv|adpC;iSI;fwJY-#>%#TTV>lV*# ziAJr1r*V748g5e}SmyiCdJ4%vrGqB2gGwPfsh^*BkovU@BNQHa?=G;ae|gW7w!tWO zT{EU+{yF4f9V`5bCcr83v5~2}gN#Rxke^3VYRQ(W$WSBRfSNB8Q{X7RDksK86LQIvDCq8OR)KlF?NMtU@+YRhxvf=jFKtr9AP4 zX@Zd7sfwNzC^79~NENC9qaXsrv8X4@T1kuz%YYG;8^=Gh5X3fjU9jHD)4ZTmik|j9 z)Y^ydmy~JM4=>K^I-;w_9jV1q*@SaOPCe;HyjHqOT$eIv%W5#qLYvdVyc~f8oc80h z;QU-{WStPUoW4$^XtrET={N1d8C_@Dny8iBSbIZiQZ>ENS}8={>IVKWvPp^rOnYkB zg4~S9hFvl1w_#V!_-_D-%6STH#zL>GWzR}q@dj6{0jG%593?KGgXom65Ph0WF*-ne3+s3lCE~|%876VpQfU^9eXZQ%6hT|%Pa%m4=|?TQYL#(F#h*Y^ zT}jB*=wm$mm{W65SOs{Gw>>G6i2fyyUyhfL6CPna3&ny-5;41uo*Bw@;wc6EiKZL0 z8rJOGxZ*U1QY!*_k`#;UiTdj1Z5U7ED>?+e91Z!o8B|_J)SbcwKDpx%JHCkJ)P`c% z)+J;o4j%Y4R*K*cWW>xbDPR+^1b1N zP9kSin8lbZ!3N{Ih{9KHYS(i+P?Rhi4oR0(JU#VQm%zl!g6Qg49jU{>-7X3d?*tU5 zKF{Xqd?Gv_jPa%OB%;ANH*RHfP#N-|KuNWR_(Jtf<>8rqI89_6p}}jGjzDrHCHqgv zuJhRw3KGodRzS$?ByB9(2uGiGvUjhBS^GJET^q~lE}XxE6*R45Zh(kBJu zZz&r95nZUCCLKMniyDL{WDu+*2mV;OnC|<>=K0ZCO{f4_YwWDcJ6_Vg5T>Q$FA^l^ zEkFZ4pdl{KN+Pq@#W9L^C3sHW4LlYEOhiHBZb=-O$}IL6U`{12QwdZ9ri3*pJti)z zN+TD_Ih=_;`ejEwm846b`{8OstSK2?bTS5$`U3NuFJ)gnuc= zGH);@A%Co1MQ3=ZoQNPk$Jy->&AQ%hOP$>w?(3%91C-IH@}wdU zFP+>{d0P=ps?}oFGmit79r?j#0X;@_@`z84qg}HUYs=bFl7&T{?P*Pr_)gh=RJI$H z3FK@722-@=RQj9@d$2Glvz#J29Lr?0`4Cdjx-}R2To|!ps;>+bg)e2uYa13@t{NYj z?K*pEG>+=0?Z$EAu-0xgPlNZhRv-%QZ!E*&FFTqBblWnv&F%NKcF<~ms5ejR_~NLE zhP(Kn{T{!a)>`eKzp)!=je$5BMaJYI0y;WD9(+P(z9S9~O7`_|O`t!h-@K&kG~1YQ zZbJ;$GftBDlF}xS3y5P{`!`O419yosvb9@5Ho)0kQQph>q>x3I_nG9qF*!+Ys`La4 zMR&@gh(pCoQd^w!RQ&dXus4iHF`R*LHlB(LiaA!AXR3dSx^s%u%HDq}?56&DS=v=Q$&G6)mUyQ*6((SYD&14kc?ZUJQ8*H2E0Mu&h6tV<#GF~){eEg-Sl zKx21}3s$ulU#&P|pM!SAgl7LQG$Wy<5#DcAMt$oqbg$-XY z4DT-^jNwl7(`?KJm9kyPfbhNR%`G4@5<6fl9uugq0-T$q4Vo~;Hak|H=V>}!gp4K8 zgVBi;6z5QIWT}*QD;3{TvdBKwot5o;0t&ieyHeJ#)L%tK$`I=%J3i$>R<7(F?~b2Ui3u^v!udw@* zPH2m_s|sPFTe0iIa`wv3A`-iuU6Rj*KYjiDKmS3)TmbTomz%F9)h+lYvZBrFFW1L5 z+#P$nyMNl=-mboUv2Fjw&+hKa?LSqYKY#vm7d|_C@VvUaU4_42ZV34wAPmDPblLmc zaACP+@Bc6TY^?|X(F7QH+d3jfM{j@SHmGhse-Z3#S6^*yzuc<+C8%!i@4VXIeHrv- zbGSLCK#NX-|Dc4yOq(8#C-+Rkm%3%BxxF2H2&XsmBsiV|G9GLOn5}@Rd{ozxppL}k zSo=KcA^96$&iR%B+6_&oV+>0?r%2iGd0OW{Tn&A1zI{oyL4tBrS&iVtAA)j=f9n4r_{AdH96l+*w_*?~ZZ){3Zsz&v~N zZuC2iMS`+QOTBS-jyGPYHf;;`gA;EK;YLK;l*BB&7HZqmPyhhDV+)wb<2JCp#8#f2 zH-7+b_b7P#GrX(^wTt%q=6Udc{tvLcjn=bgLGAPi{`)zo|8#av5xfiaj2~cxu5}?Y!MMyf~?y2WJ=Oz$U|3VG2i$*5OGFlXtQz=oI=5>OTPc z9<<)qfTOV{^|lTJsv&btO~Ry(8t3)HHV$3BaT|xk|JP1{7dfjRHtH+DUL!`%rsVZv`cH1+cC3BEWK^#`pt{52oF^c-v|>+86D5@UGcB z!qp90_46MZhxOJ$aMHx}J`OHgbsE@FtzDz;p%qvhD1no@Xf`|kI1sc>jY&>*(L378Afw95Y3}9Ah2ZP3O zP&@jef#a9*EFEDGq2)V#FRRbGxB^NBdQo372u2yFza11Z@BW#xS6o|133kHF`r6uv ze|$bDsH!U2x^4^V!CNeC=P-BDx4Sw(Pu_Nu)7hW1UF!o$?`QtOH!LDnmk9^Q)8j7L8Q1vGg3WnZR= zg{*uI3tvf%4qE$n(`{eslSlvWY<9m`9}DUKD!h5|GDH7Yw_kpx|Nnqb4*d_?PYl4$ zt6kv$UTsyM2irUQyVd>e7Xhq>q5gj>@t>{wDmV&`J2>Zmhoqwqmso_8jd4AwH}kc#Vy(I zj%EY*(I}erF5O3yyI!gT($}P(&3fVVD)THJryrp;lKX6q%2Mf~A8@9hdTPr zp28Ai98dQJJnX!u$KR;uZ_k_G*H3j7tApE^*AqRo`}Qs%&2*XcHaL^~7A)Mx-{;Xh za(AWpX-Fnm_|!avD>n0BC-dZT-glp|WtRJlyH7ofCxAgS?V*Xi^9JoJ_J$yWwbzd{(M@ za+O}w*)_6aiTijS_maDC;yzUTTV`?Kc%-V&`mY2K`pE3RYqe@;4Y$(9Rl=PLXaNxx z4=INL9QWuG#z#<^!U0f0vs6a=1GkJf>%A`1oCxW`e-E_nb?g0(W75gEX5LYak|GXx z;~ni9$xfKon~u(iT;N)tK7H!2d2fcbRIl*Yfs;Et?E-<8i%vHdbUT+QC4UpD6jYKTD;NAO$y)*3(H( z863xGc`pGlwXvp-kV>Y}E2aI*N%_Y^R(1}$lU1_Y<@;4ENI-X^(+zOXey5F`WOs|) zF&@!pUhX^Ia1667f0c3h_w}DlGLr8*wUc)^O5R};!-Hy(F)&U6VFjDuJE+8k$vQpE zd9kkQtV0-xoVTPbRo^P_L>)3^b zoIs%tE8)?i_u>=@bx@tD4zn%`!XW!@~oW%;ju*Yc0H>0M((2 zeQK3pn?O%f; z1>?s(#W%`+N-BP1Oth3;1}@`-)5=DFT=D+4#Q@CLc)f2O{EN?ee=fY0^GH5@=U7Y3U^e&Qj%8@7%r;VIcztvHUp$I!33^pMMsLF=gZq{ zwVQ`usLjLXhcnMW7Z;WOO$JjK!jvg0%!Ef~;r|%Km;Wh(Su9Y&2bIxy#CiVkOT}BJ zm^0E3HQ$OZESVnXFzhA=u1S|U!vaXIH=#ha!MRYdgCe8SHs!pkR)S}hXBu%5OeRS* zyaY;u;H>mCw4^zIZa3UT{EZ>wZEdsu_IXTPc)i)Xyn46S=1gsLQ|v zvL-h;=?q|H=3|*-vafYehtr61LMP8q{>m>S7RVcnQLj~t#F=-I>)WWQJ?ipHOJkigi}Sv00=&_c9x^M0Hdzs4K0Kh0MLO}Yv`^4_kl2#KQ`L$J59LHTdfl+ zO|L)F-oNj>J3p&-TJLMsUwLr7>kjjg2mZ3V4=%j(VsFLbdszHMb!WxmuO3hw{#fI_ zf(2bx)(qP&{pWxeRo1ifzSip04-ZqV)DNK@Y(rXzy4K+S955#@482?Pko?8m{=59l z9k7?#f1M)&;3{6;|83m)M4;-;ryu4I>RUdowp~= z!|#E^qkb@^r8+_AH36takr^gbBCJoK4hdr&I)bP;z$3PVu5fN~hq&-lI*LTqrxwfa zT+aI?8u9Rc`I%KUe8(2Ok!`7o?2vkN;Jg>vNvceTn09r{kLu_<3KKqh&xi=XE2shu z7>&Bq`^hZoZNa?^|0*gX>ZzCqE{1|(PHrfM+;oPKG00PHr}LrpuG4sT+B~nzWVPdl zUCZ`SrMkr->Gg_>D&bJEbY7W`VCg&9nW%%(XsdLJ@>~=POHQ12kEx{{lD(!kT@*}q zXP;(N9={xTiwvXL^|(ic_-m$^wy|!=7f%V&lQrm%G1Ji%;lgj%8Ylk+G-~_&=aPC} z4n`3Ui_Cn;MxoR19neMo<~7A-V_pNOy{raC4M?j|`Z2 z72eltM`8`{8UqE}X6Qd(DbL*th~hdtt@_OP^>$M!qI$^R|?x& z2N=hY&j&aVjCF%5X}&7dX(f`Fi(&j2-gX(v`Xyb1SaDek5?tDD;~lvB-z);q}ykctq97O=o=bn0jQnC=SvqbX`zLm1?7qz&Z)ig=w77(4qp=`+@?1 zI?(4jzktSDZkd!`%&Bq(q{}4sA7HaWTuSF=D5*dWtF5opo{ev!(c`M3Bl+WMJ`nm$ zt=V!2Qo2OKhH6EvrL=4pE#({e#&*I{j|ese7AXZ=C9s=Ogbp=j`SZ)w1{5+T>r4Tk zr<~yHrRC7vYvwJL(hrgbMmy?JZc1mYs+ytZ7{K^DI!Kn>``h%CQ-y{7j-jcDqaD?t zsgY1G%G%j#)hZ(KNZezx_Rk_i!v!c z_mQKd4@serlr#(IF@2yFj<=N^4@(nNctB#KYD$RB`lx9Jf)iT{vO?h?eaN-&5QThc z4{D765Pf1IcNh&5<%NywK*Di}N38EZidEp^S6u<$sqdR^JT#Xl(uJJBY7Td#i@2&L zr+J`OG07s@v6#SOMWOEHy*3aqHJM_Rph)_$;6Ho)6k6p|;LJ{8W)sUh)ev$co|hUn zX-y2l%cXLkbe&D7~*~g?e=<7{l zAyo{6yXlkG&|>L0orOmOdf=wp!$D^ROkV69uh@vywS}6>)@${I2@d4ABU=^PzF-eO&uVoA^jT zj?AD90NB9-Q$|;waDvEgV-pb?hhu<7MTr8pq!V0w&qjv55##@=`%SGHI@py65i9qRK4t=ef=atpao$rcEy zvPj$5)R6t$kRxiCOeQ%78HRW=O<1yO>zJqdw-{o33aJKFGh#q_aKPQ#yt9wmLt@$K z0B4Y;hzz0dpGYg5=~zK3(vRE%1qlLfhUqXc<}n){H^% zP7NgT?E`Mjv-)`l@#G~abj>Oa&^=prSGZzu++$*c#fOeUx%!5rZp`#TQg5sPUlH@++- z=UxRKuFXG?{U94jP2>PYJy$=@^`hJqzW@ENrQdQZS=d<10jdXUgu@7fAaOyc%h~1p zZB1#O{@@*cvT!$3abcy-g&uIao>~$?FIGs=?7k?(`@q9ssoK6UTjNqyX2->mXcA75 zE>H76tDhbj`I6J)=P+FMNR83qki23FtUG@t)no?C$}i$(B(NwqWL>^MmRw@kJ)5;v z&d#c|0Egr-(KHAVsC?HudJ_A*e$HW?#qhHmj&#CPE3%*<9m6&0HeG5dv*p4cXe^-$ zJ`hy3zVr(NYBmhK0al|YiY=-G$1u53?1oODE*@5w>|Z4zJa5=5Me+?|oN9Ff;N9h5 zeCam(h=V}u@&%3o4Ry6MkgA8%fG;@lN1g_>3DiW1PSVC=gM{<6@k#;>iroZH{xJuz zlp$X-Wg?TDEOzOkIvJ-PJ4KxG=uthYj_9CS!%fRCboLuukCIxJOUjk}^u{C>wflly zqe$;)_lV^;b+7wY&zZzso>Ay9|JVtyfs<0w4>eQ)7$)+eHHiw5wC_b2i-M!AmXurt z$k0-rlx#<&Dn2!lyvg+Mygu7Ueiir8+Gw(KaWtq>^-;oFs>Z zNKisdkqkjvR;M|i{jA?wYu^BnlANUTyzkS@G@*cveO-IqFLg8es_j~pru`!_vLHg$QVUJ| z;a;3}TFt{(D1X=LbXzsfuI%^%2{JVPa&Q@RL2tQV!H{=7)3pDlLbf2aY99bxdWZS7 z^rI*4*%De%4dFNnC8^$db#Cpw(!X#8jOGsFYckQyAHu%UGE z4`^X60*C1c(JPrifX0IIhWsVmJCa?d%Ly0G{$%>j6fcZl-^53)4m_u)yiP5il|xRx zSX}<4vG=7@ofJAu$0___^Y1a(_|>3w&0t3SVf zCNJ+ane`psxi|CYZ#49;G$`N6KqBaqpt^g83`y2fQt(5(kIhB9>>>3`u|M`q{D{t4 zoz7{e*x9|URIW3cTt#m*JKj7+FpP{4+LLgBYSfm4UyEaum~be@Y4}+)ECGvV^C@d| z0?*8n3nC!pdq)Swe$uWrul#gBgUdHaKR4yt=DJ0 z@A}W*ym-;-RJ6aM#oe(f{Y`%c)ZEm~Kv*_cWAz0_d1(qd$aZnU3|dCb(3seF{2S7Z zy66w)>CoIbvvsJ^p)0e6Y^`-#Ul>YfZPF^zs^En+GSr!h8HiwBVZ{jGD&D`X9p8*f zv$sciSo-jgLnWs3k-S~k`((UyrLn@*uI;e`-`pMH@cGYEE&-%)Ks-|JorE9vY7SfW zxyv!+$E{w=ax}~rrx~+wh@}{(3y3Z8>-J%tq`H|hbR=as#>#RypV(Tz0;x!}_Ok!t zxcPF+t7Kfg@y5iq`jo$wf>dtK{+`}xQ}4Q~A=~4y25oQr=$v<5R&p-m(ewT!y{?5K zWwG3swo)&YVtn|9cm2+n*?34-zIMKXhgo5e4kpKGQ3rMQo<2_5$x6AwI03*!b6C< z_2$#8+@+W1cvNxY?+BiEhfluH3^UkP7J$#~&R3%Y*+a{_EBQ2qxz=e>?+_ai&sbCS z(R$P(C3PB6k{U!OYBZnp;QhzyJqs(j&3bklS!bcM%f7g%xkhYqWrS==>xm`Ef1K8{ zq|RiAVr~)t1yzjfA!!|MfzUuIKG92HC+{)p-29;w8z8ln9 z-G>?@-g)%plajzn6Y#hQoE-@ub$?#oDXH#OV3Q^`%mBbp#b9ErQZV|%)tc#B)WrD2 zA&_c55vL?1?BrBAt*tFfBe}x3L>P)$h1pZpgb)bXP(!oZz4?uXC+6iS?8yu7=BpR!%Vps0fZwd-))#N@y1W8{B|^gsuZe8j1uKbnr{jeNQy7 z_l80jg!XTsC%;w%^B~#Nlje5-?EhsN^*e#N^Xan{diCU)8ZcmHgLhD_W~dLZ3S&5z zK|Om7Ycajc6OI4B*FBMNw_hQ#KCBd34XnFm-9@@mHh@Xjbv7QO60Ph8J9a6LY-|n5 zXpw5xOX$%{?kRV;G%I}3R^J)x&*dOgWN75Y+OLwIcpa544{JUn z#I)+O(7eo^Xm>F#ho50}CD(P&AAALX9~5oL3c4+J-a~m_>saRFzcubO=T;~&Y2bDo=@T2^>1^3XMC%gII9_%#s zzRW+(V>2rxA1y92aQ0^F87nG>&G#>76s zw}qo&*+LW{3Hn90&{zW#Ci@?xx)!M#&w(ut=NU>NCE^05?&9NuhT=9_sgWox1d7K6 zvN;_O|9zzMHgZr@z1$5QZxm3(f%OD(FZ__V+qY}Ye!&0~?$=#5>@GXjK{Dv$)3^QB z=?fe3R=olakU%*A6Cbf*^f`sd-e2yq+>W5t-)6lQN3VqsgE9tJGw+Dy+aMn8j(}is z&1-dPJ#c(wJ*Ity3isz_wou3U3drFtv%|?$>|i>x72(VOOUzDy34V9Jq@XzbI0i~& zY(ooH3f!hBO*&3dcXr~kRCD;D%^<|SstJ9U<~vgR4}Iib^BU6E!j%*y?J(XJY~maZ zMJpiMe6?IG3BURSEGM>@;2~TeSv5=h`Ro~gN1INg!VOVwz&1@{8_BDY&=%Q5j3I#- zvWQ(K$2V5!vua+NJzX+nOLB`~CQGV(g~en*_&LXK2_-(RA$dKT zx}Sp?{cCYGlM*uaI#{3R-lac5w@s`r5b$ZUA^dcLBRPZqd@W_QhOe#y57~$ldT`cFq0y64Wh-Z8y zsqp38`nb#-wSe<0CMDPS9uwn`JKg6m?$lnCb{yD$BE=kY`2M53CMS4LJX;-2pJ8xc zjx96g8@YrBH6WClP2w}2L6gHY(&5+XO^;LHsGGY~?nE!#3C9+RxBG0Ck{Dx*8qRIF z0=zWqCtyl@F;HTT+<-8YF7}tndcSI~wj7608*n^=DH~(%gA|SlDi?UZ^M#<2!Hk<) zIALD^6GH`(LidUWsW{;50_pJ2Z)`vH)d1@maxfM2>BVYp$gMRiAIx0F4r*z?(lR*q zE91ETi!GHRJK$kr`o#CpV?oiR(_?p!V(Q{Y2u3g_l}FTMCM*X@i;sv9%(QehBP!Dj zrViT*f3PN8{M#jycbI+*fdirHjS<~!{@$1L9t++oq(o-TJ!;=soS^{_et;|<+3ZZ8 za78eN0^@Z-S5sc|7Wl1gJO$Q+wac32_R2c#0y(-z)>pW>Z&SUNT7&^<4AWsLZ8DeN z3Lj;;1hFiLG_mPWO1=?sqn#UGC-c-tm*u4^HpB~?!5Ns;G~NEn_=pi(0dxrWFr-8= z2KHi9l-;4?o)mV&aF*Vlc)m5Bb&B^0YdrhvPC05UYsYk)rIWLylWPh( z1wTPG>}KUemf0}$_0n^+?F0Z2TV^kgIkr-DPTCbPJ2cw9B@U#y+SLKDw!H6#`9Rqh2K(WfOg zGeB*9Gq*l3Bh72=0JFKjbQkDQguC+7BQ8gy>_e()JL64|piLqx+aSXF2k-wcfvq{V zb=!hXVkNov(hVH$q;{0i-e{f&PrmXS*W=1AY`m0HJqBg(?5eUKrNW(v)4|-lHkRs0 zJ_v3{@Fr_vLvXxpo*J*)@?7K3qyuRR3h9kt!oBqKtMuw_OO+jU3-(w1OLajg#<+LcS=)IsPgUpfdvY9FfG$w4M^*jtV3xb&~ zk#$Pfk>?yyNDxXdHaD&6aaDk)r2xMo$kVqn`Ss%n2bJ~whEp>mZ)wPdt5Jkd1=QCM}lU)1Zwo~XZnFS z!dwo7$q&bjs>2!e;!TRX;pr~&bUXraA0#q1LQfOh?`1-7L)KwO#W-3i%WS$l&KjVQ zRZ*5fYC)m>ES;k$yko-2_AX6l zfTf?H`ba{C10oOrSo)JsJa~gIk zy%P#>UO?ddI}i#osL?6BCO_xuft#hE33Z^+oHjYK3u9UV_|U9;XmK-?iLacT@5UbD z;^Z7*V+!iI(fdglxD_zj7uX^p+BAcdCblr1qB8hrA%z)?OPWF@Kvy9ogTlDe&4wyM zn#zD;S*7>PXL2XZ92F_4@Jgkpf8j9Q;$y=^X>~zKGhyiVfljDE-G$BybuOy}O9TH^ zz@4K%jF9Cpb7)uaczmZ6byKj)nsU5I!RX*qXFVka@X9i|QB^3!9U^q@6QG0caB`y* zs8|tB|Md8%-)(if?bDO?QALmw`a~$}dEKvZZm(CNc30qASv5WCN_-M5?pYTi5?;xQ zX&FDz-)?r=9L@Pg>E8EFQZ zK|!W)wlz)h+f(+K#d6$QJ%k>S=k>OR^|a?saI-X*?}>d`sZ0nHAHy#%pNCKHoY zRCm*DzdS*GL1YYib9Q#x>9vkL#;1sLecn~}prlRYtEIw|@OztlpX~VV%k@l>i$2rd zSR1CjS=S5I)X@Li*qm%Km=cpZSQIQz4iu=vwUSgp&HYQLBr<4Uu<>mHaUKCt(`v4I zf?c-bI5KDm7LM<7x*RjFa0#=58dSn`eD=#?20oB>d^9Wo@-1lAL2@1jfBCnp(C;m7 zXhC7ev#%pV3x~_A8IQ>sF}G|vACB_{zE%8A*G|}YaZqQfU$qj*?aQl_yTs?8IX{zd z{@U<1?>Vkqhq!yqRW6K?q_bK|Vip7r6ms)fp(+THfGM?3USapy^ zU(_ZIdgVKld)cKFbCnnzYb!6pl+#b7x`-Mtu~fp(|>B4!q2E z({mHZ2^|v56To+#TFGdT>Ru4SDmIlTx`GW2WsedUYC9=%cmWQHO4|FyRFbn(tcJkYvu*a^%GZDvKMo!57w zon1TdWjS#>CqJug>8Dzp?{27R@$x zzOVSRU;%iTFSg>pn48Tn{W`NGAv2#uBC_1+El$nInp(5meVdfglc3!QG!@}|=--p+ zmT%V5h5xeBO;fic^wM;j!gv9j`RRk5#_n$ZDZKDX>J;BhlR?*Td)S6&!ePsxHm~ouJ`WaejoWCJc~d5VfRxbfEw-BWa_W?B6|-To+PmUz$m*$fzw7o|uO-6R zPLY8dhuAtfZJqRr$H+!)r?)Jq5DFKjphj4~NVr%vkB@t=I;U@5zB1&ORek%O+NyE_ zw+tMN>*ukQbO`(!MoUFxt6W41%I#0Ap*tkk=&QtdNRK|omsy1BKP33JX zmlbY+fWTKK@sRI!PF0(e~|X>T#gG%CFu*hQ1lm4^k!;&7noG*CZ!HVaB>pg zx7rHlL@rLjus?&BbIc0xU?D2Tl zrLmjC_WRw&-=-u8)7kA1kp0f<{jJ9=gSxl_s8cd9sh=TuGzA24YAxgl-bb5_#*S|w z5pTxS=5vtyz*abJy|)vqr30*c@Fl(9c(M~041;WJWJl%dE;l|mJ-QF^_~}le4|d>P zH@U}t4c=&FP2Z}p*w8QV5!BP{X?)&Qq>x?rkD}WY-iw zE7~m&f-Y@C>D7J5z$Io~NxQ&Ujn`rxI?q4jOP1fz$zHLF$hgc|>y_gfeU>p~^LahVt!U?DPvkdOD~zY=8@7 z5}|4VrIu2g8`c~g3pi~APDf=Y;&4Z-ds9)CsMs5P(DxhZMw#>O@&?c!3Q1sD)QoM_ z1?GeUbdt}~0sSFli-SLJJ67-WTTa#=$U9i$ENEOj*yDmY1b5QDU%kr>fB$p;w;XC| zKkjg@#c%F*w4P7M>eH3`Ydzx6Zwg4qSKV-cW*Ac1&!^C|D*mE<2{c+_)cC|1HJUGp ziD&D`S*O(nLm!2P|Fxss&1$6f%V6T8lnb(Yc(~@ArymMNzT3?E?IZfp?zLOps=1d3 zx}&LUFh&6uyNd^589dytpX7f1ME6T3y#3XL(RlomxlbEHnN3(;=)uBPF}>}+!wNeV zu^)~{>nrIAQC`#3!j?YZfWUIHe=|`=pg;XsO8jr;*lE2!{iaokj9jBTz&1}Jyrt%+ zzBN0fQeUM5ji4QA$=TaO^qQr4AMA_u__+mburP^q9GgTFlX1R@Eq<&rknFVbBW4>d zN-6B$fqm^E7}G{O^xFj=d(_Ll^FAuPU$co7R75$c@GPuu1Q&zkzVHI-tve9Sx7x3q zVaEeTF|jd?!DJMy+nuiCo8UVWuX-CebQw^qoblZO4eN63RP|N~raj{xm<=K>DCC0E z52&}1EgUagF1XQczG#&$Z#_ngjnkwR9L??&JmIu&J`oI1ND+hVRiY4?!Cr9+2Itv# zcbQ5smnwv!h7{AM#Uyt@B=^B11w>KhkO>#Ew#5mjkZ9oC3Z@r30rQOXB93BHSdGj-`vXUVd0{?Nt6)aqZ--?}NK;;`iiSM%jc=?G1}< z90GZ>DlTx%UGhed>qPKWzD|C~${O`jfvA~8VDGZoOx({*)XKK!un6c_8Pez&hN3dc z`9qZ48^f($3E6&Vis{Y5Pp#bRReA;6A3E8sAZ|r>45ONTm$C&Tu05D-J;*E6qUI_` zPFY(pk!;p2f)tlgzirvWv|jWs{l(J|`dS22Q*wnC!M89K6S7n})!=NHeOtjBm%nx9 zlQP8$M0B}fkuLg{wpI77T%gGVg;kJH4G8*l-Ns7kzdLSg1$SEMSFNJaVxFZ+mqNYo zVt!*8i?Vf)ajaRKQ_j|GvJgMOb~YxQ=m@9iTA%r$*=jE>J9Wa3hMIKSFJB)$tth<4 z*Z?KWEHcp8^vBd*BaAmaAGHbxs8vyHvX)=gW|Nb+p?ZDa-is-i*~*p zY(u=u=S%{PryP|9a{5R3YGeOa6gd;RdXFnm#mcU0Z=x`?78smitjmN{3*#7C4r;Lx z6FZVk0NokwDqNBBieaUtwvNc_v;kSUmVR~w_Ss@ zLYv?!-@+<->bq5KxGHreXQ=85bwyw5FtN9HniWPvwPjm5usRagvdGm(zxM1m!pIpX z5Z_jd&z(+r$$BI!ISg+_p{VIkWH;clwG7N6zz4Y+4;{{96yc?Bkr25seW|&pqQksV z-uHZ(%!k_Bj%}p=mGOLP_9I-0ta_Lh8q_pFG??&~9DHf8WER#=3RyErX=J3B$ zY%PSfqHCi8V$YSWoHR4+qB3EoHj#pE7U8TI>~|}gu8KqryXM3}t1@HCA_~5{ChvSH zP&^%6P8G9>2QLglimt?=?zR+}X6+x78q<7xYf*<4NKIWC?~vY71ls$jx5QTe&S^0v z%R)t3Ov7dbDKz1=SeZgoOR=v_^8U~}-RgO1BBT=Xf$1E%sE7iMB+1lr&W;K+2C?Duq-Ma%U@Ut{B?O=_n1otd8bOt69<9n1v}95w55}ha6>$gnpnj zfO|w%UEzl^xjU7xRW8YK&jgW$`&>nngFKCPop;}j!e;QF*5z1oIOgt6We!I_a)rn} zByBHinCH^-nDk-}|x73V8lu3U5Mr2moMoC^uy~ znGhb~=-Nqb%aK_ynjDnHe(LUzJ!--wlxvTsw7$XRc(?^7f>AlI*Z~$VS!lKA)ZRa9 z64rrS4;2_f5{s_wLHPE9DFyOgRs`Rz_E+E595@(uG#W4SOB#JhP~_{;yn&?6$Br<| zNc3M!tJi>+zp7)L<8R+J^$j%|VcB?q`0~spw6CXv#eE914i0DuIW&h~K zvEdSClDEJ`D9FHz;ZPAswi_b}(6tYj{(SU-Y}J-issSq%Xb>4Dq`zWz%pu z+mnY4x(40e(dnCB|3&+_b#f{zW*dd$^U?lJ3zp&No;3=C(W6}%s(tbsj-+b{$JT|S z;yfP3#8u317M$M)30nx>vnewT-hO&^Z#o^CCLB>@o(QBAN{hBaV%ZwQ<7IAaOomT^ zLoW}aFo^8?!6k8EKLRN|doUi><@~&u6Sv+P3M+3B9-_9jE!v3^YT(|{!MGA{R6VN+ zTHUg;ydNV;J=GrMTcw?^=*Z~J%V$CmUOJWVP@+3zeYi)`2U8ID4`4h6{5eJy?5>T0 zUlsHVmhD_{|0)7qjt>qp(N)XD8XL=-b4w7H+C=(S`GpX5zBrbwAna8_4@v>N8W)|5 zd6~KO!rtig#Y`k|VCtZS(NJE?U!Dp2nL>NrYM=BvOH9{ll?#|$DITT@n*?)J13sIx-nL(~ zzHRqfM`0m8Z}9X(1{*_iKAFz1U@c$24czTp^x5q-dvCh7j&>#a)y^e3wG=7kv7@MsXGr0#?SB+}5X#F zajCn5FuO0Yhs0aVr^}1WI86qZ#^H<|q&3C`4k@q9kj59KF1fD6Y{g$Koa@JedT)pYlAwuF*jC}LS)r0I%{SS&WRXO_UJ%hMrO$n>yd+LlLwpkdnw^`L-oWa1XC`7zq zES4*1=`~)sD#ykuuLT>x`mrfri&S}ypTfFy8(vs|A`62wtwTa793Z$ACU)1$ARBWT zhmsL-3Rh9F_h3_jDBEO1RU&^qi9o#>C)!j1ntw_b$DY?~^(2Uf-`Vjek_$ zyjwb0bwTegr&}-xpx`cJ3xI#jV&&d@`~2%=D0{Q-okPqB`$i$}ZV3G;|CU63$|kJL z)8|D0(vmn^s-*o4Fs|=iR>g%B@a?+m^&iKP>MrhkL#omg-SLi8j=%Pn+_LD>J-O3t z8Ege=@8hphvJ8mH`~FvO!wH>U(k0CS=`)yq-ZwjAV?)zDcQ&=a+~#GKGjz64-9k=z zozg(3X=>F=f_u2;39NBYxp>ZS(wN|#1`CW_9V@uBDSOAcn&1Nf9$7yaW#cir%A_Ch zex#@ASW*`1oQOvNn+O+x>nu;r<54os!%Aq-b)X~Z9%0Do1alB|hgpIA*QFJa$CZTy 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 kqs)7OP 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 z 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%0AIvCL;Fy)5}j4oEh8=*2(jqwU!ah#Lx@N1;5_ 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 +Date: Mon, 15 Jul 2019 21:25:42 +0800 +Subject: [PATCH] openssh: fix typo that prevented detection of Linux VRF + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index ed7a6bb..671819d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -849,7 +849,7 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) + AC_DEFINE([SYS_RDOMAIN_LINUX], [1], + [Support routing domains using Linux VRF]), [], [ + #ifdef HAVE_SYS_TYPES_H +-# include ++# include + #endif + ]) + AC_CHECK_HEADERS([linux/seccomp.h linux/filter.h linux/audit.h], [], +-- +1.8.3.1 + diff --git a/openssh.spec b/openssh.spec new file mode 100644 index 0000000..56e7f95 --- /dev/null +++ b/openssh.spec @@ -0,0 +1,447 @@ +%global gtk2 1 +%global pie 1 +# Add option to build without GTK2 for older platforms with only GTK+. +# rpm -ba|--rebuild --define 'no_gtk2 1' +%{?no_gtk2:%global gtk2 0} + +%global pam_ssh_agent_rel 5 + +%global sshd_uid 74 + +Name: openssh +Version: 7.8p1 +Release: 4 +URL: https://www.openssh.com/portable.html +License: BSD +Summary: An open source implementation of SSH protocol version 2 + +Source0: https://ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-%{version}.tar.gz +Source1: https://ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-%{version}.tar.gz.asc +Source2: sshd.pam +Source3: DJM-GPG-KEY.gpg +Source4: https://prdownloads.sourceforge.net/pamsshagentauth/pam_ssh_agent_auth/pam_ssh_agent_auth-0.10.3.tar.bz2 +Source5: pam_ssh_agent-rmheaders +Source6: ssh-keycat.pam +Source7: sshd.sysconfig +Source9: sshd@.service +Source10: sshd.socket +Source11: sshd.service +Source12: sshd-keygen@.service +Source13: sshd-keygen +Source14: sshd.tmpfiles +Source15: sshd-keygen.target + +Patch100: openssh-6.7p1-coverity.patch +#https://bugzilla.redhat.com/show_bug.cgi?id=735889 +Patch104: openssh-7.3p1-openssl-1.1.0.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1171248 +Patch200: openssh-7.6p1-audit.patch +Patch201: openssh-7.1p2-audit-race-condition.patch +Patch300: pam_ssh_agent_auth-0.9.3-build.patch +Patch301: pam_ssh_agent_auth-0.10.3-seteuid.patch +Patch302: pam_ssh_agent_auth-0.9.2-visibility.patch +Patch305: pam_ssh_agent_auth-0.9.3-agent_structure.patch +Patch306: pam_ssh_agent_auth-0.10.2-compat.patch +Patch307: pam_ssh_agent_auth-0.10.2-dereference.patch +Patch400: openssh-7.8p1-role-mls.patch +#https://bugzilla.redhat.com/show_bug.cgi?id=781634 +Patch404: openssh-6.6p1-privsep-selinux.patch +Patch501: openssh-6.7p1-ldap.patch +Patch502: openssh-6.6p1-keycat.patch +Patch601: openssh-6.6p1-allow-ip-opts.patch +Patch604: openssh-6.6p1-keyperm.patch +Patch606: openssh-5.9p1-ipv6man.patch +Patch607: openssh-5.8p2-sigpipe.patch +Patch609: openssh-7.2p2-x11.patch +Patch700: openssh-7.7p1-fips.patch +Patch702: openssh-5.1p1-askpass-progress.patch +#https://bugzilla.redhat.com/show_bug.cgi?id=198332 +Patch703: openssh-4.3p2-askpass-grab-info.patch +#patch from redhat +Patch707: openssh-7.7p1-redhat.patch +Patch709: openssh-6.2p1-vendor.patch +Patch711: openssh-7.8p1-UsePAM-warning.patch +Patch712: openssh-6.3p1-ctr-evp-fast.patch +Patch713: openssh-6.6p1-ctr-cavstest.patch +Patch714: openssh-6.7p1-kdf-cavs.patch +Patch800: openssh-7.8p1-gsskex.patch +Patch801: openssh-6.6p1-force_krb.patch +Patch802: openssh-6.6p1-GSSAPIEnablek5users.patch +# from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765655 +Patch803: openssh-7.1p1-gssapi-documentation.patch +Patch804: openssh-7.7p1-gssapi-new-unique.patch +Patch805: openssh-7.2p2-k5login_directory.patch +Patch807: openssh-7.5p1-gssapi-kex-with-ec.patch +Patch900: openssh-6.1p1-gssapi-canohost.patch +Patch901: openssh-6.6p1-kuserok.patch +Patch906: openssh-6.4p1-fromto-remote.patch +Patch916: openssh-6.6.1p1-selinux-contexts.patch +Patch918: openssh-6.6.1p1-log-in-chroot.patch +Patch919: openssh-6.6.1p1-scp-non-existing-directory.patch +Patch920: openssh-7.8p1-ip-port-config-parser.patch +Patch922: openssh-6.8p1-sshdT-output.patch +Patch926: openssh-6.7p1-sftp-force-permission.patch +Patch929: openssh-6.9p1-permit-root-login.patch +Patch932: openssh-7.0p1-gssKexAlgorithms.patch +Patch939: openssh-7.2p2-s390-closefrom.patch +Patch944: openssh-7.3p1-x11-max-displays.patch +Patch948: openssh-7.4p1-systemd.patch +Patch949: openssh-7.6p1-cleanup-selinux.patch +Patch950: openssh-7.5p1-sandbox.patch +Patch951: openssh-7.6p1-pkcs11-uri.patch +Patch952: openssh-7.6p1-pkcs11-ecdsa.patch +Patch953: openssh-7.8p1-scp-ipv6.patch + +Patch6000: Initial-len-for-the-fmt-NULL-case.patch +Patch6001: upstream-fix-build-with-DEBUG_PK-enabled.patch +Patch6002: upstream-fix-misplaced-parenthesis-inside-if-clause..patch +Patch6003: delete-the-correct-thing-kexfuzz-binary.patch +Patch6004: upstream-When-choosing-a-prime-from-the-moduli-file-.patch +Patch6005: upstream-fix-ssh-Q-sig-to-show-correct-signature-alg.patch +Patch6006: in-pick_salt-avoid-dereference-of-NULL-passwords.patch +Patch6007: check-for-NULL-return-from-shadow_pw.patch +Patch6008: check-pw_passwd-NULL-here-too.patch +Patch6009: upstream-typo-in-plain-RSA-algorithm-counterpart-nam.patch +Patch6010: upstream-correct-local-variable-name-from-yawang-AT-.patch +Patch6011: upstream-typo-in-error-message-caught-by-Debian-lint.patch +Patch6012: upstream-fix-bug-in-HostbasedAcceptedKeyTypes-and.patch +Patch6013: upstream-fix-bug-in-client-that-was-keeping-a-redund.patch +Patch6014: upstream-disallow-empty-incoming-filename-or-ones-th.patch +Patch6015: upstream-make-grandparent-parent-child-sshbuf-chains.patch +Patch6016: Move-RANDOM_SEED_SIZE-outside-ifdef.patch +Patch6017: upstream-don-t-truncate-user-or-host-name-in-user-ho.patch +Patch6018: upstream-don-t-attempt-to-connect-to-empty-SSH_AUTH_.patch +Patch6019: upstream-only-consider-the-ext-info-c-extension-duri.patch +Patch6020: upstream-fix-memory-leak-of-ciphercontext-when-rekey.patch +Patch6021: upstream-Fix-BN_is_prime_-calls-in-SSH-the-API-retur.patch +Patch6022: upstream-Always-initialize-2nd-arg-to-hpdelim2.-It-p.patch +Patch6023: Cygwin-Change-service-name-to-cygsshd.patch +Patch6024: openssh-fix-typo-that-prevented-detection-of-Linux-V.patch + +Patch9004: bugfix-sftp-when-parse_user_host_path-empty-path-should-be-allowed.patch +Patch9005: bugfix-openssh-6.6p1-log-usepam-no.patch +Patch9006: bugfix-openssh-add-option-check-username-splash.patch + +Requires: /sbin/nologin libselinux >= 2.3-5 audit-libs >= 1.0.8 +Requires: fipscheck-lib >= 1.3.0 +Requires(pre): /usr/sbin/useradd +Requires(pre): shadow-utils +Requires: pam >= 1.0.1-3 +Requires: fipscheck-lib >= 1.3.0 +Requires: crypto-policies >= 20180306-1 + + + +Obsoletes: openssh-clients-fips openssh-server-fips openssh-server-sysvinit openssh-cavs openssh-askpass-gnome +Obsoletes: openssh-clients openssh-server openssh-ldap openssh-keycat openssh-askpass +Provides: openssh-clients openssh-server openssh-ldap openssh-keycat openssh-askpass openssh-cavs openssh-askpass-gnome + +BuildRequires: gtk2-devel libX11-devel openldap-devel autoconf automake perl-interpreter perl-generators +BuildRequires: zlib-devel audit-libs-devel >= 2.0.5 util-linux groff pam-devel fipscheck-devel >= 1.3.0 +BuildRequires: openssl-devel >= 0.9.8j perl-podlators systemd-devel gcc p11-kit-devel krb5-devel +BuildRequires: libedit-devel ncurses-devel libselinux-devel >= 2.3-5 audit-libs >= 1.0.8 xauth gnupg2 + +%{?systemd_requires} + +Recommends: p11-kit + +%description +penSSH is the premier connectivity tool for remote login with the SSH protocol. \ +It encrypts all traffic to eliminate eavesdropping, connection hijacking, and \ +other attacks. In addition, OpenSSH provides a large suite of secure tunneling \ +capabilities, several authentication methods, and sophisticated configuration options. + +%package -n pam_ssh_agent_auth +Summary: PAM module for the use of authentication with ssh-agent +Version: 0.10.3 +Release: %{pam_ssh_agent_rel}.4 +License: BSD + +%description -n pam_ssh_agent_auth +Provides PAM module for the use of authentication with ssh-agent. Through the use of the\ +forwarding of ssh-agent connection it also allows to authenticate with remote ssh-agent \ +instance. The module is most useful for su and sudo service stacks. + +%package_help + +%prep +gpgv2 --quiet --keyring %{SOURCE3} %{SOURCE1} %{SOURCE0} +%setup -q -a 4 + +pushd pam_ssh_agent_auth-0.10.3 +%patch300 -p2 -b .psaa-build +%patch301 -p2 -b .psaa-seteuid +%patch302 -p2 -b .psaa-visibility +%patch306 -p2 -b .psaa-compat +%patch305 -p2 -b .psaa-agent +%patch307 -p2 -b .psaa-deref +# Remove duplicate headers and library files +rm -f $(cat %{SOURCE5}) +popd + +%patch400 -p1 -b .role-mls +%patch404 -p1 -b .privsep-selinux +%patch501 -p1 -b .ldap +%patch502 -p1 -b .keycat +%patch601 -p1 -b .ip-opts +%patch604 -p1 -b .keyperm +%patch606 -p1 -b .ipv6man +%patch607 -p1 -b .sigpipe +%patch609 -p1 -b .x11 +%patch702 -p1 -b .progress +%patch703 -p1 -b .grab-info +%patch707 -p1 -b .redhat +%patch709 -p1 -b .vendor +%patch711 -p1 -b .log-usepam-no +%patch712 -p1 -b .evp-ctr +%patch713 -p1 -b .ctr-cavs +%patch714 -p1 -b .kdf-cavs +%patch800 -p1 -b .gsskex +%patch801 -p1 -b .force_krb +%patch803 -p1 -b .gss-docs +%patch804 -p1 -b .ccache_name +%patch805 -p1 -b .k5login +%patch900 -p1 -b .canohost +%patch901 -p1 -b .kuserok +%patch906 -p1 -b .fromto-remote +%patch916 -p1 -b .contexts +%patch918 -p1 -b .log-in-chroot +%patch919 -p1 -b .scp +%patch920 -p1 -b .config +%patch802 -p1 -b .GSSAPIEnablek5users +%patch922 -p1 -b .sshdt +%patch926 -p1 -b .sftp-force-mode +%patch929 -p1 -b .root-login +%patch932 -p1 -b .gsskexalg +%patch939 -p1 -b .s390-dev +%patch944 -p1 -b .x11max +%patch948 -p1 -b .systemd +%patch807 -p1 -b .gsskex-ec +%patch949 -p1 -b .refactor +%patch950 -p1 -b .sandbox +%patch951 -p1 -b .pkcs11-uri +%patch952 -p1 -b .pkcs11-ecdsa +%patch953 -p1 -b .scp-ipv6 +%patch200 -p1 -b .audit +%patch201 -p1 -b .audit-race +%patch700 -p1 -b .fips +%patch100 -p1 -b .coverity +%patch104 -p1 -b .openssl + +%patch6000 -p1 +%patch6001 -p1 +%patch6002 -p1 +%patch6003 -p1 +%patch6004 -p1 +%patch6005 -p1 +%patch6006 -p1 +%patch6007 -p1 +%patch6008 -p1 +%patch6009 -p1 +%patch6010 -p1 +%patch6011 -p1 +%patch6012 -p1 +%patch6013 -p1 +%patch6014 -p1 +%patch6015 -p1 +%patch6016 -p1 +%patch6017 -p1 +%patch6018 -p1 +%patch6019 -p1 +%patch6020 -p1 +%patch6021 -p1 +%patch6022 -p1 +%patch6023 -p1 +%patch6024 -p1 + +%patch9004 -p1 +%patch9005 -p1 +%patch9006 -p1 + +autoreconf +pushd pam_ssh_agent_auth-0.10.3 +autoreconf +popd + +%build +CFLAGS="$RPM_OPT_FLAGS -fvisibility=hidden"; export CFLAGS + +%ifarch s390 s390x sparc sparcv9 sparc64 +CFLAGS="$CFLAGS -fPIC" +%else +CFLAGS="$CFLAGS -fpic" +%endif +SAVE_LDFLAGS="$LDFLAGS" +LDFLAGS="$LDFLAGS -pie -z relro -z now" + +export CFLAGS +export LDFLAGS + +if test -r /etc/profile.d/krb5-devel.sh ; then + source /etc/profile.d/krb5-devel.sh +fi +krb5_prefix=`krb5-config --prefix` +if test "$krb5_prefix" != "%{_prefix}" ; then + CPPFLAGS="$CPPFLAGS -I${krb5_prefix}/include -I${krb5_prefix}/include/gssapi"; export CPPFLAGS + CFLAGS="$CFLAGS -I${krb5_prefix}/include -I${krb5_prefix}/include/gssapi" + LDFLAGS="$LDFLAGS -L${krb5_prefix}/%{_lib}"; export LDFLAGS +else + krb5_prefix= + CPPFLAGS="-I%{_includedir}/gssapi"; export CPPFLAGS + CFLAGS="$CFLAGS -I%{_includedir}/gssapi" +fi + +%configure \ + --sysconfdir=%{_sysconfdir}/ssh --libexecdir=%{_libexecdir}/openssh \ + --datadir=%{_datadir}/openssh --with-default-path=/usr/local/bin:/usr/bin \ + --with-superuser-path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin \ + --with-privsep-path=%{_var}/empty/sshd -disable-strip \ + --enable-vendor-patchlevel="FC-7.8p1-3" \ + --without-zlib-version-check --with-ssl-engine --with-ipaddr-display \ + --with-pie=no --without-hardening --with-systemd --with-default-pkcs11-provider=yes \ + --with-ldap --with-pam --with-selinux --with-audit=linux --with-sandbox=seccomp_filter \ + --with-kerberos5${krb5_prefix:+=${krb5_prefix}} --with-libedit + +make +gtk2=yes + +pushd contrib +if [ $gtk2 = yes ] ; then + CFLAGS="$CFLAGS %{?__global_ldflags}" \ + make gnome-ssh-askpass2 + mv gnome-ssh-askpass2 gnome-ssh-askpass +else + CFLAGS="$CFLAGS %{?__global_ldflags}" + make gnome-ssh-askpass1 + mv gnome-ssh-askpass1 gnome-ssh-askpass +fi +popd + +pushd pam_ssh_agent_auth-0.10.3 +LDFLAGS="$SAVE_LDFLAGS" +%configure --with-selinux --libexecdir=/%{_libdir}/security --with-mantype=man +make +popd + +%global __spec_install_post \ + %%{?__debug_package:%%{__debug_install_post}} %%{__arch_install_post} %%{__os_install_post} \ + fipshmac -d $RPM_BUILD_ROOT%{_libdir}/fipscheck $RPM_BUILD_ROOT%{_bindir}/ssh $RPM_BUILD_ROOT%{_sbindir}/sshd \ +%{nil} + +%check +#to run tests use "--with check" +%if %{?_with_check:1}%{!?_with_check:0} +make tests +%endif + +%install +mkdir -p -m755 $RPM_BUILD_ROOT%{_sysconfdir}/ssh +mkdir -p -m755 $RPM_BUILD_ROOT%{_sysconfdir}/ssh/ssh_config.d +mkdir -p -m755 $RPM_BUILD_ROOT%{_libexecdir}/openssh +mkdir -p -m755 $RPM_BUILD_ROOT%{_var}/empty/sshd + +%make_install + +rm -f $RPM_BUILD_ROOT%{_sysconfdir}/ssh/ldap.conf + +mkdir -p $RPM_BUILD_ROOT/etc/pam.d/ +mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/ +mkdir -p $RPM_BUILD_ROOT%{_libexecdir}/openssh +mkdir -p $RPM_BUILD_ROOT%{_libdir}/fipscheck +install -m644 %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/sshd +install -m644 %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/ssh-keycat +install -m644 %{SOURCE7} $RPM_BUILD_ROOT/etc/sysconfig/sshd +install -m644 ssh_config_redhat $RPM_BUILD_ROOT/etc/ssh/ssh_config.d/05-redhat.conf +install -d -m755 $RPM_BUILD_ROOT/%{_unitdir} +install -m644 %{SOURCE9} $RPM_BUILD_ROOT/%{_unitdir}/sshd@.service +install -m644 %{SOURCE10} $RPM_BUILD_ROOT/%{_unitdir}/sshd.socket +install -m644 %{SOURCE11} $RPM_BUILD_ROOT/%{_unitdir}/sshd.service +install -m644 %{SOURCE12} $RPM_BUILD_ROOT/%{_unitdir}/sshd-keygen@.service +install -m644 %{SOURCE15} $RPM_BUILD_ROOT/%{_unitdir}/sshd-keygen.target +install -m744 %{SOURCE13} $RPM_BUILD_ROOT/%{_libexecdir}/openssh/sshd-keygen +install -m755 contrib/ssh-copy-id $RPM_BUILD_ROOT%{_bindir}/ +install contrib/ssh-copy-id.1 $RPM_BUILD_ROOT%{_mandir}/man1/ +install -m644 -D %{SOURCE14} $RPM_BUILD_ROOT%{_tmpfilesdir}/%{name}.conf +install contrib/gnome-ssh-askpass $RPM_BUILD_ROOT%{_libexecdir}/openssh/gnome-ssh-askpass + +ln -s gnome-ssh-askpass $RPM_BUILD_ROOT%{_libexecdir}/openssh/ssh-askpass +install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/ +install -m 755 contrib/redhat/gnome-ssh-askpass.csh $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/ +install -m 755 contrib/redhat/gnome-ssh-askpass.sh $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/ + +perl -pi -e "s|$RPM_BUILD_ROOT||g" $RPM_BUILD_ROOT%{_mandir}/man*/* + +pushd pam_ssh_agent_auth-0.10.3 +make install DESTDIR=$RPM_BUILD_ROOT +popd + +%pre +getent group ssh_keys >/dev/null || groupadd -r ssh_keys || : +getent group sshd >/dev/null || groupadd -g %{sshd_uid} -r sshd || : +getent passwd sshd >/dev/null || \ + useradd -c "Privilege-separated SSH" -u %{sshd_uid} -g sshd \ + -s /sbin/nologin -r -d /var/empty/sshd sshd 2> /dev/null || : + +%post +%systemd_post sshd.service sshd.socket + +%preun +%systemd_preun sshd.service sshd.socket + +%postun +%systemd_postun_with_restart sshd.service + +%files +%defattr(-,root,root) +%doc CREDITS INSTALL README.platform +%license LICENCE +%dir %attr(0711,root,root) %{_var}/empty/sshd +%attr(0644,root,root) %{_tmpfilesdir}/openssh.conf +%attr(0644,root,root) %config(noreplace) /etc/pam.d/ssh* +%attr(0640,root,root) %config(noreplace) /etc/sysconfig/sshd +%attr(0755,root,root) %dir %{_sysconfdir}/ssh +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/ssh/moduli +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/ssh/ssh_config +%dir %attr(0755,root,root) %{_sysconfdir}/ssh/ssh_config.d/ +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/ssh/ssh_config.d/05-redhat.conf +%attr(0644,root,root) %{_sysconfdir}/profile.d/gnome-ssh-askpass.* +%attr(0600,root,root) %config(noreplace) %{_sysconfdir}/ssh/sshd_config +%attr(0755,root,root) %{_sbindir}/sshd +%attr(0755,root,root) %{_bindir}/ssh* +%attr(0755,root,root) %{_bindir}/scp +%attr(0755,root,root) %{_bindir}/sftp +%attr(0644,root,root) %{_libdir}/fipscheck/ssh*.hmac +%attr(0755,root,root) %dir %{_libexecdir}/openssh +%attr(2555,root,ssh_keys) %{_libexecdir}/openssh/ssh-keysign +%attr(0755,root,root) %{_libexecdir}/openssh/ctr-cavstest +%attr(0755,root,root) %{_libexecdir}/openssh/ssh-cavs* +%attr(0755,root,root) %{_libexecdir}/openssh/ssh-pkcs11-helper +%attr(0755,root,root) %{_libexecdir}/openssh/ssh-ldap-* +%attr(0755,root,root) %{_libexecdir}/openssh/ssh-keycat +%attr(0755,root,root) %{_libexecdir}/openssh/ssh-askpass +%attr(0755,root,root) %{_libexecdir}/openssh/sftp-server +%attr(0755,root,root) %{_libexecdir}/openssh/sshd-keygen +%attr(0755,root,root) %{_libexecdir}/openssh/gnome-ssh-askpass +%attr(0644,root,root) %{_unitdir}/sshd* + +%files -n pam_ssh_agent_auth +%defattr(-,root,root) +%license pam_ssh_agent_auth-0.10.3/OPENSSH_LICENSE +%attr(0755,root,root) %{_libdir}/security/pam_ssh_agent_auth.so + +%files help +%defattr(-,root,root) +%doc ChangeLog OVERVIEW PROTOCOL* README README.privsep README.tun README.dns TODO openssh-lpk-openldap.schema +%doc openssh-lpk-sun.schema ldap.conf openssh-lpk-openldap.ldif openssh-lpk-sun.ldif HOWTO.ssh-keycat HOWTO.ldap-keys +%attr(0644,root,root) %{_mandir}/man1/scp.1* +%attr(0644,root,root) %{_mandir}/man1/ssh*.1* +%attr(0644,root,root) %{_mandir}/man1/sftp.1* +%attr(0644,root,root) %{_mandir}/man5/ssh*.5* +%attr(0644,root,root) %{_mandir}/man5/moduli.5* +%attr(0644,root,root) %{_mandir}/man8/ssh*.8* +%attr(0644,root,root) %{_mandir}/man8/pam_ssh_agent_auth.8* +%attr(0644,root,root) %{_mandir}/man8/sftp-server.8* + +%changelog +* Fri Sep 20 2019 openEuler Buildteam - 7.8p1-4 +- Package init diff --git a/pam_ssh_agent-rmheaders b/pam_ssh_agent-rmheaders new file mode 100644 index 0000000..06d899d --- /dev/null +++ b/pam_ssh_agent-rmheaders @@ -0,0 +1,37 @@ +authfd.c +authfd.h +atomicio.c +atomicio.h +bufaux.c +bufbn.c +buffer.h +buffer.c +cleanup.c +cipher.h +compat.h +defines.h +entropy.c +entropy.h +fatal.c +includes.h +kex.h +key.c +key.h +log.c +log.h +match.h +misc.c +misc.h +pathnames.h +platform.h +rsa.h +ssh-dss.c +ssh-rsa.c +ssh.h +ssh2.h +uidswap.c +uidswap.h +uuencode.c +uuencode.h +xmalloc.c +xmalloc.h diff --git a/pam_ssh_agent_auth-0.10.2-compat.patch b/pam_ssh_agent_auth-0.10.2-compat.patch new file mode 100644 index 0000000..6352bfa --- /dev/null +++ b/pam_ssh_agent_auth-0.10.2-compat.patch @@ -0,0 +1,939 @@ +diff -up openssh/pam_ssh_agent_auth-0.10.3/get_command_line.c.psaa-compat openssh/pam_ssh_agent_auth-0.10.3/get_command_line.c +--- openssh/pam_ssh_agent_auth-0.10.3/get_command_line.c.psaa-compat 2016-11-13 04:24:32.000000000 +0100 ++++ openssh/pam_ssh_agent_auth-0.10.3/get_command_line.c 2018-08-24 10:22:56.281930322 +0200 +@@ -27,6 +27,7 @@ + * or implied, of Jamie Beverly. + */ + ++#include + #include + #include + #include +@@ -65,8 +66,8 @@ proc_pid_cmdline(char *** inargv) + case EOF: + case '\0': + if (len > 0) { +- argv = pamsshagentauth_xrealloc(argv, count + 1, sizeof(*argv)); +- argv[count] = pamsshagentauth_xcalloc(len + 1, sizeof(*argv[count])); ++ argv = xreallocarray(argv, count + 1, sizeof(*argv)); ++ argv[count] = xcalloc(len + 1, sizeof(*argv[count])); + strncpy(argv[count++], argbuf, len); + memset(argbuf, '\0', MAX_LEN_PER_CMDLINE_ARG + 1); + len = 0; +@@ -105,9 +106,9 @@ pamsshagentauth_free_command_line(char * + { + size_t i; + for (i = 0; i < n_args; i++) +- pamsshagentauth_xfree(argv[i]); ++ free(argv[i]); + +- pamsshagentauth_xfree(argv); ++ free(argv); + return; + } + +diff -up openssh/pam_ssh_agent_auth-0.10.3/identity.h.psaa-compat openssh/pam_ssh_agent_auth-0.10.3/identity.h +--- openssh/pam_ssh_agent_auth-0.10.3/identity.h.psaa-compat 2016-11-13 04:24:32.000000000 +0100 ++++ openssh/pam_ssh_agent_auth-0.10.3/identity.h 2018-08-24 10:18:05.009393312 +0200 +@@ -30,8 +30,8 @@ + #include "openbsd-compat/sys-queue.h" + #include "xmalloc.h" + #include "log.h" +-#include "buffer.h" +-#include "key.h" ++#include "sshbuf.h" ++#include "sshkey.h" + #include "authfd.h" + #include + +@@ -41,7 +41,7 @@ typedef struct idlist Idlist; + struct identity { + TAILQ_ENTRY(identity) next; + AuthenticationConnection *ac; /* set if agent supports key */ +- Key *key; /* public/private key */ ++ struct sshkey *key; /* public/private key */ + char *filename; /* comment for agent-only keys */ + int tried; + int isprivate; /* key points to the private key */ +diff -up openssh/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c.psaa-compat openssh/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c +--- openssh/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c.psaa-compat 2018-08-24 10:18:05.007393297 +0200 ++++ openssh/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c 2018-08-24 10:18:32.937612513 +0200 +@@ -36,8 +36,8 @@ + #include "openbsd-compat/sys-queue.h" + #include "xmalloc.h" + #include "log.h" +-#include "buffer.h" +-#include "key.h" ++#include "sshbuf.h" ++#include "sshkey.h" + #include "authfd.h" + #include + #include +@@ -58,6 +58,8 @@ + #include "get_command_line.h" + extern char **environ; + ++#define PAM_SSH_AGENT_AUTH_REQUESTv1 101 ++ + /* + * Added by Jamie Beverly, ensure socket fd points to a socket owned by the user + * A cursory check is done, but to avoid race conditions, it is necessary +@@ -77,7 +79,7 @@ log_action(char ** action, size_t count) + if (count == 0) + return NULL; + +- buf = pamsshagentauth_xcalloc((count * MAX_LEN_PER_CMDLINE_ARG) + (count * 3), sizeof(*buf)); ++ buf = xcalloc((count * MAX_LEN_PER_CMDLINE_ARG) + (count * 3), sizeof(*buf)); + for (i = 0; i < count; i++) { + strcat(buf, (i > 0) ? " '" : "'"); + strncat(buf, action[i], MAX_LEN_PER_CMDLINE_ARG); +@@ -87,21 +89,25 @@ log_action(char ** action, size_t count) + } + + void +-agent_action(Buffer *buf, char ** action, size_t count) ++agent_action(struct sshbuf **buf, char ** action, size_t count) + { + size_t i; +- pamsshagentauth_buffer_init(buf); ++ int r; + +- pamsshagentauth_buffer_put_int(buf, count); ++ if ((*buf = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); ++ if ((r = sshbuf_put_u32(*buf, count)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); + + for (i = 0; i < count; i++) { +- pamsshagentauth_buffer_put_cstring(buf, action[i]); ++ if ((r = sshbuf_put_cstring(*buf, action[i])) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); + } + } + + +-void +-pamsshagentauth_session_id2_gen(Buffer * session_id2, const char * user, ++static void ++pamsshagentauth_session_id2_gen(struct sshbuf ** session_id2, const char * user, + const char * ruser, const char * servicename) + { + u_char *cookie = NULL; +@@ -114,22 +116,23 @@ pamsshagentauth_session_id2_gen(Buffer * + char ** reported_argv = NULL; + size_t count = 0; + char * action_logbuf = NULL; +- Buffer action_agentbuf; ++ struct sshbuf *action_agentbuf = NULL; + uint8_t free_logbuf = 0; + char * retc; + int32_t reti; ++ int r; + +- rnd = pamsshagentauth_arc4random(); ++ rnd = arc4random(); + cookie_len = ((uint8_t) rnd); + while (cookie_len < 16) { + cookie_len += 16; /* Add 16 bytes to the size to ensure that while the length is random, the length is always reasonable; ticket #18 */ + } + +- cookie = pamsshagentauth_xcalloc(1,cookie_len); ++ cookie = xcalloc(1, cookie_len); + + for (i = 0; i < cookie_len; i++) { + if (i % 4 == 0) { +- rnd = pamsshagentauth_arc4random(); ++ rnd = arc4random(); + } + cookie[i] = (u_char) rnd; + rnd >>= 8; +@@ -139,12 +141,13 @@ pamsshagentauth_session_id2_gen(Buffer * + if (count > 0) { + free_logbuf = 1; + action_logbuf = log_action(reported_argv, count); +- agent_action(&action_agentbuf, reported_argv, count); ++ agent_action(&action_agentbuf, reported_argv, count); + pamsshagentauth_free_command_line(reported_argv, count); + } + else { + action_logbuf = "unknown on this platform"; +- pamsshagentauth_buffer_init(&action_agentbuf); /* stays empty, means unavailable */ ++ if ((action_agentbuf = sshbuf_new()) == NULL) /* stays empty, means unavailable */ ++ fatal("%s: sshbuf_new failed", __func__); + } + + /* +@@ -161,35 +163,39 @@ pamsshagentauth_session_id2_gen(Buffer * + retc = getcwd(pwd, sizeof(pwd) - 1); + time(&ts); + +- pamsshagentauth_buffer_init(session_id2); ++ if ((*session_id2 = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); + +- pamsshagentauth_buffer_put_int(session_id2, PAM_SSH_AGENT_AUTH_REQUESTv1); +- /* pamsshagentauth_debug3("cookie: %s", pamsshagentauth_tohex(cookie, cookie_len)); */ +- pamsshagentauth_buffer_put_string(session_id2, cookie, cookie_len); +- /* pamsshagentauth_debug3("user: %s", user); */ +- pamsshagentauth_buffer_put_cstring(session_id2, user); +- /* pamsshagentauth_debug3("ruser: %s", ruser); */ +- pamsshagentauth_buffer_put_cstring(session_id2, ruser); +- /* pamsshagentauth_debug3("servicename: %s", servicename); */ +- pamsshagentauth_buffer_put_cstring(session_id2, servicename); +- /* pamsshagentauth_debug3("pwd: %s", pwd); */ +- if(retc) +- pamsshagentauth_buffer_put_cstring(session_id2, pwd); +- else +- pamsshagentauth_buffer_put_cstring(session_id2, ""); +- /* pamsshagentauth_debug3("action: %s", action_logbuf); */ +- pamsshagentauth_buffer_put_string(session_id2, action_agentbuf.buf + action_agentbuf.offset, action_agentbuf.end - action_agentbuf.offset); ++ if ((r = sshbuf_put_u32(*session_id2, PAM_SSH_AGENT_AUTH_REQUESTv1)) != 0 || ++ (r = sshbuf_put_string(*session_id2, cookie, cookie_len)) != 0 || ++ (r = sshbuf_put_cstring(*session_id2, user)) != 0 || ++ (r = sshbuf_put_cstring(*session_id2, ruser)) != 0 || ++ (r = sshbuf_put_cstring(*session_id2, servicename)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ if (retc) { ++ if ((r = sshbuf_put_cstring(*session_id2, pwd)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ } else { ++ if ((r = sshbuf_put_cstring(*session_id2, "")) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ } ++ if ((r = sshbuf_put_stringb(*session_id2, action_agentbuf)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); + if (free_logbuf) { +- pamsshagentauth_xfree(action_logbuf); +- pamsshagentauth_buffer_free(&action_agentbuf); ++ free(action_logbuf); ++ sshbuf_free(action_agentbuf); + } +- /* pamsshagentauth_debug3("hostname: %s", hostname); */ +- if(reti >= 0) +- pamsshagentauth_buffer_put_cstring(session_id2, hostname); +- else +- pamsshagentauth_buffer_put_cstring(session_id2, ""); +- /* pamsshagentauth_debug3("ts: %ld", ts); */ +- pamsshagentauth_buffer_put_int64(session_id2, (uint64_t) ts); ++ /* debug3("hostname: %s", hostname); */ ++ if (reti >= 0) { ++ if ((r = sshbuf_put_cstring(*session_id2, hostname)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ } else { ++ if ((r = sshbuf_put_cstring(*session_id2, "")) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); ++ } ++ /* debug3("ts: %ld", ts); */ ++ if ((r = sshbuf_put_u64(*session_id2, (uint64_t) ts)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); + + free(cookie); + return; +@@ -278,7 +280,8 @@ ssh_get_authentication_connection_for_ui + + auth = xmalloc(sizeof(*auth)); + auth->fd = sock; +- buffer_init(&auth->identities); ++ if ((auth->identities = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); + auth->howmany = 0; + + return auth; +@@ -287,43 +289,42 @@ ssh_get_authentication_connection_for_ui + int + pamsshagentauth_find_authorized_keys(const char * user, const char * ruser, const char * servicename) + { +- Buffer session_id2 = { 0 }; ++ struct sshbuf *session_id2 = NULL; + Identity *id; +- Key *key; ++ struct sshkey *key; + AuthenticationConnection *ac; + char *comment; + uint8_t retval = 0; + uid_t uid = getpwnam(ruser)->pw_uid; + + OpenSSL_add_all_digests(); +- pamsshagentauth_session_id2_gen(&session_id2, user, ruser, servicename); ++ pamsshagentauth_session_id2_gen(&session_id2, user, ruser, servicename); + + if ((ac = ssh_get_authentication_connection_for_uid(uid))) { +- pamsshagentauth_verbose("Contacted ssh-agent of user %s (%u)", ruser, uid); ++ verbose("Contacted ssh-agent of user %s (%u)", ruser, uid); + for (key = ssh_get_first_identity(ac, &comment, 2); key != NULL; key = ssh_get_next_identity(ac, &comment, 2)) + { + if(key != NULL) { +- id = pamsshagentauth_xcalloc(1, sizeof(*id)); ++ id = xcalloc(1, sizeof(*id)); + id->key = key; + id->filename = comment; + id->ac = ac; +- if(userauth_pubkey_from_id(ruser, id, &session_id2)) { ++ if(userauth_pubkey_from_id(ruser, id, session_id2)) { + retval = 1; + } +- pamsshagentauth_xfree(id->filename); +- pamsshagentauth_key_free(id->key); +- pamsshagentauth_xfree(id); ++ free(id->filename); ++ key_free(id->key); ++ free(id); + if(retval == 1) + break; + } + } +- pamsshagentauth_buffer_free(&session_id2); ++ sshbuf_free(session_id2); + ssh_close_authentication_connection(ac); + } + else { +- pamsshagentauth_verbose("No ssh-agent could be contacted"); ++ verbose("No ssh-agent could be contacted"); + } +- /* pamsshagentauth_xfree(session_id2); */ + EVP_cleanup(); + return retval; + } +diff -up openssh/pam_ssh_agent_auth-0.10.3/pam_ssh_agent_auth.c.psaa-compat openssh/pam_ssh_agent_auth-0.10.3/pam_ssh_agent_auth.c +--- openssh/pam_ssh_agent_auth-0.10.3/pam_ssh_agent_auth.c.psaa-compat 2018-08-24 10:18:05.008393305 +0200 ++++ openssh/pam_ssh_agent_auth-0.10.3/pam_ssh_agent_auth.c 2018-08-24 10:18:05.009393312 +0200 +@@ -104,7 +104,7 @@ pam_sm_authenticate(pam_handle_t * pamh, + * a patch 8-) + */ + #if ! HAVE___PROGNAME || HAVE_BUNDLE +- __progname = pamsshagentauth_xstrdup(servicename); ++ __progname = xstrdup(servicename); + #endif + + for(i = argc, argv_ptr = (char **) argv; i > 0; ++argv_ptr, i--) { +@@ -130,11 +130,11 @@ pam_sm_authenticate(pam_handle_t * pamh, + #endif + } + +- pamsshagentauth_log_init(__progname, log_lvl, facility, getenv("PAM_SSH_AGENT_AUTH_DEBUG") ? 1 : 0); ++ log_init(__progname, log_lvl, facility, getenv("PAM_SSH_AGENT_AUTH_DEBUG") ? 1 : 0); + pam_get_item(pamh, PAM_USER, (void *) &user); + pam_get_item(pamh, PAM_RUSER, (void *) &ruser_ptr); + +- pamsshagentauth_verbose("Beginning pam_ssh_agent_auth for user %s", user); ++ verbose("Beginning pam_ssh_agent_auth for user %s", user); + + if(ruser_ptr) { + strncpy(ruser, ruser_ptr, sizeof(ruser) - 1); +@@ -149,12 +149,12 @@ pam_sm_authenticate(pam_handle_t * pamh, + #ifdef ENABLE_SUDO_HACK + if( (strlen(sudo_service_name) > 0) && strncasecmp(servicename, sudo_service_name, sizeof(sudo_service_name) - 1) == 0 && getenv("SUDO_USER") ) { + strncpy(ruser, getenv("SUDO_USER"), sizeof(ruser) - 1 ); +- pamsshagentauth_verbose( "Using environment variable SUDO_USER (%s)", ruser ); ++ verbose( "Using environment variable SUDO_USER (%s)", ruser ); + } else + #endif + { + if( ! getpwuid(getuid()) ) { +- pamsshagentauth_verbose("Unable to getpwuid(getuid())"); ++ verbose("Unable to getpwuid(getuid())"); + goto cleanexit; + } + strncpy(ruser, getpwuid(getuid())->pw_name, sizeof(ruser) - 1); +@@ -163,11 +163,11 @@ pam_sm_authenticate(pam_handle_t * pamh, + + /* Might as well explicitely confirm the user exists here */ + if(! getpwnam(ruser) ) { +- pamsshagentauth_verbose("getpwnam(%s) failed, bailing out", ruser); ++ verbose("getpwnam(%s) failed, bailing out", ruser); + goto cleanexit; + } + if( ! getpwnam(user) ) { +- pamsshagentauth_verbose("getpwnam(%s) failed, bailing out", user); ++ verbose("getpwnam(%s) failed, bailing out", user); + goto cleanexit; + } + +@@ -177,8 +177,8 @@ pam_sm_authenticate(pam_handle_t * pamh, + */ + parse_authorized_key_file(user, authorized_keys_file_input); + } else { +- pamsshagentauth_verbose("Using default file=/etc/security/authorized_keys"); +- authorized_keys_file = pamsshagentauth_xstrdup("/etc/security/authorized_keys"); ++ verbose("Using default file=/etc/security/authorized_keys"); ++ authorized_keys_file = xstrdup("/etc/security/authorized_keys"); + } + + /* +@@ -187,19 +187,19 @@ pam_sm_authenticate(pam_handle_t * pamh, + */ + + if(user && strlen(ruser) > 0) { +- pamsshagentauth_verbose("Attempting authentication: `%s' as `%s' using %s", ruser, user, authorized_keys_file); ++ verbose("Attempting authentication: `%s' as `%s' using %s", ruser, user, authorized_keys_file); + + /* + * this pw_uid is used to validate the SSH_AUTH_SOCK, and so must be the uid of the ruser invoking the program, not the target-user + */ + if(pamsshagentauth_find_authorized_keys(user, ruser, servicename)) { /* getpwnam(ruser)->pw_uid)) { */ +- pamsshagentauth_logit("Authenticated: `%s' as `%s' using %s", ruser, user, authorized_keys_file); ++ logit("Authenticated: `%s' as `%s' using %s", ruser, user, authorized_keys_file); + retval = PAM_SUCCESS; + } else { +- pamsshagentauth_logit("Failed Authentication: `%s' as `%s' using %s", ruser, user, authorized_keys_file); ++ logit("Failed Authentication: `%s' as `%s' using %s", ruser, user, authorized_keys_file); + } + } else { +- pamsshagentauth_logit("No %s specified, cannot continue with this form of authentication", (user) ? "ruser" : "user" ); ++ logit("No %s specified, cannot continue with this form of authentication", (user) ? "ruser" : "user" ); + } + + cleanexit: +diff -up openssh/pam_ssh_agent_auth-0.10.3/pam_user_authorized_keys.c.psaa-compat openssh/pam_ssh_agent_auth-0.10.3/pam_user_authorized_keys.c +--- openssh/pam_ssh_agent_auth-0.10.3/pam_user_authorized_keys.c.psaa-compat 2016-11-13 04:24:32.000000000 +0100 ++++ openssh/pam_ssh_agent_auth-0.10.3/pam_user_authorized_keys.c 2018-08-24 10:18:05.009393312 +0200 +@@ -66,8 +66,8 @@ + #include "xmalloc.h" + #include "match.h" + #include "log.h" +-#include "buffer.h" +-#include "key.h" ++#include "sshbuf.h" ++#include "sshkey.h" + #include "misc.h" + + #include "xmalloc.h" +@@ -77,7 +77,6 @@ + #include "pathnames.h" + #include "secure_filename.h" + +-#include "identity.h" + #include "pam_user_key_allowed2.h" + + extern char *authorized_keys_file; +@@ -117,12 +116,12 @@ parse_authorized_key_file(const char *us + } else { + slash_ptr = strchr(auth_keys_file_buf, '/'); + if(!slash_ptr) +- pamsshagentauth_fatal ++ fatal + ("cannot expand tilde in path without a `/'"); + + owner_uname_len = slash_ptr - auth_keys_file_buf - 1; + if(owner_uname_len > (sizeof(owner_uname) - 1)) +- pamsshagentauth_fatal("Username too long"); ++ fatal("Username too long"); + + strncat(owner_uname, auth_keys_file_buf + 1, owner_uname_len); + if(!authorized_keys_file_allowed_owner_uid) +@@ -130,11 +129,11 @@ parse_authorized_key_file(const char *us + getpwnam(owner_uname)->pw_uid; + } + authorized_keys_file = +- pamsshagentauth_tilde_expand_filename(auth_keys_file_buf, ++ tilde_expand_filename(auth_keys_file_buf, + authorized_keys_file_allowed_owner_uid); + strncpy(auth_keys_file_buf, authorized_keys_file, + sizeof(auth_keys_file_buf) - 1); +- pamsshagentauth_xfree(authorized_keys_file) /* when we ++ free(authorized_keys_file) /* when we + percent_expand + later, we'd step + on this, so free +@@ -150,13 +149,13 @@ parse_authorized_key_file(const char *us + strncat(hostname, fqdn, strcspn(fqdn, ".")); + #endif + authorized_keys_file = +- pamsshagentauth_percent_expand(auth_keys_file_buf, "h", ++ percent_expand(auth_keys_file_buf, "h", + getpwnam(user)->pw_dir, "H", hostname, + "f", fqdn, "u", user, NULL); + } + + int +-pam_user_key_allowed(const char *ruser, Key * key) ++pam_user_key_allowed(const char *ruser, struct sshkey * key) + { + return + pamsshagentauth_user_key_allowed2(getpwuid(authorized_keys_file_allowed_owner_uid), +diff -up openssh/pam_ssh_agent_auth-0.10.3/pam_user_authorized_keys.h.psaa-compat openssh/pam_ssh_agent_auth-0.10.3/pam_user_authorized_keys.h +--- openssh/pam_ssh_agent_auth-0.10.3/pam_user_authorized_keys.h.psaa-compat 2016-11-13 04:24:32.000000000 +0100 ++++ openssh/pam_ssh_agent_auth-0.10.3/pam_user_authorized_keys.h 2018-08-24 10:18:05.010393320 +0200 +@@ -32,7 +32,7 @@ + #define _PAM_USER_KEY_ALLOWED_H + + #include "identity.h" +-int pam_user_key_allowed(const char *, Key *); ++int pam_user_key_allowed(const char *, struct sshkey *); + void parse_authorized_key_file(const char *, const char *); + + #endif +diff -up openssh/pam_ssh_agent_auth-0.10.3/pam_user_key_allowed2.c.psaa-compat openssh/pam_ssh_agent_auth-0.10.3/pam_user_key_allowed2.c +--- openssh/pam_ssh_agent_auth-0.10.3/pam_user_key_allowed2.c.psaa-compat 2016-11-13 04:24:32.000000000 +0100 ++++ openssh/pam_ssh_agent_auth-0.10.3/pam_user_key_allowed2.c 2018-08-24 10:18:05.010393320 +0200 +@@ -45,44 +45,46 @@ + #include "xmalloc.h" + #include "ssh.h" + #include "ssh2.h" +-#include "buffer.h" ++#include "sshbuf.h" + #include "log.h" + #include "compat.h" +-#include "key.h" ++#include "digest.h" ++#include "sshkey.h" + #include "pathnames.h" + #include "misc.h" + #include "secure_filename.h" + #include "uidswap.h" +- +-#include "identity.h" ++#include + + /* return 1 if user allows given key */ + /* Modified slightly from original found in auth2-pubkey.c */ + static int +-pamsshagentauth_check_authkeys_file(FILE * f, char *file, Key * key) ++pamsshagentauth_check_authkeys_file(FILE * f, char *file, struct sshkey * key) + { +- char line[SSH_MAX_PUBKEY_BYTES]; ++ char *line = NULL; + int found_key = 0; + u_long linenum = 0; +- Key *found; ++ struct sshkey *found; + char *fp; ++ size_t linesize = 0; + + found_key = 0; +- found = pamsshagentauth_key_new(key->type); ++ found = sshkey_new(key->type); + +- while(read_keyfile_line(f, file, line, sizeof(line), &linenum) != -1) { ++ while ((getline(&line, &linesize, f)) != -1) { + char *cp = NULL; /* *key_options = NULL; */ + ++ linenum++; + /* Skip leading whitespace, empty and comment lines. */ + for(cp = line; *cp == ' ' || *cp == '\t'; cp++); + if(!*cp || *cp == '\n' || *cp == '#') + continue; + +- if(pamsshagentauth_key_read(found, &cp) != 1) { ++ if (sshkey_read(found, &cp) != 0) { + /* no key? check if there are options for this key */ + int quoted = 0; + +- pamsshagentauth_verbose("user_key_allowed: check options: '%s'", cp); ++ verbose("user_key_allowed: check options: '%s'", cp); + /* key_options = cp; */ + for(; *cp && (quoted || (*cp != ' ' && *cp != '\t')); cp++) { + if(*cp == '\\' && cp[1] == '"') +@@ -92,26 +94,27 @@ pamsshagentauth_check_authkeys_file(FILE + } + /* Skip remaining whitespace. */ + for(; *cp == ' ' || *cp == '\t'; cp++); +- if(pamsshagentauth_key_read(found, &cp) != 1) { +- pamsshagentauth_verbose("user_key_allowed: advance: '%s'", cp); ++ if(sshkey_read(found, &cp) != 0) { ++ verbose("user_key_allowed: advance: '%s'", cp); + /* still no key? advance to next line */ + continue; + } + } +- if(pamsshagentauth_key_equal(found, key)) { ++ if(sshkey_equal(found, key)) { + found_key = 1; +- pamsshagentauth_logit("matching key found: file/command %s, line %lu", file, ++ logit("matching key found: file/command %s, line %lu", file, + linenum); +- fp = pamsshagentauth_key_fingerprint(found, SSH_FP_MD5, SSH_FP_HEX); +- pamsshagentauth_logit("Found matching %s key: %s", +- pamsshagentauth_key_type(found), fp); +- pamsshagentauth_xfree(fp); ++ fp = sshkey_fingerprint(found, SSH_DIGEST_SHA256, SSH_FP_BASE64); ++ logit("Found matching %s key: %s", ++ sshkey_type(found), fp); ++ free(fp); + break; + } + } +- pamsshagentauth_key_free(found); ++ free(line); ++ sshkey_free(found); + if(!found_key) +- pamsshagentauth_verbose("key not found"); ++ verbose("key not found"); + return found_key; + } + +@@ -120,19 +123,19 @@ pamsshagentauth_check_authkeys_file(FILE + * returns 1 if the key is allowed or 0 otherwise. + */ + int +-pamsshagentauth_user_key_allowed2(struct passwd *pw, Key * key, char *file) ++pamsshagentauth_user_key_allowed2(struct passwd *pw, struct sshkey * key, char *file) + { + FILE *f; + int found_key = 0; + struct stat st; +- char buf[SSH_MAX_PUBKEY_BYTES]; ++ char buf[256]; + + /* Temporarily use the user's uid. */ +- pamsshagentauth_verbose("trying public key file %s", file); ++ verbose("trying public key file %s", file); + + /* Fail not so quietly if file does not exist */ + if(stat(file, &st) < 0) { +- pamsshagentauth_verbose("File not found: %s", file); ++ verbose("File not found: %s", file); + return 0; + } + +@@ -144,7 +147,7 @@ pamsshagentauth_user_key_allowed2(struct + + if(pamsshagentauth_secure_filename(f, file, pw, buf, sizeof(buf)) != 0) { + fclose(f); +- pamsshagentauth_logit("Authentication refused: %s", buf); ++ logit("Authentication refused: %s", buf); + return 0; + } + +@@ -160,7 +163,7 @@ pamsshagentauth_user_key_allowed2(struct + int + pamsshagentauth_user_key_command_allowed2(char *authorized_keys_command, + char *authorized_keys_command_user, +- struct passwd *user_pw, Key * key) ++ struct passwd *user_pw, struct sshkey * key) + { + FILE *f; + int ok, found_key = 0; +@@ -187,44 +190,44 @@ pamsshagentauth_user_key_command_allowed + else { + pw = getpwnam(authorized_keys_command_user); + if(pw == NULL) { +- pamsshagentauth_logerror("authorized_keys_command_user \"%s\" not found: %s", ++ error("authorized_keys_command_user \"%s\" not found: %s", + authorized_keys_command_user, strerror(errno)); + return 0; + } + } + +- pamsshagentauth_temporarily_use_uid(pw); ++ temporarily_use_uid(pw); + + if(stat(authorized_keys_command, &st) < 0) { +- pamsshagentauth_logerror ++ error + ("Could not stat AuthorizedKeysCommand \"%s\": %s", + authorized_keys_command, strerror(errno)); + goto out; + } + if(pamsshagentauth_auth_secure_path + (authorized_keys_command, &st, NULL, 0, errmsg, sizeof(errmsg)) != 0) { +- pamsshagentauth_logerror("Unsafe AuthorizedKeysCommand: %s", errmsg); ++ error("Unsafe AuthorizedKeysCommand: %s", errmsg); + goto out; + } + + /* open the pipe and read the keys */ + if(pipe(p) != 0) { +- pamsshagentauth_logerror("%s: pipe: %s", __func__, strerror(errno)); ++ error("%s: pipe: %s", __func__, strerror(errno)); + goto out; + } + +- pamsshagentauth_debug("Running AuthorizedKeysCommand: \"%s\" as \"%s\" with argument: \"%s\"", ++ debug("Running AuthorizedKeysCommand: \"%s\" as \"%s\" with argument: \"%s\"", + authorized_keys_command, pw->pw_name, username); + + /* + * Don't want to call this in the child, where it can fatal() and + * run cleanup_exit() code. + */ +- pamsshagentauth_restore_uid(); ++ restore_uid(); + + switch ((pid = fork())) { + case -1: /* error */ +- pamsshagentauth_logerror("%s: fork: %s", __func__, strerror(errno)); ++ error("%s: fork: %s", __func__, strerror(errno)); + close(p[0]); + close(p[1]); + return 0; +@@ -234,13 +237,13 @@ pamsshagentauth_user_key_command_allowed + + /* do this before the setresuid so thta they can be logged */ + if((devnull = open(_PATH_DEVNULL, O_RDWR)) == -1) { +- pamsshagentauth_logerror("%s: open %s: %s", __func__, _PATH_DEVNULL, ++ error("%s: open %s: %s", __func__, _PATH_DEVNULL, + strerror(errno)); + _exit(1); + } + if(dup2(devnull, STDIN_FILENO) == -1 || dup2(p[1], STDOUT_FILENO) == -1 + || dup2(devnull, STDERR_FILENO) == -1) { +- pamsshagentauth_logerror("%s: dup2: %s", __func__, strerror(errno)); ++ error("%s: dup2: %s", __func__, strerror(errno)); + _exit(1); + } + #if defined(HAVE_SETRESGID) && !defined(BROKEN_SETRESGID) +@@ -248,7 +251,7 @@ pamsshagentauth_user_key_command_allowed + #else + if (setgid(pw->pw_gid) != 0 || setegid(pw->pw_gid) != 0) { + #endif +- pamsshagentauth_logerror("setresgid %u: %s", (u_int) pw->pw_gid, ++ error("setresgid %u: %s", (u_int) pw->pw_gid, + strerror(errno)); + _exit(1); + } +@@ -258,7 +261,7 @@ pamsshagentauth_user_key_command_allowed + #else + if (setuid(pw->pw_uid) != 0 || seteuid(pw->pw_uid) != 0) { + #endif +- pamsshagentauth_logerror("setresuid %u: %s", (u_int) pw->pw_uid, ++ error("setresuid %u: %s", (u_int) pw->pw_uid, + strerror(errno)); + _exit(1); + } +@@ -270,18 +273,18 @@ pamsshagentauth_user_key_command_allowed + + /* pretty sure this will barf because we are now suid, but since we + should't reach this anyway, I'll leave it here */ +- pamsshagentauth_logerror("AuthorizedKeysCommand %s exec failed: %s", ++ error("AuthorizedKeysCommand %s exec failed: %s", + authorized_keys_command, strerror(errno)); + _exit(127); + default: /* parent */ + break; + } + +- pamsshagentauth_temporarily_use_uid(pw); ++ temporarily_use_uid(pw); + + close(p[1]); + if((f = fdopen(p[0], "r")) == NULL) { +- pamsshagentauth_logerror("%s: fdopen: %s", __func__, strerror(errno)); ++ error("%s: fdopen: %s", __func__, strerror(errno)); + close(p[0]); + /* Don't leave zombie child */ + while(waitpid(pid, NULL, 0) == -1 && errno == EINTR); +@@ -292,22 +295,22 @@ pamsshagentauth_user_key_command_allowed + + while(waitpid(pid, &status, 0) == -1) { + if(errno != EINTR) { +- pamsshagentauth_logerror("%s: waitpid: %s", __func__, ++ error("%s: waitpid: %s", __func__, + strerror(errno)); + goto out; + } + } + if(WIFSIGNALED(status)) { +- pamsshagentauth_logerror("AuthorizedKeysCommand %s exited on signal %d", ++ error("AuthorizedKeysCommand %s exited on signal %d", + authorized_keys_command, WTERMSIG(status)); + goto out; + } else if(WEXITSTATUS(status) != 0) { +- pamsshagentauth_logerror("AuthorizedKeysCommand %s returned status %d", ++ error("AuthorizedKeysCommand %s returned status %d", + authorized_keys_command, WEXITSTATUS(status)); + goto out; + } + found_key = ok; + out: +- pamsshagentauth_restore_uid(); ++ restore_uid(); + return found_key; + } +diff -up openssh/pam_ssh_agent_auth-0.10.3/pam_user_key_allowed2.h.psaa-compat openssh/pam_ssh_agent_auth-0.10.3/pam_user_key_allowed2.h +--- openssh/pam_ssh_agent_auth-0.10.3/pam_user_key_allowed2.h.psaa-compat 2016-11-13 04:24:32.000000000 +0100 ++++ openssh/pam_ssh_agent_auth-0.10.3/pam_user_key_allowed2.h 2018-08-24 10:18:05.010393320 +0200 +@@ -32,7 +32,7 @@ + #define _PAM_USER_KEY_ALLOWED_H + + #include "identity.h" +-int pamsshagentauth_user_key_allowed2(struct passwd *, Key *, char *); +-int pamsshagentauth_user_key_command_allowed2(char *, char *, struct passwd *, Key *); ++int pamsshagentauth_user_key_allowed2(struct passwd *, struct sshkey *, char *); ++int pamsshagentauth_user_key_command_allowed2(char *, char *, struct passwd *, struct sshkey *); + + #endif +diff -up openssh/pam_ssh_agent_auth-0.10.3/secure_filename.c.psaa-compat openssh/pam_ssh_agent_auth-0.10.3/secure_filename.c +--- openssh/pam_ssh_agent_auth-0.10.3/secure_filename.c.psaa-compat 2016-11-13 04:24:32.000000000 +0100 ++++ openssh/pam_ssh_agent_auth-0.10.3/secure_filename.c 2018-08-24 10:18:05.010393320 +0200 +@@ -53,8 +53,8 @@ + #include "xmalloc.h" + #include "match.h" + #include "log.h" +-#include "buffer.h" +-#include "key.h" ++#include "sshbuf.h" ++#include "sshkey.h" + #include "misc.h" + + +@@ -80,7 +80,7 @@ pamsshagentauth_auth_secure_path(const c + int comparehome = 0; + struct stat st; + +- pamsshagentauth_verbose("auth_secure_filename: checking for uid: %u", uid); ++ verbose("auth_secure_filename: checking for uid: %u", uid); + + if (realpath(name, buf) == NULL) { + snprintf(err, errlen, "realpath %s failed: %s", name, +@@ -115,9 +115,9 @@ pamsshagentauth_auth_secure_path(const c + snprintf(err, errlen, "dirname() failed"); + return -1; + } +- pamsshagentauth_strlcpy(buf, cp, sizeof(buf)); ++ strlcpy(buf, cp, sizeof(buf)); + +- pamsshagentauth_verbose("secure_filename: checking '%s'", buf); ++ verbose("secure_filename: checking '%s'", buf); + if (stat(buf, &st) < 0 || + (st.st_uid != 0 && st.st_uid != uid) || + (st.st_mode & 022) != 0) { +@@ -128,7 +128,7 @@ pamsshagentauth_auth_secure_path(const c + + /* If are passed the homedir then we can stop */ + if (comparehome && strcmp(homedir, buf) == 0) { +- pamsshagentauth_verbose("secure_filename: terminating check at '%s'", ++ verbose("secure_filename: terminating check at '%s'", + buf); + break; + } +diff -up openssh/pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.c.psaa-compat openssh/pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.c +--- openssh/pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.c.psaa-compat 2016-11-13 04:24:32.000000000 +0100 ++++ openssh/pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.c 2018-08-24 10:22:13.202657025 +0200 +@@ -37,10 +37,11 @@ + #include "xmalloc.h" + #include "ssh.h" + #include "ssh2.h" +-#include "buffer.h" ++#include "sshbuf.h" + #include "log.h" + #include "compat.h" +-#include "key.h" ++#include "sshkey.h" ++#include "ssherr.h" + #include "pathnames.h" + #include "misc.h" + #include "secure_filename.h" +@@ -48,54 +48,59 @@ + #include "identity.h" + #include "pam_user_authorized_keys.h" + ++#define SSH2_MSG_USERAUTH_TRUST_REQUEST 54 ++ + /* extern u_char *session_id2; + extern uint8_t session_id_len; + */ + + int +-userauth_pubkey_from_id(const char *ruser, Identity * id, Buffer * session_id2) ++userauth_pubkey_from_id(const char *ruser, Identity * id, struct sshbuf * session_id2) + { +- Buffer b = { 0 }; ++ struct sshbuf *b = NULL; + char *pkalg = NULL; + u_char *pkblob = NULL, *sig = NULL; +- u_int blen = 0, slen = 0; ++ size_t blen = 0, slen = 0; +- int authenticated = 0; ++ int r, authenticated = 0; + +- pkalg = (char *) key_ssh_name(id->key); ++ pkalg = (char *) sshkey_ssh_name(id->key); + + /* first test if this key is even allowed */ + if(! pam_user_key_allowed(ruser, id->key)) +- goto user_auth_clean_exit; ++ goto user_auth_clean_exit_without_buffer; + +- if(pamsshagentauth_key_to_blob(id->key, &pkblob, &blen) == 0) +- goto user_auth_clean_exit; ++ if(sshkey_to_blob(id->key, &pkblob, &blen) != 0) ++ goto user_auth_clean_exit_without_buffer; + + /* construct packet to sign and test */ +- pamsshagentauth_buffer_init(&b); ++ if ((b = sshbuf_new()) == NULL) ++ fatal("%s: sshbuf_new failed", __func__); + +- pamsshagentauth_buffer_put_string(&b, session_id2->buf + session_id2->offset, session_id2->end - session_id2->offset); +- pamsshagentauth_buffer_put_char(&b, SSH2_MSG_USERAUTH_TRUST_REQUEST); +- pamsshagentauth_buffer_put_cstring(&b, ruser); +- pamsshagentauth_buffer_put_cstring(&b, "pam_ssh_agent_auth"); +- pamsshagentauth_buffer_put_cstring(&b, "publickey"); +- pamsshagentauth_buffer_put_char(&b, 1); +- pamsshagentauth_buffer_put_cstring(&b, pkalg); +- pamsshagentauth_buffer_put_string(&b, pkblob, blen); ++ if ((r = sshbuf_put_string(b, sshbuf_ptr(session_id2), sshbuf_len(session_id2))) != 0 || ++ (r = sshbuf_put_u8(b, SSH2_MSG_USERAUTH_TRUST_REQUEST)) != 0 || ++ (r = sshbuf_put_cstring(b, ruser)) != 0 || ++ (r = sshbuf_put_cstring(b, "pam_ssh_agent_auth")) != 0 || ++ (r = sshbuf_put_cstring(b, "publickey")) != 0 || ++ (r = sshbuf_put_u8(b, 1)) != 0 || ++ (r = sshbuf_put_cstring(b, pkalg)) != 0 || ++ (r = sshbuf_put_string(b, pkblob, blen)) != 0) ++ fatal("%s: buffer error: %s", __func__, ssh_err(r)); + +- if(ssh_agent_sign(id->ac, id->key, &sig, &slen, pamsshagentauth_buffer_ptr(&b), pamsshagentauth_buffer_len(&b)) != 0) ++ if (ssh_agent_sign(id->ac, id->key, &sig, &slen, sshbuf_ptr(b), sshbuf_len(b)) != 0) + goto user_auth_clean_exit; + + /* test for correct signature */ +- if(pamsshagentauth_key_verify(id->key, sig, slen, pamsshagentauth_buffer_ptr(&b), pamsshagentauth_buffer_len(&b)) == 1) ++ if (sshkey_verify(id->key, sig, slen, sshbuf_ptr(b), sshbuf_len(b), NULL, 0) == 0) + authenticated = 1; + + user_auth_clean_exit: + /* if(&b != NULL) */ +- pamsshagentauth_buffer_free(&b); ++ sshbuf_free(b); ++ user_auth_clean_exit_without_buffer: + if(sig != NULL) +- pamsshagentauth_xfree(sig); ++ free(sig); + if(pkblob != NULL) +- pamsshagentauth_xfree(pkblob); ++ free(pkblob); + CRYPTO_cleanup_all_ex_data(); + return authenticated; + } +diff -up openssh/pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.h.psaa-compat openssh/pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.h +--- openssh/pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.h.psaa-compat 2016-11-13 04:24:32.000000000 +0100 ++++ openssh/pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.h 2018-08-24 10:18:05.010393320 +0200 +@@ -31,7 +31,7 @@ + #ifndef _USERAUTH_PUBKEY_FROM_ID_H + #define _USERAUTH_PUBKEY_FROM_ID_H + +-#include +-int userauth_pubkey_from_id(const char *, Identity *, Buffer *); ++#include "identity.h" ++int userauth_pubkey_from_id(const char *, Identity *, struct sshbuf *); + + #endif +diff -up openssh/pam_ssh_agent_auth-0.10.3/uuencode.c.psaa-compat openssh/pam_ssh_agent_auth-0.10.3/uuencode.c +--- openssh/pam_ssh_agent_auth-0.10.3/uuencode.c.psaa-compat 2016-11-13 04:24:32.000000000 +0100 ++++ openssh/pam_ssh_agent_auth-0.10.3/uuencode.c 2018-08-24 10:18:05.010393320 +0200 +@@ -56,7 +56,7 @@ pamsshagentauth_uudecode(const char *src + /* and remove trailing whitespace because __b64_pton needs this */ + *p = '\0'; + len = pamsshagentauth___b64_pton(encoded, target, targsize); +- pamsshagentauth_xfree(encoded); ++ xfree(encoded); + return len; + } + +@@ -70,7 +70,7 @@ pamsshagentauth_dump_base64(FILE *fp, co + fprintf(fp, "dump_base64: len > 65536\n"); + return; + } +- buf = pamsshagentauth_xmalloc(2*len); ++ buf = malloc(2*len); + n = pamsshagentauth_uuencode(data, len, buf, 2*len); + for (i = 0; i < n; i++) { + fprintf(fp, "%c", buf[i]); +@@ -79,5 +79,5 @@ pamsshagentauth_dump_base64(FILE *fp, co + } + if (i % 70 != 69) + fprintf(fp, "\n"); +- pamsshagentauth_xfree(buf); ++ free(buf); + } diff --git a/pam_ssh_agent_auth-0.10.2-dereference.patch b/pam_ssh_agent_auth-0.10.2-dereference.patch new file mode 100644 index 0000000..bf49c37 --- /dev/null +++ b/pam_ssh_agent_auth-0.10.2-dereference.patch @@ -0,0 +1,20 @@ +diff --git a/pam_ssh_agent_auth-0.10.2/pam_user_authorized_keys.c b/pam_ssh_agent_auth-0.10.2/pam_user_authorized_keys.c +--- a/pam_ssh_agent_auth-0.10.2/pam_user_authorized_keys.c ++++ b/pam_ssh_agent_auth-0.10.2/pam_user_authorized_keys.c +@@ -158,11 +158,12 @@ parse_authorized_key_file(const char *user, + int + pam_user_key_allowed(const char *ruser, struct sshkey * key) + { ++ struct passwd *pw; + return +- pamsshagentauth_user_key_allowed2(getpwuid(authorized_keys_file_allowed_owner_uid), +- key, authorized_keys_file) +- || pamsshagentauth_user_key_allowed2(getpwuid(0), key, +- authorized_keys_file) ++ ( (pw = getpwuid(authorized_keys_file_allowed_owner_uid)) && ++ pamsshagentauth_user_key_allowed2(pw, key, authorized_keys_file)) ++ || ((pw = getpwuid(0)) && ++ pamsshagentauth_user_key_allowed2(pw, key, authorized_keys_file)) + || pamsshagentauth_user_key_command_allowed2(authorized_keys_command, + authorized_keys_command_user, + getpwnam(ruser), key); diff --git a/pam_ssh_agent_auth-0.10.3-seteuid.patch b/pam_ssh_agent_auth-0.10.3-seteuid.patch new file mode 100644 index 0000000..be1f8e5 --- /dev/null +++ b/pam_ssh_agent_auth-0.10.3-seteuid.patch @@ -0,0 +1,37 @@ +diff -up openssh-7.4p1/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c.psaa-seteuid openssh-7.4p1/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c +--- openssh-7.4p1/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c.psaa-seteuid 2017-02-07 15:41:53.172334151 +0100 ++++ openssh-7.4p1/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c 2017-02-07 15:41:53.174334149 +0100 +@@ -238,17 +238,26 @@ ssh_get_authentication_socket_for_uid(ui + } + + errno = 0; +- seteuid(uid); /* To ensure a race condition is not used to circumvent the stat +- above, we will temporarily drop UID to the caller */ +- if (connect(sock, (struct sockaddr *)&sunaddr, sizeof sunaddr) < 0) { ++ /* To ensure a race condition is not used to circumvent the stat ++ above, we will temporarily drop UID to the caller */ ++ if (seteuid(uid) == -1) { + close(sock); +- if(errno == EACCES) +- fatal("MAJOR SECURITY WARNING: uid %lu made a deliberate and malicious attempt to open an agent socket owned by another user", (unsigned long) uid); ++ error("seteuid(%lu) failed with error: %s", ++ (unsigned long) uid, strerror(errno)); + return -1; + } ++ if (connect(sock, (struct sockaddr *)&sunaddr, sizeof sunaddr) < 0) { ++ close(sock); ++ sock = -1; ++ if(errno == EACCES) ++ fatal("MAJOR SECURITY WARNING: uid %lu made a deliberate and malicious attempt to open an agent socket owned by another user", (unsigned long) uid); ++ } + +- seteuid(0); /* we now continue the regularly scheduled programming */ +- ++ /* we now continue the regularly scheduled programming */ ++ if (0 != seteuid(0)) { ++ fatal("setuid(0) failed with error: %s", strerror(errno)); ++ return -1; ++ } + return sock; + } + diff --git a/pam_ssh_agent_auth-0.10.3.tar.bz2 b/pam_ssh_agent_auth-0.10.3.tar.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..c41c269ffc7aced58221549472f42df45acea2f9 GIT binary patch literal 1066393 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

    WF))uy6)PTakF|rHL!Ilsf!9W>{;==;N7uYZu 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 !W6=gr$6dq@kZ)v8Uza5GsQnyS^APfw1b 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

    B((#hb{jq{3^}mZ%9k6nu15S+}Q(?C83PQ*|1 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

    LF8H9v=I- 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�l0O2zQO|Y?6Gg#=Nd`gP@a3$q*BD$$@U=MH( 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

    Z~G5 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⋙stp#oM({k8=*+>Rnj*m{z%`^3h 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%0AhA@I!Q_KD~`&PA~t23d^pP`s2CU@@H*{0yJx} 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 W56|;w>q;U2_`8xR!i0c>4%cV~dN2?G literal 0 HcmV?d00001 diff --git a/pam_ssh_agent_auth-0.9.2-visibility.patch b/pam_ssh_agent_auth-0.9.2-visibility.patch new file mode 100644 index 0000000..aea068d --- /dev/null +++ b/pam_ssh_agent_auth-0.9.2-visibility.patch @@ -0,0 +1,21 @@ +diff -up openssh-7.1p2/pam_ssh_agent_auth-0.10.2/pam_ssh_agent_auth.c.psaa-visibility openssh-7.1p2/pam_ssh_agent_auth-0.10.2/pam_ssh_agent_auth.c +--- openssh-7.1p2/pam_ssh_agent_auth-0.10.2/pam_ssh_agent_auth.c.psaa-visibility 2014-03-31 19:35:17.000000000 +0200 ++++ openssh-7.1p2/pam_ssh_agent_auth-0.10.2/pam_ssh_agent_auth.c 2016-01-22 15:22:40.984469774 +0100 +@@ -72,7 +72,7 @@ char *__progname; + extern char *__progname; + #endif + +-PAM_EXTERN int ++PAM_EXTERN int __attribute__ ((visibility ("default"))) + pam_sm_authenticate(pam_handle_t * pamh, int flags, int argc, const char **argv) + { + char **argv_ptr; +@@ -214,7 +214,7 @@ cleanexit: + } + + +-PAM_EXTERN int ++PAM_EXTERN int __attribute__ ((visibility ("default"))) + pam_sm_setcred(pam_handle_t * pamh, int flags, int argc, const char **argv) + { + UNUSED(pamh); diff --git a/pam_ssh_agent_auth-0.9.3-agent_structure.patch b/pam_ssh_agent_auth-0.9.3-agent_structure.patch new file mode 100644 index 0000000..1f2c02c --- /dev/null +++ b/pam_ssh_agent_auth-0.9.3-agent_structure.patch @@ -0,0 +1,96 @@ +diff -up openssh/pam_ssh_agent_auth-0.10.3/identity.h.psaa-agent openssh/pam_ssh_agent_auth-0.10.3/identity.h +--- openssh/pam_ssh_agent_auth-0.10.3/identity.h.psaa-agent 2016-11-13 04:24:32.000000000 +0100 ++++ openssh/pam_ssh_agent_auth-0.10.3/identity.h 2017-09-27 14:25:49.421739027 +0200 +@@ -38,6 +38,12 @@ + typedef struct identity Identity; + typedef struct idlist Idlist; + ++typedef struct { ++ int fd; ++ struct sshbuf *identities; ++ int howmany; ++} AuthenticationConnection; ++ + struct identity { + TAILQ_ENTRY(identity) next; + AuthenticationConnection *ac; /* set if agent supports key */ +diff -up openssh/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c.psaa-agent openssh/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c +--- openssh/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c.psaa-agent 2017-09-27 14:25:49.420739021 +0200 ++++ openssh/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c 2017-09-27 14:25:49.421739027 +0200 +@@ -39,6 +39,7 @@ + #include "sshbuf.h" + #include "sshkey.h" + #include "authfd.h" ++#include "ssherr.h" + #include + #include + #include "ssh2.h" +@@ -291,36 +292,43 @@ pamsshagentauth_find_authorized_keys(con + { + struct sshbuf *session_id2 = NULL; + Identity *id; +- struct sshkey *key; + AuthenticationConnection *ac; +- char *comment; + uint8_t retval = 0; + uid_t uid = getpwnam(ruser)->pw_uid; ++ struct ssh_identitylist *idlist; ++ int r; ++ unsigned int i; + + OpenSSL_add_all_digests(); + pamsshagentauth_session_id2_gen(&session_id2, user, ruser, servicename); + + if ((ac = ssh_get_authentication_connection_for_uid(uid))) { + verbose("Contacted ssh-agent of user %s (%u)", ruser, uid); +- for (key = ssh_get_first_identity(ac, &comment, 2); key != NULL; key = ssh_get_next_identity(ac, &comment, 2)) +- { +- if(key != NULL) { ++ if ((r = ssh_fetch_identitylist(ac->fd, &idlist)) != 0) { ++ if (r != SSH_ERR_AGENT_NO_IDENTITIES) ++ fprintf(stderr, "error fetching identities for " ++ "protocol %d: %s\n", 2, ssh_err(r)); ++ } else { ++ for (i = 0; i < idlist->nkeys; i++) ++ { ++ if (idlist->keys[i] != NULL) { + id = xcalloc(1, sizeof(*id)); +- id->key = key; +- id->filename = comment; ++ id->key = idlist->keys[i]; ++ id->filename = idlist->comments[i]; + id->ac = ac; + if(userauth_pubkey_from_id(ruser, id, session_id2)) { + retval = 1; + } +- free(id->filename); +- key_free(id->key); + free(id); + if(retval == 1) + break; +- } +- } ++ } ++ } +- sshbuf_free(session_id2); +- ssh_close_authentication_connection(ac); ++ sshbuf_free(session_id2); ++ ssh_free_identitylist(idlist); ++ } ++ ssh_close_authentication_socket(ac->fd); ++ free(ac); + } + else { + verbose("No ssh-agent could be contacted"); +diff -up openssh/pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.c.psaa-agent openssh/pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.c +--- openssh/pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.c.psaa-agent 2017-09-27 14:25:49.420739021 +0200 ++++ openssh/pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.c 2017-09-27 14:25:49.422739032 +0200 +@@ -84,7 +85,7 @@ userauth_pubkey_from_id(const char *ruse + (r = sshbuf_put_string(b, pkblob, blen)) != 0) + fatal("%s: buffer error: %s", __func__, ssh_err(r)); + +- if (ssh_agent_sign(id->ac, id->key, &sig, &slen, sshbuf_ptr(b), sshbuf_len(b)) != 0) ++ if (ssh_agent_sign(id->ac->fd, id->key, &sig, &slen, sshbuf_ptr(b), sshbuf_len(b), NULL, 0) != 0) + goto user_auth_clean_exit; + + /* test for correct signature */ diff --git a/pam_ssh_agent_auth-0.9.3-build.patch b/pam_ssh_agent_auth-0.9.3-build.patch new file mode 100644 index 0000000..f269b97 --- /dev/null +++ b/pam_ssh_agent_auth-0.9.3-build.patch @@ -0,0 +1,196 @@ +diff -up openssh-7.4p1/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c.psaa-build openssh-7.4p1/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c +--- openssh-7.4p1/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c.psaa-build 2016-11-13 04:24:32.000000000 +0100 ++++ openssh-7.4p1/pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c 2017-02-07 14:29:41.626116675 +0100 +@@ -43,12 +43,31 @@ + #include + #include "ssh2.h" + #include "misc.h" ++#include "ssh.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + #include "userauth_pubkey_from_id.h" + #include "identity.h" + #include "get_command_line.h" + extern char **environ; + ++/* ++ * Added by Jamie Beverly, ensure socket fd points to a socket owned by the user ++ * A cursory check is done, but to avoid race conditions, it is necessary ++ * to drop effective UID when connecting to the socket. ++ * ++ * If the cause of error is EACCES, because we verified we would not have that ++ * problem initially, we can safely assume that somebody is attempting to find a ++ * race condition; so a more "direct" log message is generated. ++ */ ++ + static char * + log_action(char ** action, size_t count) + { +@@ -85,7 +104,7 @@ void + pamsshagentauth_session_id2_gen(Buffer * session_id2, const char * user, + const char * ruser, const char * servicename) + { +- char *cookie = NULL; ++ u_char *cookie = NULL; + uint8_t i = 0; + uint32_t rnd = 0; + uint8_t cookie_len; +@@ -112,7 +131,7 @@ pamsshagentauth_session_id2_gen(Buffer * + if (i % 4 == 0) { + rnd = pamsshagentauth_arc4random(); + } +- cookie[i] = (char) rnd; ++ cookie[i] = (u_char) rnd; + rnd >>= 8; + } + +@@ -177,6 +196,86 @@ pamsshagentauth_session_id2_gen(Buffer * + } + + int ++ssh_get_authentication_socket_for_uid(uid_t uid) ++{ ++ const char *authsocket; ++ int sock; ++ struct sockaddr_un sunaddr; ++ struct stat sock_st; ++ ++ authsocket = getenv(SSH_AUTHSOCKET_ENV_NAME); ++ if (!authsocket) ++ return -1; ++ ++ /* Advisory only; seteuid ensures no race condition; but will only log if we see EACCES */ ++ if( stat(authsocket,&sock_st) == 0) { ++ if(uid != 0 && sock_st.st_uid != uid) { ++ fatal("uid %lu attempted to open an agent socket owned by uid %lu", (unsigned long) uid, (unsigned long) sock_st.st_uid); ++ return -1; ++ } ++ } ++ ++ /* ++ * Ensures that the EACCES tested for below can _only_ happen if somebody ++ * is attempting to race the stat above to bypass authentication. ++ */ ++ if( (sock_st.st_mode & S_IWUSR) != S_IWUSR || (sock_st.st_mode & S_IRUSR) != S_IRUSR) { ++ error("ssh-agent socket has incorrect permissions for owner"); ++ return -1; ++ } ++ ++ sunaddr.sun_family = AF_UNIX; ++ strlcpy(sunaddr.sun_path, authsocket, sizeof(sunaddr.sun_path)); ++ ++ sock = socket(AF_UNIX, SOCK_STREAM, 0); ++ if (sock < 0) ++ return -1; ++ ++ /* close on exec */ ++ if (fcntl(sock, F_SETFD, 1) == -1) { ++ close(sock); ++ return -1; ++ } ++ ++ errno = 0; ++ seteuid(uid); /* To ensure a race condition is not used to circumvent the stat ++ above, we will temporarily drop UID to the caller */ ++ if (connect(sock, (struct sockaddr *)&sunaddr, sizeof sunaddr) < 0) { ++ close(sock); ++ if(errno == EACCES) ++ fatal("MAJOR SECURITY WARNING: uid %lu made a deliberate and malicious attempt to open an agent socket owned by another user", (unsigned long) uid); ++ return -1; ++ } ++ ++ seteuid(0); /* we now continue the regularly scheduled programming */ ++ ++ return sock; ++} ++ ++AuthenticationConnection * ++ssh_get_authentication_connection_for_uid(uid_t uid) ++{ ++ AuthenticationConnection *auth; ++ int sock; ++ ++ sock = ssh_get_authentication_socket_for_uid(uid); ++ ++ /* ++ * Fail if we couldn't obtain a connection. This happens if we ++ * exited due to a timeout. ++ */ ++ if (sock < 0) ++ return NULL; ++ ++ auth = xmalloc(sizeof(*auth)); ++ auth->fd = sock; ++ buffer_init(&auth->identities); ++ auth->howmany = 0; ++ ++ return auth; ++} ++ ++int + pamsshagentauth_find_authorized_keys(const char * user, const char * ruser, const char * servicename) + { + Buffer session_id2 = { 0 }; +@@ -190,7 +289,7 @@ pamsshagentauth_find_authorized_keys(con + OpenSSL_add_all_digests(); + pamsshagentauth_session_id2_gen(&session_id2, user, ruser, servicename); + +- if ((ac = ssh_get_authentication_connection(uid))) { ++ if ((ac = ssh_get_authentication_connection_for_uid(uid))) { + pamsshagentauth_verbose("Contacted ssh-agent of user %s (%u)", ruser, uid); + for (key = ssh_get_first_identity(ac, &comment, 2); key != NULL; key = ssh_get_next_identity(ac, &comment, 2)) + { +diff -up openssh-7.4p1/pam_ssh_agent_auth-0.10.3/Makefile.in.psaa-build openssh-7.4p1/pam_ssh_agent_auth-0.10.3/Makefile.in +--- openssh-7.4p1/pam_ssh_agent_auth-0.10.3/Makefile.in.psaa-build 2016-11-13 04:24:32.000000000 +0100 ++++ openssh-7.4p1/pam_ssh_agent_auth-0.10.3/Makefile.in 2017-02-07 14:40:14.407566921 +0100 +@@ -52,7 +52,7 @@ PATHS= + CC=@CC@ + LD=@LD@ + CFLAGS=@CFLAGS@ +-CPPFLAGS=-I. -I$(srcdir) @CPPFLAGS@ $(PATHS) @DEFS@ ++CPPFLAGS=-I.. -I$(srcdir) @CPPFLAGS@ $(PATHS) @DEFS@ + LIBS=@LIBS@ + AR=@AR@ + AWK=@AWK@ +@@ -61,7 +61,7 @@ INSTALL=@INSTALL@ + PERL=@PERL@ + SED=@SED@ + ENT=@ENT@ +-LDFLAGS=-L. -Lopenbsd-compat/ @LDFLAGS@ ++LDFLAGS=-L.. -L../openbsd-compat/ @LDFLAGS@ + LDFLAGS_SHARED = @LDFLAGS_SHARED@ + EXEEXT=@EXEEXT@ + +@@ -74,7 +74,7 @@ SSHOBJS=xmalloc.o atomicio.o authfd.o bu + + ED25519OBJS=ed25519-donna/ed25519.o + +-PAM_SSH_AGENT_AUTH_OBJS=pam_user_key_allowed2.o iterate_ssh_agent_keys.o userauth_pubkey_from_id.o pam_user_authorized_keys.o get_command_line.o ++PAM_SSH_AGENT_AUTH_OBJS=pam_user_key_allowed2.o iterate_ssh_agent_keys.o userauth_pubkey_from_id.o pam_user_authorized_keys.o get_command_line.o secure_filename.o + + + MANPAGES_IN = pam_ssh_agent_auth.pod +@@ -94,13 +94,13 @@ $(PAM_MODULES): Makefile.in config.h + .c.o: + $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + +-LIBCOMPAT=openbsd-compat/libopenbsd-compat.a ++LIBCOMPAT=../openbsd-compat/libopenbsd-compat.a + $(LIBCOMPAT): always + (cd openbsd-compat && $(MAKE)) + always: + +-pam_ssh_agent_auth.so: $(LIBCOMPAT) $(SSHOBJS) $(ED25519OBJS) $(PAM_SSH_AGENT_AUTH_OBJS) pam_ssh_agent_auth.o +- $(LD) $(LDFLAGS_SHARED) -o $@ $(SSHOBJS) $(ED25519OBJS) $(PAM_SSH_AGENT_AUTH_OBJS) $(LDFLAGS) -lopenbsd-compat pam_ssh_agent_auth.o $(LIBS) -lpam ++pam_ssh_agent_auth.so: $(PAM_SSH_AGENT_AUTH_OBJS) pam_ssh_agent_auth.o ../uidswap.o ++ $(LD) $(LDFLAGS_SHARED) -o $@ $(PAM_SSH_AGENT_AUTH_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat pam_ssh_agent_auth.o ../uidswap.o $(LIBS) -lpam + + $(MANPAGES): $(MANPAGES_IN) + pod2man --section=8 --release=v0.10.3 --name=pam_ssh_agent_auth --official --center "PAM" pam_ssh_agent_auth.pod > pam_ssh_agent_auth.8 diff --git a/ssh-keycat.pam b/ssh-keycat.pam new file mode 100644 index 0000000..d7a3f67 --- /dev/null +++ b/ssh-keycat.pam @@ -0,0 +1,8 @@ +#%PAM-1.0 +# pam_selinux.so close should be the first session rule +session required pam_selinux.so close +session required pam_loginuid.so +# pam_selinux.so open should only be followed by sessions to be executed in the user context +session required pam_selinux.so open env_params +session required pam_namespace.so + diff --git a/sshd-keygen b/sshd-keygen new file mode 100644 index 0000000..141814c --- /dev/null +++ b/sshd-keygen @@ -0,0 +1,40 @@ +#!/bin/bash + +# Create the host keys for the OpenSSH server. +KEYTYPE=$1 +case $KEYTYPE in + "dsa") ;& # disabled in FIPS + "ed25519") + FIPS=/proc/sys/crypto/fips_enabled + if [[ -r "$FIPS" && $(cat $FIPS) == "1" ]]; then + exit 0 + fi ;; + "rsa") ;; # always ok + "ecdsa") ;; + *) # wrong argument + exit 12 ;; +esac +KEY=/etc/ssh/ssh_host_${KEYTYPE}_key + +KEYGEN=/usr/bin/ssh-keygen +if [[ ! -x $KEYGEN ]]; then + exit 13 +fi + +# remove old keys +rm -f $KEY{,.pub} + +# create new keys +if ! $KEYGEN -q -t $KEYTYPE -f $KEY -C '' -N '' >&/dev/null; then + exit 1 +fi + +# sanitize permissions +/usr/bin/chgrp ssh_keys $KEY +/usr/bin/chmod 640 $KEY +/usr/bin/chmod 644 $KEY.pub +if [[ -x /usr/sbin/restorecon ]]; then + /usr/sbin/restorecon $KEY{,.pub} +fi + +exit 0 diff --git a/sshd-keygen.target b/sshd-keygen.target new file mode 100644 index 0000000..9efb4e2 --- /dev/null +++ b/sshd-keygen.target @@ -0,0 +1,5 @@ +[Unit] +Wants=sshd-keygen@rsa.service +Wants=sshd-keygen@ecdsa.service +Wants=sshd-keygen@ed25519.service +PartOf=sshd.service diff --git a/sshd-keygen@.service b/sshd-keygen@.service new file mode 100644 index 0000000..f27f729 --- /dev/null +++ b/sshd-keygen@.service @@ -0,0 +1,11 @@ +[Unit] +Description=OpenSSH %i Server Key Generation +ConditionFileNotEmpty=|!/etc/ssh/ssh_host_%i_key + +[Service] +Type=oneshot +EnvironmentFile=-/etc/sysconfig/sshd +ExecStart=/usr/libexec/openssh/sshd-keygen %i + +[Install] +WantedBy=sshd-keygen.target diff --git a/sshd.pam b/sshd.pam new file mode 100644 index 0000000..780f62e --- /dev/null +++ b/sshd.pam @@ -0,0 +1,17 @@ +#%PAM-1.0 +auth substack password-auth +auth include postlogin +account required pam_sepermit.so +account required pam_nologin.so +account include password-auth +password include password-auth +# pam_selinux.so close should be the first session rule +session required pam_selinux.so close +session required pam_loginuid.so +# pam_selinux.so open should only be followed by sessions to be executed in the user context +session required pam_selinux.so open env_params +session required pam_namespace.so +session optional pam_keyinit.so force revoke +session optional pam_motd.so +session include password-auth +session include postlogin diff --git a/sshd.service b/sshd.service new file mode 100644 index 0000000..f9a12a8 --- /dev/null +++ b/sshd.service @@ -0,0 +1,18 @@ +[Unit] +Description=OpenSSH server daemon +Documentation=man:sshd(8) man:sshd_config(5) +After=network.target sshd-keygen.target +Wants=sshd-keygen.target + +[Service] +Type=notify +EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config +EnvironmentFile=-/etc/sysconfig/sshd +ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY +ExecReload=/bin/kill -HUP $MAINPID +KillMode=process +Restart=on-failure +RestartSec=42s + +[Install] +WantedBy=multi-user.target diff --git a/sshd.socket b/sshd.socket new file mode 100644 index 0000000..caa50c4 --- /dev/null +++ b/sshd.socket @@ -0,0 +1,11 @@ +[Unit] +Description=OpenSSH Server Socket +Documentation=man:sshd(8) man:sshd_config(5) +Conflicts=sshd.service + +[Socket] +ListenStream=22 +Accept=yes + +[Install] +WantedBy=sockets.target diff --git a/sshd.sysconfig b/sshd.sysconfig new file mode 100644 index 0000000..7d2ea2a --- /dev/null +++ b/sshd.sysconfig @@ -0,0 +1,11 @@ +# Configuration file for the sshd service. + +# The server keys are automatically generated if they are missing. +# To change the automatic creation, adjust sshd.service options for +# example using systemctl enable sshd-keygen@dsa.service to allow creation +# of DSA key or systemctl mask sshd-keygen@rsa.service to disable RSA key +# creation. + +# System-wide crypto policy: +# To opt-out, uncomment the following line +CRYPTO_POLICY= diff --git a/sshd.tmpfiles b/sshd.tmpfiles new file mode 100644 index 0000000..c35a2b8 --- /dev/null +++ b/sshd.tmpfiles @@ -0,0 +1 @@ +d /var/empty/sshd 711 root root - diff --git a/sshd@.service b/sshd@.service new file mode 100644 index 0000000..9b8e012 --- /dev/null +++ b/sshd@.service @@ -0,0 +1,11 @@ +[Unit] +Description=OpenSSH per-connection server daemon +Documentation=man:sshd(8) man:sshd_config(5) +Wants=sshd-keygen.target +After=sshd-keygen.target + +[Service] +EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config +EnvironmentFile=-/etc/sysconfig/sshd +ExecStart=-/usr/sbin/sshd -i $OPTIONS $CRYPTO_POLICY +StandardInput=socket diff --git a/upstream-Always-initialize-2nd-arg-to-hpdelim2.-It-p.patch b/upstream-Always-initialize-2nd-arg-to-hpdelim2.-It-p.patch new file mode 100644 index 0000000..d21ea52 --- /dev/null +++ b/upstream-Always-initialize-2nd-arg-to-hpdelim2.-It-p.patch @@ -0,0 +1,53 @@ +From 7f9fc6a467c030ab36fba3a99377ed4330545a1d Mon Sep 17 00:00:00 2001 +From: guoxiaoqi +Date: Tue, 5 Mar 2019 12:01:44 +0000 +Subject: [PATCH] upstream-Always-initialize-2nd-arg-to-hpdelim2.-It-p + +--- + servconf.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/servconf.c b/servconf.c +index 67a71ba..434f0bc 100644 +--- a/servconf.c ++++ b/servconf.c +@@ -927,6 +927,7 @@ process_permitopen_list(struct ssh *ssh, ServerOpCodes opcode, + /* Otherwise treat it as a list of permitted host:port */ + for (i = 0; i < num_opens; i++) { + oarg = arg = xstrdup(opens[i]); ++ ch = '\0'; + host = hpdelim2(&arg, &ch); + if (host == NULL || ch == '/') + fatal("%s: missing host in %s", __func__, what); +@@ -1246,7 +1247,7 @@ process_server_config_line(ServerOptions *options, char *line, + const char *filename, int linenum, int *activep, + struct connection_info *connectinfo) + { +- char *cp, ***chararrayptr, **charptr, *arg, *arg2, *p; ++ char ch, *cp, ***chararrayptr, **charptr, *arg, *arg2, *p; + int cmdline = 0, *intptr, value, value2, n, port; + SyslogFacility *log_facility_ptr; + LogLevel *log_level_ptr; +@@ -1349,8 +1350,8 @@ process_server_config_line(ServerOptions *options, char *line, + port = 0; + p = arg; + } else { +- char ch; + arg2 = NULL; ++ ch = '\0'; + p = hpdelim2(&arg, &ch); + if (p == NULL || ch == '/') + fatal("%s line %d: bad address:port usage", +@@ -2014,8 +2015,8 @@ process_server_config_line(ServerOptions *options, char *line, + */ + xasprintf(&arg2, "*:%s", arg); + } else { +- char ch; + arg2 = xstrdup(arg); ++ ch = '\0'; + p = hpdelim2(&arg, &ch); + if (p == NULL || ch == '/') { + fatal("%s line %d: missing host in %s", +-- +1.8.3.1 + diff --git a/upstream-Fix-BN_is_prime_-calls-in-SSH-the-API-retur.patch b/upstream-Fix-BN_is_prime_-calls-in-SSH-the-API-retur.patch new file mode 100644 index 0000000..36f82e0 --- /dev/null +++ b/upstream-Fix-BN_is_prime_-calls-in-SSH-the-API-retur.patch @@ -0,0 +1,75 @@ +From a36b0b14a12971086034d53c0c3dfbad07665abe Mon Sep 17 00:00:00 2001 +From: "tb@openbsd.org" +Date: Sun, 20 Jan 2019 02:01:59 +0000 +Subject: [PATCH 185/294] upstream: Fix BN_is_prime_* calls in SSH, the API + returns -1 on + +error. + +Found thanks to BoringSSL's commit 53409ee3d7595ed37da472bc73b010cd2c8a5ffd +by David Benjamin. + +ok djm, dtucker + +OpenBSD-Commit-ID: 1ee832be3c44b1337f76b8562ec6d203f3b072f8 +--- + moduli.c | 19 ++++++++++++++----- + 1 file changed, 14 insertions(+), 5 deletions(-) + +diff --git a/moduli.c b/moduli.c +index 233cba8..48150da 100644 +--- a/moduli.c ++++ b/moduli.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: moduli.c,v 1.32 2017/12/08 03:45:52 deraadt Exp $ */ ++/* $OpenBSD: moduli.c,v 1.33 2019/01/20 02:01:59 tb Exp $ */ + /* + * Copyright 1994 Phil Karn + * Copyright 1996-1998, 2003 William Allen Simpson +@@ -582,7 +582,7 @@ prime_test(FILE *in, FILE *out, u_int32_t trials, u_int32_t generator_wanted, + u_int32_t generator_known, in_tests, in_tries, in_type, in_size; + unsigned long last_processed = 0, end_lineno; + time_t time_start, time_stop; +- int res; ++ int res, is_prime; + + if (trials < TRIAL_MINIMUM) { + error("Minimum primality trials is %d", TRIAL_MINIMUM); +@@ -753,7 +753,10 @@ prime_test(FILE *in, FILE *out, u_int32_t trials, u_int32_t generator_wanted, + * that p is also prime. A single pass will weed out the + * vast majority of composite q's. + */ +- if (BN_is_prime_ex(q, 1, ctx, NULL) <= 0) { ++ is_prime = BN_is_prime_ex(q, 1, ctx, NULL); ++ if (is_prime < 0) ++ fatal("BN_is_prime_ex failed"); ++ if (is_prime == 0) { + debug("%10u: q failed first possible prime test", + count_in); + continue; +@@ -766,14 +769,20 @@ prime_test(FILE *in, FILE *out, u_int32_t trials, u_int32_t generator_wanted, + * will show up on the first Rabin-Miller iteration so it + * doesn't hurt to specify a high iteration count. + */ +- if (!BN_is_prime_ex(p, trials, ctx, NULL)) { ++ is_prime = BN_is_prime_ex(p, trials, ctx, NULL); ++ if (is_prime < 0) ++ fatal("BN_is_prime_ex failed"); ++ if (is_prime == 0) { + debug("%10u: p is not prime", count_in); + continue; + } + debug("%10u: p is almost certainly prime", count_in); + + /* recheck q more rigorously */ +- if (!BN_is_prime_ex(q, trials - 1, ctx, NULL)) { ++ is_prime = BN_is_prime_ex(q, trials - 1, ctx, NULL); ++ if (is_prime < 0) ++ fatal("BN_is_prime_ex failed"); ++ if (is_prime == 0) { + debug("%10u: q is not prime", count_in); + continue; + } +-- +1.8.3.1 + diff --git a/upstream-When-choosing-a-prime-from-the-moduli-file-.patch b/upstream-When-choosing-a-prime-from-the-moduli-file-.patch new file mode 100644 index 0000000..3ae7f1d --- /dev/null +++ b/upstream-When-choosing-a-prime-from-the-moduli-file-.patch @@ -0,0 +1,62 @@ +From 5e532320e9e51de720d5f3cc2596e95d29f6e98f Mon Sep 17 00:00:00 2001 +From: "millert@openbsd.org" +Date: Mon, 17 Sep 2018 15:40:14 +0000 +Subject: [PATCH 037/294] upstream: When choosing a prime from the moduli file, + avoid + +re-using the linenum variable for something that is not a line number to +avoid the confusion that resulted in the bug in rev. 1.64. This also lets us +pass the actual linenum to parse_prime() so the error messages include the +correct line number. OK markus@ some time ago. + +OpenBSD-Commit-ID: 4d8e5d3e924d6e8eb70053e3defa23c151a00084 +--- + dh.c | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git a/dh.c b/dh.c +index f3ed388..657b32d 100644 +--- a/dh.c ++++ b/dh.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: dh.c,v 1.66 2018/08/04 00:55:06 djm Exp $ */ ++/* $OpenBSD: dh.c,v 1.68 2018/09/17 15:40:14 millert Exp $ */ + /* + * Copyright (c) 2000 Niels Provos. All rights reserved. + * +@@ -188,15 +188,17 @@ choose_dh(int min, int wantbits, int max) + logit("WARNING: no suitable primes in %s", _PATH_DH_MODULI); + return (dh_new_group_fallback(max)); + } ++ which = arc4random_uniform(bestcount); + + linenum = 0; +- which = arc4random_uniform(bestcount); ++ bestcount = 0; + while (getline(&line, &linesize, f) != -1) { ++ linenum++; + if (!parse_prime(linenum, line, &dhg)) + continue; + if ((dhg.size > max || dhg.size < min) || + dhg.size != best || +- linenum++ != which) { ++ bestcount++ != which) { + BN_clear_free(dhg.g); + BN_clear_free(dhg.p); + continue; +@@ -206,9 +208,9 @@ choose_dh(int min, int wantbits, int max) + free(line); + line = NULL; + fclose(f); +- if (linenum != which+1) { +- logit("WARNING: line %d disappeared in %s, giving up", +- which, _PATH_DH_MODULI); ++ if (bestcount != which + 1) { ++ logit("WARNING: selected prime disappeared in %s, giving up", ++ _PATH_DH_MODULI); + return (dh_new_group_fallback(max)); + } + +-- +1.8.3.1 + diff --git a/upstream-correct-local-variable-name-from-yawang-AT-.patch b/upstream-correct-local-variable-name-from-yawang-AT-.patch new file mode 100644 index 0000000..fea27fa --- /dev/null +++ b/upstream-correct-local-variable-name-from-yawang-AT-.patch @@ -0,0 +1,42 @@ +From 81f1620c836e6c79c0823ba44acca605226a80f1 Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Fri, 9 Nov 2018 02:56:22 +0000 +Subject: [PATCH 106/294] upstream: correct local variable name; from yawang AT + microsoft.com + +OpenBSD-Commit-ID: a0c228390856a215bb66319c89cb3959d3af8c87 +--- + dh.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/dh.c b/dh.c +index 657b32d..a98d39e 100644 +--- a/dh.c ++++ b/dh.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: dh.c,v 1.68 2018/09/17 15:40:14 millert Exp $ */ ++/* $OpenBSD: dh.c,v 1.69 2018/11/09 02:56:22 djm Exp $ */ + /* + * Copyright (c) 2000 Niels Provos. All rights reserved. + * +@@ -406,7 +406,7 @@ dh_new_group16(void) + DH * + dh_new_group18(void) + { +- static char *gen = "2", *group16 = ++ static char *gen = "2", *group18 = + "FFFFFFFF" "FFFFFFFF" "C90FDAA2" "2168C234" "C4C6628B" "80DC1CD1" + "29024E08" "8A67CC74" "020BBEA6" "3B139B22" "514A0879" "8E3404DD" + "EF9519B3" "CD3A431B" "302B0A6D" "F25F1437" "4FE1356D" "6D51C245" +@@ -451,7 +451,7 @@ dh_new_group18(void) + "9558E447" "5677E9AA" "9E3050E2" "765694DF" "C81F56E8" "80B96E71" + "60C980DD" "98EDD3DF" "FFFFFFFF" "FFFFFFFF"; + +- return (dh_new_group_asc(gen, group16)); ++ return (dh_new_group_asc(gen, group18)); + } + + /* Select fallback group used by DH-GEX if moduli file cannot be read. */ +-- +1.8.3.1 + diff --git a/upstream-disallow-empty-incoming-filename-or-ones-th.patch b/upstream-disallow-empty-incoming-filename-or-ones-th.patch new file mode 100644 index 0000000..1daa84f --- /dev/null +++ b/upstream-disallow-empty-incoming-filename-or-ones-th.patch @@ -0,0 +1,36 @@ +From 6010c0303a422a9c5fa8860c061bf7105eb7f8b2 Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Fri, 16 Nov 2018 03:03:10 +0000 +Subject: [PATCH 112/294] upstream: disallow empty incoming filename or ones + that refer to the + +current directory; based on report/patch from Harry Sintonen + +OpenBSD-Commit-ID: f27651b30eaee2df49540ab68d030865c04f6de9 +--- + scp.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/scp.c b/scp.c +index 60682c6..4f3fdcd 100644 +--- a/scp.c ++++ b/scp.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: scp.c,v 1.197 2018/06/01 04:31:48 dtucker Exp $ */ ++/* $OpenBSD: scp.c,v 1.198 2018/11/16 03:03:10 djm Exp $ */ + /* + * scp - secure remote copy. This is basically patched BSD rcp which + * uses ssh to do the data transfer (instead of using rcmd). +@@ -1106,7 +1106,8 @@ sink(int argc, char **argv) + SCREWUP("size out of range"); + size = (off_t)ull; + +- if ((strchr(cp, '/') != NULL) || (strcmp(cp, "..") == 0)) { ++ if (*cp == '\0' || strchr(cp, '/') != NULL || ++ strcmp(cp, ".") == 0 || strcmp(cp, "..") == 0) { + run_err("error: unexpected filename: %s", cp); + exit(1); + } +-- +1.8.3.1 + diff --git a/upstream-don-t-attempt-to-connect-to-empty-SSH_AUTH_.patch b/upstream-don-t-attempt-to-connect-to-empty-SSH_AUTH_.patch new file mode 100644 index 0000000..e373633 --- /dev/null +++ b/upstream-don-t-attempt-to-connect-to-empty-SSH_AUTH_.patch @@ -0,0 +1,33 @@ +From 87d6cf1cbc91df6815db8fe0acc7c910bc3d18e4 Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Fri, 30 Nov 2018 02:24:52 +0000 +Subject: [PATCH 135/294] upstream: don't attempt to connect to empty + SSH_AUTH_SOCK; bz#293 + +OpenBSD-Commit-ID: 0e8fc8f19f14b21adef7109e0faa583d87c0e929 +--- + authfd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/authfd.c b/authfd.c +index ecdd869..cc9c650 100644 +--- a/authfd.c ++++ b/authfd.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: authfd.c,v 1.111 2018/07/09 21:59:10 markus Exp $ */ ++/* $OpenBSD: authfd.c,v 1.112 2018/11/30 02:24:52 djm Exp $ */ + /* + * Author: Tatu Ylonen + * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland +@@ -94,7 +94,7 @@ ssh_get_authentication_socket(int *fdp) + *fdp = -1; + + authsocket = getenv(SSH_AUTHSOCKET_ENV_NAME); +- if (!authsocket) ++ if (authsocket == NULL || *authsocket == '\0') + return SSH_ERR_AGENT_NOT_PRESENT; + + memset(&sunaddr, 0, sizeof(sunaddr)); +-- +1.8.3.1 + diff --git a/upstream-don-t-truncate-user-or-host-name-in-user-ho.patch b/upstream-don-t-truncate-user-or-host-name-in-user-ho.patch new file mode 100644 index 0000000..b9f0652 --- /dev/null +++ b/upstream-don-t-truncate-user-or-host-name-in-user-ho.patch @@ -0,0 +1,48 @@ +From 91b19198c3f604f5eef2c56dbe36f29478243141 Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Wed, 28 Nov 2018 06:00:38 +0000 +Subject: [PATCH 134/294] upstream: don't truncate user or host name in + "user@host's + +OpenBSD-Commit-ID: e6ca01a8d58004b7f2cac0b1b7ce8f87e425e360 +--- + sshconnect2.c | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/sshconnect2.c b/sshconnect2.c +index 200e07d..6186ca7 100644 +--- a/sshconnect2.c ++++ b/sshconnect2.c +@@ -1193,8 +1193,7 @@ userauth_passwd(Authctxt *authctxt) + { + struct ssh *ssh = active_state; /* XXX */ + static int attempt = 0; +- char prompt[256]; +- char *password; ++ char *password, *prompt = NULL; + const char *host = options.host_key_alias ? options.host_key_alias : + authctxt->host; + int r; +@@ -1205,8 +1204,7 @@ userauth_passwd(Authctxt *authctxt) + if (attempt != 1) + error("Permission denied, please try again."); + +- snprintf(prompt, sizeof(prompt), "%.30s@%.128s's password: ", +- authctxt->server_user, host); ++ xasprintf(&prompt, "%s@%s's password: ", authctxt->server_user, host); + password = read_passphrase(prompt, 0); + if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 || + (r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 || +@@ -1218,7 +1216,8 @@ userauth_passwd(Authctxt *authctxt) + (r = sshpkt_send(ssh)) != 0) + fatal("%s: %s", __func__, ssh_err(r)); + +- if (password) ++ free(prompt); ++ if (password != NULL) + freezero(password, strlen(password)); + + ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ, +-- +1.8.3.1 + diff --git a/upstream-fix-bug-in-HostbasedAcceptedKeyTypes-and.patch b/upstream-fix-bug-in-HostbasedAcceptedKeyTypes-and.patch new file mode 100644 index 0000000..9ddbb01 --- /dev/null +++ b/upstream-fix-bug-in-HostbasedAcceptedKeyTypes-and.patch @@ -0,0 +1,80 @@ +From e76135e3007f1564427b2956c628923d8dc2f75a Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Fri, 16 Nov 2018 02:43:56 +0000 +Subject: [PATCH 110/294] upstream: fix bug in HostbasedAcceptedKeyTypes and + +PubkeyAcceptedKeyTypes options. If only RSA-SHA2 siganture types were +specified, then authentication would always fail for RSA keys as the monitor +checks only the base key (not the signature algorithm) type against +*AcceptedKeyTypes. bz#2746; reported by Jakub Jelen; ok dtucker + +OpenBSD-Commit-ID: 117bc3dc54578dbdb515a1d3732988cb5b00461b +--- + monitor.c | 37 +++++++++++++++++++++++++++++++++---- + 1 file changed, 33 insertions(+), 4 deletions(-) + +diff --git a/monitor.c b/monitor.c +index f56ea85..553e4aa 100644 +--- a/monitor.c ++++ b/monitor.c +@@ -912,6 +912,35 @@ mm_answer_authrole(int sock, struct sshbuf *m) + } + #endif + ++/* ++ * Check that the key type appears in the supplied pattern list, ignoring ++ * mismatches in the signature algorithm. (Signature algorithm checks are ++ * performed in the unprivileged authentication code). ++ * Returns 1 on success, 0 otherwise. ++ */ ++static int ++key_base_type_match(const char *method, const struct sshkey *key, ++ const char *list) ++{ ++ char *s, *l, *ol = xstrdup(list); ++ int found = 0; ++ ++ l = ol; ++ for ((s = strsep(&l, ",")); s && *s != '\0'; (s = strsep(&l, ","))) { ++ if (sshkey_type_from_name(s) == key->type) { ++ found = 1; ++ break; ++ } ++ } ++ if (!found) { ++ error("%s key type %s is not in permitted list %s", method, ++ sshkey_ssh_name(key), list); ++ } ++ ++ free(ol); ++ return found; ++} ++ + int + mm_answer_authpassword(int sock, struct sshbuf *m) + { +@@ -1217,8 +1246,8 @@ mm_answer_keyallowed(int sock, struct sshbuf *m) + break; + if (auth2_key_already_used(authctxt, key)) + break; +- if (match_pattern_list(sshkey_ssh_name(key), +- options.pubkey_key_types, 0) != 1) ++ if (!key_base_type_match(auth_method, key, ++ options.pubkey_key_types)) + break; + allowed = user_key_allowed(ssh, authctxt->pw, key, + pubkey_auth_attempt, &opts); +@@ -1229,8 +1258,8 @@ mm_answer_keyallowed(int sock, struct sshbuf *m) + break; + if (auth2_key_already_used(authctxt, key)) + break; +- if (match_pattern_list(sshkey_ssh_name(key), +- options.hostbased_key_types, 0) != 1) ++ if (!key_base_type_match(auth_method, key, ++ options.hostbased_key_types)) + break; + allowed = hostbased_key_allowed(authctxt->pw, + cuser, chost, key); +-- +1.8.3.1 + diff --git a/upstream-fix-bug-in-client-that-was-keeping-a-redund.patch b/upstream-fix-bug-in-client-that-was-keeping-a-redund.patch new file mode 100644 index 0000000..3f2a12e --- /dev/null +++ b/upstream-fix-bug-in-client-that-was-keeping-a-redund.patch @@ -0,0 +1,49 @@ +From aaed635e3a401cfcc4cc97f33788179c458901c3 Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Fri, 16 Nov 2018 02:46:20 +0000 +Subject: [PATCH 111/294] upstream: fix bug in client that was keeping a + redundant ssh-agent + +socket around for the life of the connection; bz#2912; reported by Simon +Tatham; ok dtucker@ + +OpenBSD-Commit-ID: 4ded588301183d343dce3e8c5fc1398e35058478 +--- + sshconnect2.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/sshconnect2.c b/sshconnect2.c +index 1e894e8..ff450e5 100644 +--- a/sshconnect2.c ++++ b/sshconnect2.c +@@ -583,7 +583,6 @@ ssh_userauth2(const char *local_user, const char *server_user, char *host, + + /* setup authentication context */ + memset(&authctxt, 0, sizeof(authctxt)); +- pubkey_prepare(&authctxt); + authctxt.server_user = server_user; + authctxt.local_user = local_user; + authctxt.host = host; +@@ -596,6 +595,7 @@ ssh_userauth2(const char *local_user, const char *server_user, char *host, + authctxt.active_ktype = authctxt.oktypes = authctxt.ktypes = NULL; + authctxt.info_req_seen = 0; + authctxt.agent_fd = -1; ++ pubkey_prepare(&authctxt); + if (authctxt.method == NULL) + fatal("ssh_userauth2: internal error: cannot send userauth none request"); + +@@ -1849,8 +1849,10 @@ pubkey_cleanup(Authctxt *authctxt) + { + Identity *id; + +- if (authctxt->agent_fd != -1) ++ if (authctxt->agent_fd != -1) { + ssh_close_authentication_socket(authctxt->agent_fd); ++ authctxt->agent_fd = -1; ++ } + for (id = TAILQ_FIRST(&authctxt->keys); id; + id = TAILQ_FIRST(&authctxt->keys)) { + TAILQ_REMOVE(&authctxt->keys, id, next); +-- +1.8.3.1 + diff --git a/upstream-fix-build-with-DEBUG_PK-enabled.patch b/upstream-fix-build-with-DEBUG_PK-enabled.patch new file mode 100644 index 0000000..54d291e --- /dev/null +++ b/upstream-fix-build-with-DEBUG_PK-enabled.patch @@ -0,0 +1,34 @@ +From 086cc614f550b7d4f100c95e472a6b6b823938ab Mon Sep 17 00:00:00 2001 +From: "mestre@openbsd.org" +Date: Tue, 28 Aug 2018 12:17:45 +0000 +Subject: [PATCH 005/294] upstream: fix build with DEBUG_PK enabled + +OK dtucker@ + +OpenBSD-Commit-ID: ec1568cf27726e9638a0415481c20c406e7b441c +--- + auth2-hostbased.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/auth2-hostbased.c b/auth2-hostbased.c +index 3593932..73944bc 100644 +--- a/auth2-hostbased.c ++++ b/auth2-hostbased.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: auth2-hostbased.c,v 1.36 2018/07/31 03:10:27 djm Exp $ */ ++/* $OpenBSD: auth2-hostbased.c,v 1.37 2018/08/28 12:17:45 mestre Exp $ */ + /* + * Copyright (c) 2000 Markus Friedl. All rights reserved. + * +@@ -79,7 +79,7 @@ userauth_hostbased(struct ssh *ssh) + cuser, chost, pkalg, slen); + #ifdef DEBUG_PK + debug("signature:"); +- sshbuf_dump_data(sig, siglen, stderr); ++ sshbuf_dump_data(sig, slen, stderr); + #endif + pktype = sshkey_type_from_name(pkalg); + if (pktype == KEY_UNSPEC) { +-- +1.8.3.1 + diff --git a/upstream-fix-memory-leak-of-ciphercontext-when-rekey.patch b/upstream-fix-memory-leak-of-ciphercontext-when-rekey.patch new file mode 100644 index 0000000..291d165 --- /dev/null +++ b/upstream-fix-memory-leak-of-ciphercontext-when-rekey.patch @@ -0,0 +1,38 @@ +From 8a8183474c41bd6cebaa917346b549af2239ba2f Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Fri, 4 Jan 2019 03:23:00 +0000 +Subject: [PATCH 148/294] upstream: fix memory leak of ciphercontext when + rekeying; bz#2942 + +Patch from Markus Schmidt; ok markus@ + +OpenBSD-Commit-ID: 7877f1b82e249986f1ef98d0ae76ce987d332bdd +--- + packet.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/packet.c b/packet.c +index 89063f2..046e03f 100644 +--- a/packet.c ++++ b/packet.c +@@ -874,8 +874,6 @@ ssh_set_newkeys(struct ssh *ssh, int mode) + (unsigned long long)state->p_send.bytes, + (unsigned long long)state->p_send.blocks); + audit_session_key_free(mode); +- cipher_free(*ccp); +- *ccp = NULL; + kex_free_newkeys(state->newkeys[mode]); + state->newkeys[mode] = NULL; + } +@@ -894,6 +892,8 @@ ssh_set_newkeys(struct ssh *ssh, int mode) + } + mac->enabled = 1; + DBG(debug("cipher_init_context: %d", mode)); ++ cipher_free(*ccp); ++ *ccp = NULL; + if ((r = cipher_init(ccp, enc->cipher, enc->key, enc->key_len, + enc->iv, enc->iv_len, crypt_type)) != 0) + return r; +-- +1.8.3.1 + diff --git a/upstream-fix-misplaced-parenthesis-inside-if-clause..patch b/upstream-fix-misplaced-parenthesis-inside-if-clause..patch new file mode 100644 index 0000000..29922bf --- /dev/null +++ b/upstream-fix-misplaced-parenthesis-inside-if-clause..patch @@ -0,0 +1,38 @@ +From db8bb80e3ac1bcb3e1305d846cd98c6b869bf03f Mon Sep 17 00:00:00 2001 +From: "mestre@openbsd.org" +Date: Tue, 28 Aug 2018 12:25:53 +0000 +Subject: [PATCH 006/294] upstream: fix misplaced parenthesis inside if-clause. + it's harmless + +and the only issue is showing an unknown error (since it's not defined) +during fatal(), if it ever an error occurs inside that condition. + +OK deraadt@ markus@ djm@ + +OpenBSD-Commit-ID: acb0a8e6936bfbe590504752d01d1d251a7101d8 +--- + auth2-pubkey.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/auth2-pubkey.c b/auth2-pubkey.c +index 3d9f9af..f9e4e2e 100644 +--- a/auth2-pubkey.c ++++ b/auth2-pubkey.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: auth2-pubkey.c,v 1.84 2018/08/23 03:01:08 djm Exp $ */ ++/* $OpenBSD: auth2-pubkey.c,v 1.85 2018/08/28 12:25:53 mestre Exp $ */ + /* + * Copyright (c) 2000 Markus Friedl. All rights reserved. + * +@@ -177,7 +177,7 @@ userauth_pubkey(struct ssh *ssh) + (r = sshbuf_put_cstring(b, authctxt->service)) != 0 || + (r = sshbuf_put_cstring(b, "publickey")) != 0 || + (r = sshbuf_put_u8(b, have_sig)) != 0 || +- (r = sshbuf_put_cstring(b, pkalg) != 0) || ++ (r = sshbuf_put_cstring(b, pkalg)) != 0 || + (r = sshbuf_put_string(b, pkblob, blen)) != 0) + fatal("%s: build packet failed: %s", + __func__, ssh_err(r)); +-- +1.8.3.1 + diff --git a/upstream-fix-ssh-Q-sig-to-show-correct-signature-alg.patch b/upstream-fix-ssh-Q-sig-to-show-correct-signature-alg.patch new file mode 100644 index 0000000..a0a04e1 --- /dev/null +++ b/upstream-fix-ssh-Q-sig-to-show-correct-signature-alg.patch @@ -0,0 +1,29 @@ +From aa083aa9624ea7b764d5a81c4c676719a1a3e42b Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Thu, 20 Sep 2018 03:31:49 +0000 +Subject: [PATCH 041/294] upstream: fix "ssh -Q sig" to show correct signature + algorithm list + +(it was erroneously showing certificate algorithms); prompted by markus@ + +OpenBSD-Commit-ID: 1cdee002f2f0c21456979deeb887fc889afb154d +--- + ssh.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ssh.c b/ssh.c +index 1101ab2..34301c3 100644 +--- a/ssh.c ++++ b/ssh.c +@@ -750,7 +750,7 @@ main(int ac, char **av) + else if (strcmp(optarg, "key-cert") == 0) + cp = sshkey_alg_list(1, 0, 0, '\n'); + else if (strcmp(optarg, "key-plain") == 0) +- cp = sshkey_alg_list(0, 1, 0, '\n'); ++ cp = sshkey_alg_list(0, 1, 1, '\n'); + else if (strcmp(optarg, "protocol-version") == 0) { + cp = xstrdup("2"); + } +-- +1.8.3.1 + diff --git a/upstream-make-grandparent-parent-child-sshbuf-chains.patch b/upstream-make-grandparent-parent-child-sshbuf-chains.patch new file mode 100644 index 0000000..5ece0ce --- /dev/null +++ b/upstream-make-grandparent-parent-child-sshbuf-chains.patch @@ -0,0 +1,56 @@ +From 15182fd96845a03216d7ac5a2cf31c4e77e406e3 Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Fri, 16 Nov 2018 06:10:29 +0000 +Subject: [PATCH 115/294] upstream: make grandparent-parent-child sshbuf chains + robust to + +use-after-free faults if the ancestors are freed before the descendents. +Nothing in OpenSSH uses this deallocation pattern. Reported by Jann Horn + +OpenBSD-Commit-ID: d93501d1d2734245aac802a252b9bb2eccdba0f2 +--- + sshbuf.c | 17 ++++++++++------- + 1 file changed, 10 insertions(+), 7 deletions(-) + +diff --git a/sshbuf.c b/sshbuf.c +index 20ddf9e..adfddf7 100644 +--- a/sshbuf.c ++++ b/sshbuf.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: sshbuf.c,v 1.12 2018/07/09 21:56:06 markus Exp $ */ ++/* $OpenBSD: sshbuf.c,v 1.13 2018/11/16 06:10:29 djm Exp $ */ + /* + * Copyright (c) 2011 Damien Miller + * +@@ -143,12 +143,7 @@ sshbuf_free(struct sshbuf *buf) + */ + if (sshbuf_check_sanity(buf) != 0) + return; +- /* +- * If we are a child, the free our parent to decrement its reference +- * count and possibly free it. +- */ +- sshbuf_free(buf->parent); +- buf->parent = NULL; ++ + /* + * If we are a parent with still-extant children, then don't free just + * yet. The last child's call to sshbuf_free should decrement our +@@ -157,6 +152,14 @@ sshbuf_free(struct sshbuf *buf) + buf->refcount--; + if (buf->refcount > 0) + return; ++ ++ /* ++ * If we are a child, the free our parent to decrement its reference ++ * count and possibly free it. ++ */ ++ sshbuf_free(buf->parent); ++ buf->parent = NULL; ++ + if (!buf->readonly) { + explicit_bzero(buf->d, buf->alloc); + free(buf->d); +-- +1.8.3.1 + diff --git a/upstream-only-consider-the-ext-info-c-extension-duri.patch b/upstream-only-consider-the-ext-info-c-extension-duri.patch new file mode 100644 index 0000000..93e8d03 --- /dev/null +++ b/upstream-only-consider-the-ext-info-c-extension-duri.patch @@ -0,0 +1,74 @@ +From a6a0788cbbe8dfce2819ee43b09c80725742e21c Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Fri, 7 Dec 2018 03:39:40 +0000 +Subject: [PATCH 141/294] upstream: only consider the ext-info-c extension + during the initial + +KEX. It shouldn't be sent in subsequent ones, but if it is present we should +ignore it. + +This prevents sshd from sending a SSH_MSG_EXT_INFO for REKEX for buggy +these clients. Reported by Jakub Jelen via bz2929; ok dtucker@ + +OpenBSD-Commit-ID: 91564118547f7807030ec537480303e2371902f9 +--- + kex.c | 6 ++++-- + kex.h | 3 ++- + 2 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/kex.c b/kex.c +index 25f9f66..3823a95 100644 +--- a/kex.c ++++ b/kex.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: kex.c,v 1.141 2018/07/09 13:37:10 sf Exp $ */ ++/* $OpenBSD: kex.c,v 1.142 2018/12/07 03:39:40 djm Exp $ */ + /* + * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. + * +@@ -487,6 +487,7 @@ kex_input_newkeys(int type, u_int32_t seq, struct ssh *ssh) + if ((r = ssh_set_newkeys(ssh, MODE_IN)) != 0) + return r; + kex->done = 1; ++ kex->flags &= ~KEX_INITIAL; + sshbuf_reset(kex->peer); + /* sshbuf_reset(kex->my); */ + kex->flags &= ~KEX_INIT_SENT; +@@ -594,6 +595,7 @@ kex_new(struct ssh *ssh, char *proposal[PROPOSAL_MAX], struct kex **kexp) + if ((r = kex_prop2buf(kex->my, proposal)) != 0) + goto out; + kex->done = 0; ++ kex->flags = KEX_INITIAL; + kex_reset_dispatch(ssh); + ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, &kex_input_kexinit); + r = 0; +@@ -839,7 +841,7 @@ kex_choose_conf(struct ssh *ssh) + } + + /* Check whether client supports ext_info_c */ +- if (kex->server) { ++ if (kex->server && (kex->flags & KEX_INITIAL)) { + char *ext; + + ext = match_list("ext-info-c", peer[PROPOSAL_KEX_ALGS], NULL); +diff --git a/kex.h b/kex.h +index 593de12..0f67f58 100644 +--- a/kex.h ++++ b/kex.h +@@ -1,4 +1,4 @@ +-/* $OpenBSD: kex.h,v 1.91 2018/07/11 18:53:29 markus Exp $ */ ++/* $OpenBSD: kex.h,v 1.92 2018/12/07 03:39:40 djm Exp $ */ + + /* + * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. +@@ -104,6 +104,7 @@ enum kex_exchange { + }; + + #define KEX_INIT_SENT 0x0001 ++#define KEX_INITIAL 0x0002 + + struct sshenc { + char *name; +-- +1.8.3.1 + diff --git a/upstream-typo-in-error-message-caught-by-Debian-lint.patch b/upstream-typo-in-error-message-caught-by-Debian-lint.patch new file mode 100644 index 0000000..7654663 --- /dev/null +++ b/upstream-typo-in-error-message-caught-by-Debian-lint.patch @@ -0,0 +1,35 @@ +From 960e7c672dc106f3b759c081de3edb4d1138b36e Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Fri, 9 Nov 2018 02:57:58 +0000 +Subject: [PATCH 107/294] upstream: typo in error message; caught by Debian + lintian, via + +Colin Watson + +OpenBSD-Commit-ID: bff614c7bd1f4ca491a84e9b5999f848d0d66758 +--- + ssh-agent.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ssh-agent.c b/ssh-agent.c +index d8a8260..cb55246 100644 +--- a/ssh-agent.c ++++ b/ssh-agent.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: ssh-agent.c,v 1.231 2018/05/11 03:38:51 djm Exp $ */ ++/* $OpenBSD: ssh-agent.c,v 1.232 2018/11/09 02:57:58 djm Exp $ */ + /* + * Author: Tatu Ylonen + * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland +@@ -1199,7 +1199,7 @@ main(int ac, char **av) + */ + #define SSH_AGENT_MIN_FDS (3+1+1+1+4) + if (rlim.rlim_cur < SSH_AGENT_MIN_FDS) +- fatal("%s: file descriptior rlimit %lld too low (minimum %u)", ++ fatal("%s: file descriptor rlimit %lld too low (minimum %u)", + __progname, (long long)rlim.rlim_cur, SSH_AGENT_MIN_FDS); + maxfds = rlim.rlim_cur - SSH_AGENT_MIN_FDS; + +-- +1.8.3.1 + diff --git a/upstream-typo-in-plain-RSA-algorithm-counterpart-nam.patch b/upstream-typo-in-plain-RSA-algorithm-counterpart-nam.patch new file mode 100644 index 0000000..b81835f --- /dev/null +++ b/upstream-typo-in-plain-RSA-algorithm-counterpart-nam.patch @@ -0,0 +1,32 @@ +From ebfafd9c7a5b2a7fb515ee95dbe0e44e11d0a663 Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Thu, 11 Oct 2018 00:52:46 +0000 +Subject: [PATCH 069/294] upstream: typo in plain RSA algorithm counterpart + names for + +certificates; spotted by Adam Eijdenberg; ok dtucker@ + +OpenBSD-Commit-ID: bfcdeb6f4fc9e7607f5096574c8f118f2e709e00 +--- + sshkey.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sshkey.c b/sshkey.c +index ed57d30..5807627 100644 +--- a/sshkey.c ++++ b/sshkey.c +@@ -118,9 +118,9 @@ static const struct keytype keytypes[] = { + { "ssh-rsa-cert-v01@openssh.com", "RSA-CERT", NULL, + KEY_RSA_CERT, 0, 1, 0 }, + { "rsa-sha2-256-cert-v01@openssh.com", "RSA-CERT", +- "ssh-rsa-sha2-256", KEY_RSA_CERT, 0, 1, 1 }, ++ "rsa-sha2-256", KEY_RSA_CERT, 0, 1, 1 }, + { "rsa-sha2-512-cert-v01@openssh.com", "RSA-CERT", +- "ssh-rsa-sha2-512", KEY_RSA_CERT, 0, 1, 1 }, ++ "rsa-sha2-512", KEY_RSA_CERT, 0, 1, 1 }, + { "ssh-dss-cert-v01@openssh.com", "DSA-CERT", NULL, + KEY_DSA_CERT, 0, 1, 0 }, + { "ssh-rsa-cert-v01@openssh.com", "RSA-CERT", NULL, +-- +1.8.3.1 +

    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%0AGdD?VY4%-jJZcr>s`qEr7xLhV<0Y~Q^xQEI zj5<^s8}PWU60+lXVamF8{%&i9YB#AdLjckpnZab3Qtpw=|Qn>n{pcx7+scCx`SB``NcaW z?W4`rw~QTl-1xzH)hjlwR$NAfrl>RoC@*})1o+d;* zEWpQlxQROzzVprA#?+K?hQP@_?sbTJT^tl})I-CQ0ZJS4Y?D#5)A4p2;yBZZf}N1E z=-0}tqqTQyPlnPwe7TPjoM8EUX5xfx3N16YWF@dYP3Fx>s=Jc3Hrvqc8sw@l4wQyg zPinF7l67E4H4n75`b7=p^`cW{?Fq_Fma%`QNhs0A3X81H^VX)ob8)?PCWM@=`r%x* zf?L?fP>z-&;&6;hRdX}$6Kw&Sj?btB-oYb^IE5^>RFs1xyTC76M+-7waL#2oiXO3U zlE-2%RCMb4T{Bb1SzJ^@PEged)Myb+mXXSR|M9)of9Fno$&BBqB6uw=Ns0*V+8y(dw zk~}a&MNYBx-Khs>CW~V1Dp#!d#kpbnwrJR=s@Ku!1n_NxhN%eZ@~xe);>%)zQRfjL z&6aCtW4o1tG{EU#m>a`WfjhUexsPQ}xPtNW=t$ozp?G-I`Z$pog0K@UN`+K%BFrR# zRP~O`sH%D-^U<5w3!D;SgC{DGPKQPcDwcM5h#PJ7*ARB0u+*|V`A2|F?=IuGJsc|H z76?<-=VXjKEAHX(YP?P%=1+@CmR41TI2NIWtPR_a+=vQ?J$OKlWzu+i*w+4pfebgP zSvfFvgNvG_xNyGD6d@F(4N$Gl6e|M_1|Mu3ccluKeL`Yu9vHfURTo%EHqn2lhN`>U zb>d_Wa)4J<=VijCL&x;IQE^?bSpxyw!)D&W1I&3H%_AtQKpvApvrO$e(e~^`<$M^4 zK3PW-t;$an?AUVoNak~F&0uMtT3q_Nl>{VS=p_wcpL1aKD&YsnU!tB>D>!;jLb^lP+GbjHwWI3J ze^TmB>5RK`6IuDv(?9{q1!@Y>0B5?0L0wm&KyQr26G$a!uQNc$IJ{E1WVH955TObN z4NrLk9K}3tkt*z{+R*svymOpdyD$l8UTwjZpzwzk-%jyiP{lYX=HTY3z-M?lZj2zF zJ=~39ngeSdVCkkx?iy|-HB*{}k=OVevRGaLK(TWpBLpXU-p{z<^+#sgaK!yJfI26$ zx0e-A3vLJO9``RRENSuDRUbVXu>)4quH(hzXM#-v**6xm#wQpoA!Jvb6S^YYT1mdL zFLD@PI^N$|-AwRNRA` z8348Q+$Ho)=oHV%;_|UTa!japm3r}n-kdHTrDTE z1W6~rYu<(^<9Gzm-s%33vFi##t*G(SNgoWgUeWl(VSP0A7MTD@QfpxDf z#)P}P>s2CPuaj*Q%(!62bxI=0L~s;55#tw2Bh?|4yF2!aHe|&gjb3TPYawaDl$b0C zD-zk|CSm%=D0M+vQWThPNFWb+dkiGp+$ycQ;I6j_-j8^vADOz1GCfwxgygh&ZKE3- zi=eZ3#RR@SD7{j>tZ$rZ#_1W7b%|kie&MpNy_oMyqgE}aw%MTOz?OEJJ3J-?Ssg&A zckT-&(cz>92PN2SXab0*L(;e{DS?%C*<_5$@CABZH4yJk@cDXPI05oh6nPr*`MImh z1B_4=iR-G3(H{2GXqpjGt2fSIZ5JLh4vPRio;tf+@$Z!AbRfCk)=0NB0>j!>*=+$J zo=f=GdRwm_76Zr*RKvm@X9}z!RnE>~rt`R+%GDjv%-qYAc^jD=KvGN_= zO!8{__%+kRn>9D?|Tjm#?UpdrUYOFdrirmo-z%C8D>o=e!nafR- z#}n22r=7sY3ft;wjZ+N%TDgJg?V?m*hCAYLL2SVBhk83l>lB=ryI(b$&~@Z=1OQz} zcqxhgrw@-4o4ss&nbg@d<$IZIY}B7l((6BPQb1_HV#g)`qfb6jgwjIF6n2qn=LUz(e6N>s@7O@#HJd zvh}2;%rWY*(8682O>38}Te#(s`XA5N3pxdNG%^P~5f&c9yD5Jp`O*oS3CB$yMU`6~ z-c*?wIYsMlU8Onjl_lwU<1)3mQIL*ZeALHLn>O2{mAVw&CFrk={7+JsjjuCZp>b-W zJI7-7Lx!v(>7lQC+zz&a5+-&wWcgz`9VZ2Q)5YOYD$0EIUA5p}gRoxpJF_H|UU+Iu z@>(Vdwi~jHF~HrRy&l`$Cd)mu$&UlNdz{-;CnOzQ3AV>^HKu|e4{VcRn8NdVo88^C zy1`GGgykQ7?-3q*X}Ccr&|~9n3kz{Ogm2$`AAR@0000d?q^s{<$RA{UbS=VeU|mvj zkbRYJx0lkpeeDb;KVbslsSS~Z@X+L9tK{_Hw);bkT4sC%V{O*6%RGD zhe`6dG(2}G44vO{E!}Aa4eQuFJ<4^*x7%_mw#1-5398jDc^@YOQrIBuvkhKfM)xjo zR0;Y*++H&M*WgPL>)W`DI+CW_)-*v$x&&CB4svOIlk_~GbfwZ0#>>riC%3o6tBjYe z6&*&xs_p{lBd2bpk0jN5;7Mgm@se882GW4za2J86G0>SWK;mYr8*GshG|FgIU$HGa zM&cb&Qb)!~(L!eq#tY@nzJhF7G<3X{P&tZ|eFW$dD}Bn=nz#sSU9gbD7r!44IMX2D-OZ&$v9EKP!1;84DnM`9xv0Wy5Q{ zJh~}P2KqR#(4Txv0}sshG4vgb$~u?W!sB#4R!Gm3=zUAm>u1OYF9qdph1zmJ{7 z8qT8cA8WlBA*c+5x<_Y@nDyY1W@vv%TyS$r!Qs`nw4WwA>0aF9d%4P?0A5lp4(YI+ z3$g1~=Etc^N7ZUrFW#&5(@5K-c`6Kit_q#%j<7@;^K>e!LXye8qJSqkgrb0n>d}|ti8K-96N4Pu&e{Sotws2ikn# zQa8KRVUg{{IV$ASrZz)W}^B?{2KaO@$5;+KAS%j;~>-U&rg3 ze$E85!2p0LZPtQsKHSY(hi7Z8s@%L%K?){yaA|Pdl-c;-Hf7n5x!<@6-=h||C@Daw zUho#RsTSrN3n~zN8MeWX~)z^;#vhqvlSb@1ra1v>)dQ;zIrRreLugrxaNabn+y4(rAvcsWgKP0RpGRP1)8d}Rq~2 zOjc#*DMrmo2P+a{dGYx-StuM5FrjP9MPV--zQl3DVVxZ$n{K(wID~51)uxuB;oj-J zz3kwYH^fO7E>hM?#X%I-VYS)`_*Ipc*RiW0>$o&mdI>jh3Ju%NfzwmFUCy_?H;BS2lCxSebC*vH zx957cLf%c>p9h@XVrJ_3j3XqyX9c-Z_HZQlw!Gmng`TVM45ry=i7`CJ0I{l5jcxR% zDcSm(3~BL}hVjBwAa_RC2-N&KTgg7o@ZJOH$D>o-Ct`_ViGdQJCkPis6RKx@+C;UaK^)sK zCfYIwtX`|6b8VSFCMCP>7=al=BDYhB%c*?JKxc22SKyyCakX>FJhwM?L1ASC3iOyO z#>yArxhL)Hixf*7c=2s*AG2ubiHfBs6pyXh-0RFK+W?LS2gys#$AuTQ^YIYvtyZve z5F)Ehx|B#snQuxFh8ZyUQy7~e*L%Gl(~KK5hX$ZEh+HCT#?Yjsh&N|s$d@YPqe$cECme%e9 z=oGwwh~mV?l_6Cy;nTxz2|=R**JWu+KkqHWGkfx2i=+^IJ>$VoJ39=?k-2)bR!elm zF1BHX=>T6B4`t2{<&eg&)HoBIWwf`5nJQCfZ>bhS~3+`N>+|BxkRv)EOupKQhN0~7-0e{0u$!t zl{OlhYb3`?7y+TIuOs?fW5TPf_zx8#52zD(Rgz^)B&-r*a8JT0>pK+J3>+({_Eeh# zHi=~STvUFJnn1`riY&Tp#jqtPIRioy3L~e##B!98TS417S?ndpHo3&jen{Dzpm2be+@%dHbXU z5vk3Hhyt~UwG=3(UyD#cZteks_?8(L!ltz(<8V_T`q8#hfVOc5XdASA?tCDX?^`OF z(WG=)OWEOMfW6e&R_1ySjbO-po)}Y{s_VlA?eSG81wW>M=c$XqATVrBQMBI1UcitW zPa|uB<&I3@D+F9T zhu*ZR)figH_5n{y29KS~O*kyhH0=9LM)mOnJk70mlzJY_7Vmh=-J!u?(t!$d zcZZb>0dMNNz&!M6@(B?kJlGr0Mbv}10Ks}n_2$$GY0Mka#K#kY>!Tv_3LWYyA-On4@jcG&5Pc}-Jv3(~p|Q$F}htU0U7&k0r2*llDN zuWe*Ld=z-#X)Mi2Xvx0y8kbnG&S_&K<>!pIMC$WU$0eL$1Z6u%O#>8aF`;4 z#Myl|4ETa#wFqHDGl5ZQt~;y;yi!7zgftYKa0ZFGx~QN}8Wb;jzlhBN0PS zn|-Am19{ri)x#A`DXL~8cL&HYA#Wj+u!g2D83Dp=2-YS9KRGQd6)bT$`+O=PU_i@6 zH^er(@9#FAW29N*vsCEJiHdF)uMt!XEJ~XZpn?LInjA3-ls-4)@#4Acb-tze#S@w! zZv``?7=~pCrgOm19H~8R;VwZvd8-X@)}&! zvS_DAxP3VrejquGQnR$7aZ91G6 zw&BJO&VCv`7(XIfY9wAUQ3bLK!ZMnk0t^K+<8Jf^TM&4NGghW3Bbe!0d1?zq=3;j|8kwqLkh+irR=#&6!qRPa6VMdG*CC9=sa$gVrGZvZgVY$&+Ti5jW)G>wC)IrFROf`=wkMS8wG9Inq_S>i zW6ThAK;52pZ&(VPzoK#D+8)v8&oUJuB4EBt3sSW|lFN8!gbSo`=wCw^gIUVr|e9L;tGRJPX`|-AiD)da^Xlp@V>ZS>Och*QwpwH3Y}LABI2UyDlJ-~?F#4; z`9Nq21Hn?dF(RJn2*p}cG9pN;6tKzqVx+CG4LI5&l*IYwR=h0o!d{pN)!w*sVh+Y; z9%}i*0<9_(!-fkn7B>c(EwQf%$vS3CBfq8ee7@+UPO(6U? zSS>w;8#PWfOBna@#vfOW#|>|yD(}dEmjDM@ssl>5ZbfH7FLlPnfVB`uT=Hjb==Dlb z&N<19^61e)(~hhKm*k&O$$|8TRj_sipy^L9Q)j%+<&`(cB=q4LHCZ5vDEk3d;Ep|o z6e$>QP=@u`ON1k^jWJGjU|v;V4XuKQq%F14S#rFGmZZW$XorK#!^hW4Dn!J#@VCR& zXcq%5G1Rq4ENTSDeO63RhOs_I-9-gPzYXA!wU}h8V&LqVVo`c^?QOigMJL(fH3y&- zVyF60rivMlLSo$D1jBF98IW~`x`?AYAbB={-dgN1otm-mv*wbWj5CKU+)}#aldYBY z+ksvsyo_OF2;~aUcabJD0|4|#)$Y?7JrzppY41>l3|l3hhFjiqX$GSXGTG1qF12^7 z+n&?9B~X1lQ*wHn67tFBp2f;qPTp398$RMDD2f(9;N|Kw@cSIg(?t=FMlE(W1GVBv zmP#RY?&pQbS_(F>&K|ehR3YGhaO)l8D?uc04=-`ykFQhGuX8U}PJm8kim{5BO1iFM z4|@ds${=H1{fPDq`#o7V<(RN98fRrn-x?!TeAh43zjTAqnU#&FdYVsIL_Xu1>fqlv~AGVNSrsmG`D!hink*dn&Ci zw3Ra?Zub2+e%5bM0-mByz&IxiD)2(0)Uu|c-NF6p1M>!Go|Ek)QIcO#s5h>1LsNC8 zRr?LysV``VFeu>~?klzNF;cF)RzwBuTDtN*c!k9&r#I28I$Wd{FJ4Z8Ugtc_YEKGK ztId?0ZMikYByt4R9toM!=R{3dx|apu!>q8FNO5OqCobVj0WKzIr%~x$cV-u~PS>cdU(-4$t=_1@8NG zxD=qE`#9xDtwPgAQXD0Kb#66*)uC|6HncVQMD@UGJEXy!L$Ii4iJRNXWOAM(X`EFo zBB8Uf*Cbd1rI;kg3*?f^@rM^!YEvA1;A5{B*mavTwRdAT+&q9HFM$5OhUqI|o~8Df zakW|5LTw*N1mT!?<`%EA} zFx9rs`GO`~DKcZ$*7%O4XFI9EAp{MuXp`z%$7_s}=BdbmuT0<&3=5`j;>4K3*!oWcg$ zS2XtxqKQJNlvd(*%o$MoSV8YL$uc$WdM{(Rhi3xTm(3hC0mk=WeAzBK)@?J_2}+~j zc(K$1ydDY;%s8@E#b>g}@R8S!;#3u?dG#XS!L2h!8*+J8YzQ=*QZ71%y-h33kY)2- zM|`vs(U;e$12H?1Kvjw3fyPSZVVtMX>=hZ&0-LN#@bxH%o0CMhAFzBzets>b%#{M& zb~i3cmIpZ-@Y^k;M>=5XO@hc&E9!t8Y@{a zvg=nioCUpxxQW{Kbr$^o-&cZ9vt~)@UmU4&OYWHP`z2Y-gtpcC{i$1ID=N*w<7vFA zdRMol^lGb+%eusOsgnKqiAijUYOiVB^m6C$0kR{9xk*#?SvmiCHkyA}t2a*@PsIv{@= zRyUn9mFDcpLjup7-Y;cK+T4Xkwl6_`tUSk{sLDjB16aaS3UTUe(f~ju?&<`B=#12r zI_b|~Is1FCR^WIprCiy(BDOnD${`%U%jZbVUpv6A8>;DW8Z`^2jSQl-Mrw9Rqm>L))W;64Jp8ib2-rOrA+E zEB&Q4E7r7pfI4T{s#5ci2Q@nlTagAy@85g@_rL%j1{3?#u?g$-%b(zMpyC)clfThW zh;C;7RAMmvW8Nr$=*;WtKPv;HM!cGyJ-B5EwmovYAA!JZs=4@F0WdB_8bk!l0hf&( zGN>({czS{hf@7|esiPJQGN&S(XVH<0n)?Q*zDuchkXrSOUC{9;wixUM#fJ#4p84+adz4`Ro$lmb9mp5Zncbc42&ePDDcS{-sA z>hGNmZj#w3)tqmK=!QCN-(eRrZ5GAZw~MGPXhS2l-QUz1b)jiJqQ_LH5A4ZO)>=x0 zPDO7H>rR?s^{U6Hyat!-qDUJFQHk4g)y0)f4zCn}a!+>!ke{qX-BG6WQ`JXe0^VQt)HD7@6SqASi25QaO1lw}oPNryhm6nGN2G@XUc{YtDno|K_W zg)#L{u;VO4G~K|J08K!$ze6dByHkCxCduXK=rp|TRSKK2GxiCxS z?5VS^M=N+3rUs|bj{Xt5^+w|2?Sftg6D1MP{vuhXi_Jt zu@rT=4fw>Je4&{$$-~B$a_xxAPGPE~2G*}(U56_~@<+hJqBhKj%CuqGo`mt~CbLjP zIHe6+)>vt^O}{Jx^f@s(dB9IX;q<&Tj(14*xAz5ji)Y9+Z{fgMDAQ(cE;L07mM?0+whZroBCnc~UaSmUKpcs^O6{5)adLOb7APZbd zWfxwCR?CT?eyL zG7Kipq@FR1h!4l^2yHq(SUYP!D#Kjf_Y>lXV*$IvA=L?qOR{scl%|zZ))s?vO@ao{ zO&luqqVPEuilanih&CZ$`gt}g%lq5bPS00CYSdeIyKUYT{YA7pOPqD_Nq}Ij7 zB*Kq0h-?IiRkyV2g9rmso@0FpDTF>qUoca9A%@}sLmYyM^BolmtlSiaDqLg~YIg*C zHM_?zV8kyar9qf-#Le0s*A#vnWtl+=w^d*(6Nq`PxZc()B_Y_I?{;ypbSOrF+M}%; z>J_cs2wo3ggG35*EnvE#LFD7N7>x1A zHs_eS$iU2L&_u>Ux13SZoR(ZeM`sm^0t>)&7sWIJsL;x4 z2c69?5f9Fy*> zSyusiE+vVmZ(c8;o{P7R-!0SGC)FFkndB4}#ZU@Xs2vFFg?t~LrEuE(fmF`!rt0M~ z{yJhHDAWgNqG?}elM@+3PXbO+R}yv}C)!<99Vpom4ShUlJ%)vhYWH`rj`XhxcZ_{T zpfM|<%}zZm)VGtk4PGP52?+D-Hf#Fn2}J0f27<7z94gxJO}!j+aYtGS<(a{uP;4^- zSSEOudW#b~$gT;QSS!M%qS74pA#qKI07XRk23$;;Giid0!-%g!01%b!alxs$hX+ip zM9QScIq+OIci4?Bq2oSo5{v~M@u=+9I2JF{osY9go>F8KFHP3%uNLQQsAmC{v&{-lqy*KGTQ4BiYsw_~M*Rx?eKU%X z^|eNVw6*dX1k-d2bPn%WjUq>e;w>CtR7JwJT3VKzL z9}~#H0*Qt2%f2fl^)ZZ5Dh%CCUx~gz;!YQr@W=L?p{=zcGLLM=-n*M}ezf5TW}JFX zx=m|c)FqhMAU-y`=R28|Ha(&695S%kFtMxxgj+0hvSUCN z(K|k@a`Bxs+@+;W6xe46DQa$?q{u7|ML_)U4tk8;P+@q8BUNn2L~L2s{%c2Y6n9pM zueXtxU{tFVbwn}|hD3fzL4d=0DfDu?2{pb0jt2POBJPa)7K$2Ex-fE;%-u7Ctqw+< zC2lB3jA6WM8MET2dyyRE7FSmz3;@+&H-4^^4mLYZ!rpY+^r**hJco2T8s-;#?~FaE z>>{YDk#vQwZlw2YfhfW~^*<*0ml=6VCu@%xfJFM%)UB!KV@Q>p`vS2ZxM5cEi7m53)#vTSkt&4Sq;`3J)zV!_gw5g#gni(1)5Z~5D0gk9t;3=!o01#?cE#DjHhw2|Ei5ZJFWIV{)} z2d@0E%Z}VsmPK(g5o3Y~dE;qR7KCh)TDNCen8CKy)u-yAET|f+*q&%1O(xQrV5K{j z;C;HouzZ!?Cjp;skeKgV9ZC#3@Pyv*x_C#H9kTqhuT;>!q9jz(f*6IbQ7P7lo?3Xb zBP1~$J%?p!YW9V;sKIfvF%{d;X>^^mFewJzgGwhshBImD2tJN!WkVYYtK|!$9MDD}>r;40)FANRsw-#JeRolEG8M9LPI$6}qa+PE?L*roYAw?*y8^42)5VKGx)@B{ zz~L~`ldqmVC939bq#sV2eV)q86me+u;&Yq9^mWAuLHJFQ6az7WGLAkS%0V*d+ccz! z=ZNB@opL&HW7p8#hehvjb!67Pd5>fXE5m`0rR3L-6E4Te)roF)`M!KYm%m!`gRb|h z63`5fA-IP#hQ{lx^x$Y#W2S140w+si%ty=3=}w3+F)tNjvN>9V*!w zEm*2sa}O{Xt?0DHM-tU|sH~cJvY90!+hUqFVWnmtJ;Ay-wcbDc=E`_Jv}~%(xuhwj!fe$2067HK&tVcXz8vS9RvlTwp5a6*xHqDDJWJl zSow+qY$LR$4N#r%+aSIa=f(FE(VEC5z;x+l3k;ZVo&s0VG$rU_u#iyc!oucs;avkON; z2APaLT}Q?8o6HS&qs9vL=VYnZ;^!jnr+fEo)whIRtT?OEVVu@dYtpLgLfJI^!*im~ z;iky0Z-$(~BdYahdOX?aQM_x=nf8dw)Ya%=MlAGNEr19*%jqJ8O%6W#qe5E96E&!J zme?Vkg@*ZBMlp%pxJ{i=B~-T9l-I|r$MLZDlDUw4o{tF1<#W~0Vy`WIDp9iUW7X%c@g@LdZ^ewyx4T#Zd^(Q5OBM*>_!Zx}My! z#8EC9Y?gYZ%I_dE`*YRqvC;1zKp_!RWw$gM9zle)PM#sZxt9ZzfLnp!-=f zan#`RHa9MVpehy+rgpE93bWCm{AIzl!AKRa<#H$C^~Ke_8Vquy)?+6b-US@y$@~~o zN-0PY<;L|!a|)-9s;$O-g|<&6$xy2*(*2To%+X`bEx$8E+MP-jY(75S#3-RkdKD7| z7eKXU3tk@B_KRZ*bM4q&qITvzr>7k(qd9UOaxYZGGHswIvZ+1NZEz&C+c9kv=bWcQ zWNT!VtJ{_A?P3G-ZuMTShSR~V0j@D?G8+b+$`J^WHNJ&-GPCS|00x?G6VGcm07Ppn zXI4}ZdP;HXy=GSD>L-0-p``H-+7YMkJh`rv2ZH9XE|R^A%_Ajb2ajUBD#EP2`KxP%QXfJ6v!?5u}*%qcWUk{kh;)bSx1Z z976RC6k86jb>wnwRXxWN7&A4pq;^I7CPfuWOPXIVH+^wYNFBQq_{nLbSJR$? zuLfn{8`y(wIng^iR;qgD3(b5QeLxY?(^|f51QAN2xQ2tF9b1}oPx`uwy@oYefw5t!M%2yoP2uKOcq&SVU>kD?H+aIS5&adp+i<69x)4=)O}Y z$YTGg_a;uCkWwN~=XBibYTd6Q)j0epEm{R^iVB^LpM`K0=5hUzXxB?i-eQoc#x;C^ z@Xp#1Grd+;4lKx71);U&>#C}%J}FLzAA}etvG1)*bSUdRaT>3yk9i#8LLwdlwPSk0 zIso;W`)6iYV5yZDx-XeJvr!wHmc^03`usrkY>f5C)E2@pnYMht@cyp`6 z7VS(Z3LkM-6i0fW0Q@_!;ti-Qxj{OBsP6;F;f2YgM`yuYM7|3KoawAoK!nKfG&!7v zdbggf)~}qo#&gR{Kp8D_0-zz-^Adh-&=TRP)=2500E(h9PjL9#tB&JZg+{C-1KjLJ zWN~+bA!(SQOz+3xVwo+SNA6%~jSq`;V^!H)Jt2Zw33t;rZ`kzhxDX{tUFkHfxC-_R z`FWaJOtorI7R=V-Vnm5I66gu3g0v_BVqKTivV5*XE(S1WfJIBCYftJ;h2+F4?HRVe zOeZzekyR3{fp9Gc8|avc$~Exe7NOffKopjB0%sjUZDg?(yuUK8pOw>nQivdkpguKe z(ALVBa4H zCP^|L*F^@$g(~-7ZiHnkY!O~Kjrs@XEE3FDaav|7ppE0H<9FcdC9ekfS?+I@_iF}r zft!0SkjFF=NEjAFjc%$bGIg3`62uOl7}C;K;U`{P(JR^-%$qa1qz6UYg(6wiW|kr2 zOAJp+3}p(einytU%G6M9QNZ}idF&-|96WGCFc|H=TERn|uMeDxPD1JqA#mnlT?Ggl z11@_gt-55rtQ4f-<{sV7>Z*RIj9HT>fK2ryS2m}H>9zd^ZouMTb=D~GqBg<~{ar!X zw`-!W?na%nt{an}U}xPXPc&OX8ROFx)8s(O8);z|w&_aqiLBF>6C@G2<#(_zTYHos zZIZ(l%};2c{D|`Ii$O;+h)09LnQ%8^uJhBObz-As+PeHcsVIbZMjsK7B=R)f$Tc>l zy``4nXtMjApfc6YF02+PB*8ArQ>h%ChKQfDWb! z4BTiRAlZyy?ypsrY>Gr!3!)I_{kTm#2cmAOsTR1g2zM^W2&n4ceYb%I?j<*V&{sH2 zpJ3L*20{u+=&108lQbU+s5za>t*jJq9j5YWSDc{h!Uq`5mE6@4q$(F{a-z>TJV?%| zscNsjKSz+v^K*8^^9+A|@CV-j0DK)-^C&c5qgb@(Iy#v7XV4WWAEG2`)Im_{cNjEN zVS+fR_!CR9q4PFao^&-TmVUF%q&l9c?s{IFJmAt9s`j@aZt0Nnlc*OU__k_HogKD< zfMutN7NeVZNhQMGj#C8>i8RU4)`8m>&m+FR6i%g7W0b9`Cl6OaQGqpFk3V~Q>bD)r zrq4KFN6)+m2VSK$!3L`gw_WkiVv<`4pR=v9uB0Jn>QFp{lvFUkwZk<%IDwX|7+X#? zOrC!(LJ(Mu^M<7YMy_&g^4$*IGPZi_pD_FnjNj716fnUUm}NaO(8e3@zy0mGy};_>d~E(xI@&-Zl-)A0I5> zy!0)h%N1Mrwu((G_G;+2$3essw}O0R`(9>83g!<;7}%t4Yh%UfT1f&~aRVX0o^M3! zV;>*42N67wlhzw97YfeNFtnn2b9pnA4($x0=`9`*#kVd@mFU8xMUAZL`c;{`Be zd859e&p=HX^#aIQ*{@+K7405EATkuUgZ5Y#2I12w4^n?_95QcgARFG0Wh7X(DYb)sPMY>CY1(tU4E|+Alpf24ntV16fkcZ7jwK}llT^j z`4ZAzy{}rnUYFbx=#L0--(V_b5O>EmiG(3gl3-&g9kI3Xcl%9-(U}9fV0v zm5m{)(0!7Hk;B{z=D-u>yuzyTKHNI|6<1@emRM6D)nVf6J6t^!XXe#dHIWY+@FF3A zTJ*l&Lsvk-P^KW#Wt|{gzfq(ewJvijOis;ez7igr;|g{hG_1(p>8lXqT?3DCT$}40 z3q7Npk78`1!-QsB(Z7ok?JZ^9qcUG83}BMksgutr!yFUtW~rgDsldzwthrmZxTLh9 z8DI{Oy7sKv##_A}`6WuJDrk5{G*Dd1g$59r-jp48LqqEVJ zc$Z5m8uu252R_(nq!oDC%_UlmXxn5Y-qS0&{&;IDb7tZa6+=IEBA7r8*&Cz`*s#pk z(L8)5!y!~5Po;(3`HhljA7XuR=c3E%1fyzWYQEF^-L>PtZ?^XDk!%Uuz{`v8xnTp z=^HK55*BgR7R)(fK8@tmNg2X9?x0ebH4-v8F)o9?`E#_GL^2RNbQH|e?oJ8Pb%M|q z6+5&!TwgwcBHK2SMl3tBWanXl08pb)@pnij*scw(x*E+&1*@A5ZJcAPuY9}$>p*WD zrk0ns5-{{kOee2v(q5}86UPb_c9TQ2BhHB`CtPy-JG)Q{JVk`!7R&+`*e9Sgcf3j@z^ujfj1_$yKQV z%ct2dp5)#gDoXk155hf_JRPpzB{ac6aKu)pg!3wFhhG>~C=>%qBp>TG4M4-{9j&HU zF7Phbaf}lY6kijs#E}AH9}eU)$9;n8<=L!}270eZq=+9vDb@0~J3B8LW461Qhh^}# zLwm9)SKZXIWMMfD3MNZ|-awQDHq-59NF*I9|=_u^63ZNNm6)xJkx?8P1F#^6a z?sL1Vm)OX#iAVPCc$8KcND`n$|A^^y~ zEE+iwhiqWx^0%5EU9F&#moa74MzU!VyNM2(8;j(daPHQRSBJ#qXKp|g7P@fLlyhNF zmvAOBzz=;#UdlU|MH5i(TtM($L1y8|>1VBbp6NGFbztP>sN-!aG&5EfkxhFa4I61k zK@3wyX5py~&D1Z5Ncto1Q}!XD3avk>}1;V#ZW9 zs8-1^?}oQFl#?HF_Hk|?BiZ1m1cK0^-n%r4T)J5$$m3!(K#SH&E|1H*KL zA1cnR;!!OJ0Zpm!`Ds0cBg%!Er^Rt~DIw{gmYOB}xwf9?G{Dl_OsDOfsH&a31JSgT9xcruG{>Xycc{S*lP-Q0hoh-BcWHvmzQff z)`6i8F)_@e9%&g)6$;q_(!q4)e7vq!1X{m?kZz$CFlX345;*$V^hu%J7Y@lpZ3k^!=67I!TXy zsfS)js|FDduW+3b_$WTS zyxPUQyXUgJfuxTc6v{sA zAEmC2Yf+N`1Vj;ZnNbu&34KxwFH^X3D^|>YNuxegZVYn47eFs9D`4%HBkRwV;nuoz zZA#*;p?w6tSgbiIQ5T`jAQ{MNg5K2ulTSraM@(Ypc*k+8ZRvx8di*)DN9)#K4<6+W zSi|}2ITREV&>dVwG#TNcmVLuOw8J&Vg^?HpobI~$gK5zC`&u)kz4L@uLBE;0p^Pzp z7d}I?Sv-M_-O{4wN)Wgs)lW@$k3cnLk0I)GS@F~YuG}cS4QtIic5QylC%{S^Y&YIg zrwntKl(#u@ZV z3)lu@D;|`iq6|T=W2`M&1vF}|P;i}lKE#M{TtL{O> z;S}+1t`?HKg-_DyPP7r@@`x~w zcrVDXlbP=_-3LCoV030ClIpTw!nf0kTXkKjc{JGDGaj`1FgfoxeQ6M~^F0CnhU!O^uY zJb2zkC_0ck3r>ist30AbX1YoceMk)_^=KbXSl&iRbi+B*xWpdylWcWp+zLu&v8&`s znb`_-J%$3-M^6>w1DceHTGt_B*z>s9uu`Fc%pex2(*?;EgKC#ao^jk;A>d^&v{15u zd%dt|#urbB3zD68QJ~p3Gz$=7?@lCU7)P)ibUW`=z6BR}*@~w(&+bqHiUG_L3P7Cl zStwEUMI^Lv-V!)T5v=*_@@;ZpF_^Zf-)XF2ym^cX?dRwd6y9jc-+_K;NI^J&Yh&71 z;$ALN$l`dnk`u!zatAt%jLdSRgO9$XVrp#y@LxZcRHLZ$cQp^gH=$Mr`Oir=P^`{I z@|BRH?7hoVN89B>aJ_wb5{wz7i3`jummVGD_JPh)U1pUXH%S;f)~B~OExo~#eeIX2 z=ItIWvkDN{VHTQ)n~i*VgM7A8U=;gAP_YLdl0+`RUHL*}S+mvTMwQ2MN#TYh@$AHw~ug{eY}Zf;L>HNwkP z2tC{)hNU3^#3FTRr^FpvX0=M4EMFk|f?zFxw5}*LBsEU#yUesM&1!Ab9WhU3B0sA8s4S7Qp^F&4R zuDl@DT?F&lZwN<;aW&3tQlJc^rz$U;J?Fw(*af@+m? zcbf;p4W2RXlS>qfAbUu*7Gj|Z8#}0zLL{(;N%Bh1vXqOEbl^fdL=@`#ShjU?xYxme zMlC#-wUSlgk?TAt0I6u`-$+{Pv!c_@vQE`9sg)zsU#}jbQ@4SO2P;hYx+fo&iKVnK zN?)|0`H{u4T2)Yw33#AYjj|;cC+uS_A{E@+;zw<$m=9COgNNLcbO&9fkwtL$G3%zO zbxUNDrqm63(oV@sE|C}Go89nS;OzlNKbY_-z-!nkRknmdu65(A2RQQ5OH0N02aG`s zXt}NsrFk-W*3jMMp=upzt9M39=x4(SBQ`3og-E>J>%FM)q1wGLop+R)DZJMVq6i#e zt)3ix1Z1_SmtKWprkoAb8*}A5dY<&VgM@c9`emR~dWW=?4-hXw&5-Op(XEpUj2q%W z@Hg4B2;i`OsBuJ{2(+fxifEUR(+3v*_feEFWKR!V+OUsXMbXGYzS_q)y z-9(^G){}afY)BJ$Jx6PHk({t_A=S>kSG`btJ9|p4B_TbSi+&v-%#|26SYYJrzY%ar zJTo6c$`WMLi78y+gn6k<&^#RG;uIEs@GEi7)A)&6%pUQFUZQQ`Z=piGA7PIkrbuC| zUP${EtrW`2+uLhdb6nSY(US-m{g69`BIhX7kKock2^ugM0|tY@k0!EqRX}tjOoC)j zDo%j8Z>5o@E}zjHjHXEC(;P27($>75xk?ExOz>sc12Dg$}RdgyXI+nyjs=6s7uZt_+S6;mR{3M+1h$XD)ug^oz}Jlot)DOL}T zoO$Ha1(n1&;O@gil2zJ*GqAJ)I=ROeZDS^b0qe|OT|Sl>Z8!r)^S#hodaCtmasgEy z-a7m3*1AXU%qo>cM5*m_&?J2zrC+2+Waq0QEf=crmI~FT)OH zov~3|URX3-a<5sf5-3F`u>(7~5hNxxOK((KLXr(vj8u&scDiWn{uG=LcG9nx9FLsoKI zYn|vLf!{Ff`bJ5+#1l2~vvaf*hv?4MMmuU8JNut3z(?qLmFAV0Z0 za#n~vY@MC+%SW((wZI4>1z_>a32S^O>X0~oq0}~E7$n_c?jO5bLGWFVQJn6&AiS@w0GB1n6Gz!S)iH4W9)PPgX>bVJA&racTb>5{-G2j7Q8e$S$ zCed~_R&uGqT=xsb;86y$Cjza4ZabNHtaS~fB0v%Cc>Kwb*ZY~Qm7LY*w>pbdbfcGHM zlhFFGe4KoH6oX@r(y-Zch*}yLET#&aS|0X!G?1IE0GJ}UCsM~Y({m}baSd_bDim=o z&h{_F9wRKAuE%XA=B=QAI8Nvf3~iKf;35p7X}n7U)uZT_go4@vn7SF)mxexTFo-3p0NMXSvgH5Dl zg1qZ_8ajpo$mmjq1i+i!2Yc%-YVU*~v5m5)#C*XwHSz9a>WAlyjII+zOCWmb!$dIQ%PK&LmC=hf^l#Gt2N}??N#ULJ z)b(P4J9z3a+uS)2Kq!*QLf1B@&RjL z+uw+F3&euuQeQ8@jZgT z8n+E8d%JxnqmCsF*I$pl02+46x+nE6J$knv09sQTQv101FUgoqgO+gitNE~ z9^|U^Q;!W#huks?n@ViniOryJG#Us_!nbv=Oj!^$Us_}P$y)WPv0{Y;>$hG@x==(I z&9@ni)rpNx!ktL^OI;K3zjClba`?pbU8-@n;2K(~j;fewNAMtFW@&s9Ao4P90N$0Ei|O-h#{;YeOO zIND39b}WbwtQcLXV_(9-?X2Y?PKFDxdfbaU2k@l9S#bb)OC3Oa(zT1!Lt0G^yuC<^ zT;s2kRstk%Y1N2)mlGvJMIF$i&(gW3{&UCbt{D$wjBnS~nBs*Xh;6UJTT7O4c0);& zi51#lvXZx6aWVB`P}EE}1aNIlHVyJct(TYe4`GHm$l#hy=~bfC6@DgOk&z0PP|UT? zg%wnTJnAS5UTowUB+`qMZy{U;2qHn--*KRkZan1!``Xx^%SK}b;9SKW@^)4?Y*hPu zHIpJ|0pM%g41*vN!I2?@5L}1tiQWlSNEpak zF1#VwA?@(@rCZuWTu#;7F$LJ2YNLB=I0%l9t8UhchCvZb?(2#2d$PcTq$ZyhBv-eY zT{m#jLMY(-sLJ7arKm$e#lyVO=F_1IExECH`6Fdf7L%6L{A;K=iC#Nw8NjH;E=YyW zJ-QwobKG49UGdWGYO|4v@WOeL?&N$Cub%paXT)!eq$7$wM{w&tRuI5A!oIDtH)VSv z%hr3TMUKWcF|4C}9ZvBMvYQMVma#JU8Sxkf)0`%`Ad4i%wk>c*W~NuvdcA^|K$kB1 zuxqu@>|`Anw{$@*-s@1M7)R)G*k-=zF3!JXg9AaqUDHt>+y3}I01v+V;0$zHkJ|lx zq=Z$b&&Jo3AA5yh&&i78wQ%V9<%AQDpyQjJb4x_J^Ob%^O|wR0SDCRev{?zgr>ahj z-LEj|=yhj1(_ft#kx*5{Idv|I9bWo?WG)tV_4pbjx`H#p9tl%`vMeqXD1IRkrA-e9 zC@p%Sx4ka>VMyuH|ACybu$tNOF^d*0UoRZ`b8%_y3YKtj3^%aT!Upb{NUAtt(hor% zbBC9FD2n}n(dbId$Fx40jqe2TD}-i|B*j4|xm!*Hm)<~{v{sLMiQ_E(jUK0J&1;(} zWWwVSh!Ra_JI%srpcGq`kV+<)dj{+gv~i>%C9uj|HNS&>I@8(>%^_XEyJ%rMB{f)e z0%9GC5xD8uO8TI4y^fNe84$vgaJp-Qs&e@gc}Wl)ramsC(JUBtbyK7!Yc;%Jh+KS5*n*Z4r_^ z;XKsIA0;w`N(mWY)s@B-j|WF&oi!SEQBJ%6*R&cMZNw$|MD${i`@~;9EYjQ2^RKu;+gw_P z%@ZFHi|IALmNx{6Viq4uAUg~)dZq8M-f@YjX-sz%)oM8ujDsx*}{IIrI{i+zp_u2<7 zH8}Tq=HAQU4f6i@J`aFC_y7W>-_B=)pj1nbI3rXALhGp(3kv4G*TQG#u`rB!)boNY zz1?kj&8GU*Pt=GUcBdLwi%bA#c74(AxTQ@^Rq=)F*>mv4N&|>y(}0R+R{IXzTAdk% zhh+TJ^m=BSE8M|9X99Z=^n zfRyNwSO)JqHTqMwqaf(F>5oH28m1keCwqh}sSf8Fu|vAlr6$Qhs#;bBQfSQYiI{15 zu+g!a86P<164;E}?XFbIk@4|kVHQq7`>9-jF9GV5*8(xYly@pbheJeWZT!6>NGKLF zw-%i1QfDNh8oDY4K7NZ8S^zGAc}z65*eonZ+$MiDxNTH0a&RR=&pbSR2-&0*BB8aM z85iYaWo#U9B=NV60qAkvN_9asYz^vy$E>B-JsotTd#0>a7TPBJ4&WxMYK*LKObt7f z^Fo*`^gcDN9B)BV5p>qOdbI|9!z+@$DTBJSP9}RysJrAU*Cvj8enqq0-ts2OLBn3W zazyk2&I)i^7LhH+n@f#tU30)0W@Mt(@_B+8(nN%xj{zX^8AxeQoYtijX+pba8$$=L zD#OM&D1o6+VHwyy#-ceNGyvbCg1Bilvg3Dpfr_Y-65d83`d|_S&2jr8@Ex07Hd`9e z*4+NV!V49q7V~9zRoSfgAhZVe!;vlB#v~^<)sXm5Op)d^6sC)xab~?30w})0 z;3rQ*Qt_)i$=vOxz~jU}TXXbWRqDu3jfZIfhzH2Dbyl~o^R;d|IpMTk00%$`H|-3* z66?1+3iE2Nip5}GY+L~)i*zjRb{qS34bo|@3SDuhaP)TWa$7|zeMY?OmF8pUTXZek zcoT|+Fqy)7$QiG3#e_eO6eXA4-ca>UwYj!bE%sqZ*DC_o3C>n3$nTwXAn6T6LH*Ou z48YxG=a-!_+N*u%Nh~@B0tJ<1k|K0pF!RYH;iFcaic;!5aIJ==xHNXe6FuX5eUWo8VVy{I7 zTrDuT7LhP6PrK7r$)VuD$a>UjRlf<9REu|l7~F~x+O}gBNvpV`p3cOB8B#g#F$kW~oYDve~NU9Qr~M+6BCubWc#)`!QFG@hG+^lk38uuYngR|&{b zdSp#_IJR%qj5J~FRYD0g!+R7u;@Xh%={D_ z`9BkKVJP!qmKzI=OGAdkPaGwZZV?iML5_v%f!CyTo6O!~7dqp(TqV(m9cVmoA8U z=%Rowfuim@#Ct|h2a%pag>(>PTCOx>PD!{X>ED6b^M`uVFc9t~m0pZ_>eb$THcWJ0 z?7{?2FDm(d&cPKYrVdklx!$#gOMu`&+pE`fA@;(l6!h*bJ%Qc!k@p~)>-sM!;Ldk< zB!Z20hR(N}W?C=QMJ~LB1;Q)iL*2_5oxhinsF}M3VSFBjGA~>ZLTmS#+@ug|zO-23 z*Qm)ObHd&Ax=tKdh^*}~Qv*aL*f0l`M6IJ@8DR>?gb0)tTC9w)jRjW`RoULg*fB<^ z1DnE{MWT5+K+&_m7$*77dO%$|5G&7>S{1^y){%*33^oZ2BA#(G_B}O09u{GTENM??SPe=&bXkl~ ze6GTg(;h8`y`}6Ci3q&tT4GN{3Wtl1b8%|a52p7@<|VM@m5jKe=Ub~LBn3{#k-e;4 z6LiZ-!IP+pA?+`AI;OHsFeU&r<+k|P!o*nKGePk2aFE`m*%xCRCVBF2)w4_sj1v)e zK5t?I?QpSc?^W=j%U(yZssc55QPMR-VFVwtb$l6ou~n^?&*h+y+C6&ao00?HVHlGW z!H8{oaahmK4~$8m;&QVO2jO_NuVU|qLeMf|1BXt*B!@B@eGi*$8JSv7Wxnqq;czdbm_!?qBO0gB2A;-J#VItc z^~J2P6^dmqL0!FGX;vSJl$g&*{DRKR54L9M43cyPuOURGQmPJi^5H%!^}~^2$R;Xy z3?D#Cz`9O3*YY8-*W9y03^d=O^;)3N<)hcx*$dHvl3?Uyi%zWXkFpn82EejP`)c4S z8|w|72pZ?Y5`rTk0V%W953Ms|`w1rfnmaJWp%%fSW^_}8UI6BPVosDg{ zVZ!%((23i4!C0{^uSmnLFT^ybriro(&XHq*XC5#F#M)u59^ru@bYLawzVa&(V0xyc zRI@>31>Q%2n7YQEX&rSBsv4wfToG!+21|!$16bnOT+`F@yfI(k$!i&U@0A-h-4KjbK0G$XlK0Q zz-8o}lQ?k9MK-yt!`-8nttR%w$2n1h9=0g>B&W>>E=K901#^6Q-FH=OkE(^}QQ8+QV8%3_2;0Xo! zkLege;%hy=Art5$rN-ny+++btZwjJhC|Vn|JkYK3_aLZ?DDSEU{gzw=AzBxfY8Gu{ zJt=5!#DX^+L2qYvy!5zN&FmUk*cU0;*pLARSbKDxN*YXscY1lU~)pATWKI6P9*z4`A{~4FsvUs=9}F_ zM!rba+qJJGYF(3ig=^iX6&1xi64YV#0*c_SMCu+fMBMVkL|;`%RF@JJgx3H`K(@ae z8R>65%(CG=VY#%sU04@strX4<_7_dpZeH>NX}YLWE3Bv=V;sq<2|xo{08NcDm2s5w z%^}oPuNcz}(2qgm=8r?YY;I5!T1hIflPk;0Z~^p_Vfoe{u{o=G(@CA|q6`<>Pe@1X zT$MoN+)5X@)iCE>!|k5w%m=sBjOI5_7M<-vJeKx95|&gELUA|%DWV2&dAn(vY`9^^ z83b^jl~-z!l-l|>c5;gzb6E4r=ZQ&c$(TIvdS}iV*V?&l7-UllT)a36uHM0F(W|P% zy&pehwjrZZP??@w9@J+$JGScww+u_zQ4N+sOm&n9{w|KUYQh!rE`yXmhk2SBxxi$7 ziMe&wBL%caiv>9Sf;`}tuWm4CG3)M=0l+c3wT9beK7^RflA|gTE3u*A^bqCx`E-mm zB$CRW<~gV(k;Fp;*^#B*ws1fmO3YF#xP*(>psXDbV2A7hOpJDI1=-8O6`w%36)QV) zR^KN=$s}!7Pp;m*f~v%(UNm-%t7v}MgfN!OscEJEJ(Pq4l|GtVdP)bTm&@g%)2sJIOK{t4t876Vn5i>veDmKTyT<%_uMH9EN< z-JTY4Mz5Y~;t#r)cHh)DsZinLz|BcjoH(-EXYh99`a}sFLBV!Z(jZS{CGT&lU={bc zBC>P=Zm@LeHo9y2Rs0#daFTW*p22H&YHk;$v{GTEySFS6kBDXx#H;^&P0pQdzJESic542<+*O zBN~fmW^4j2XdBXGMszoJPg@0H2&(JJkQPL9rN72Gb-SxdvH!NjlO{KK(M=jp(8@QIDI>&fGd=HEqapnSmkkYp+rj|%8<@|0>NA! z&a}5>b5~HN!e&4?(PlIty6!GpOJVDxFJP#8oa!2XkA4ka@?=Zw=l|av^TM z?Qw)fyuHEUnQPC{H)BNU3D~a6HsLqaRK_ z8Qb7>FF;W7Hjgk{T*T-jlQQ{2r-E=YiuzBc!StIQ|%lV;q4a^2ru2JzvM zND|u1lk`60<1d*wFeTI;A*pv9c1$fuNvUS-tzAV{b_rdKW&|UJ2nwGKI+haZBzHI> zG$=w6fwP@eIE+vr^h);~N>bNEbyg-$s+ch*?dyQ`^!$Af+dC+&U6+2qs!>X`*d9>w{dm$%N52qKTF5GkWF3?7a()y~u-nVa5#5`56MXc=G{(gE>OQdzdmy|l{ z9*NXOX6aJx2xmvcPmSqTdr7=f1sNV7D-D{flc#)YGc10UH_oClvl(SW-Y|dM1$7A! z`31Bpha=KM9wN#eL@aZ@Ve>n#RPoP|w6$#jx3hqe`vt(#NOdZfdt|^9hjzhH^Ik|zi*PlO$J#6Asa+Fm@*On^1VZltu35|o2{ca*kxVw40o7l^+n~$;?89ozT)o#`4>v&3g zJy7e&&82L&9dM<)r3mmjyIjb77U8)OA<5-4P2a%n7`4Vwj40(B^|0JJX6~ltO^Em~ zGukAWj^TNuh0|&_xS*420UGOC;G)1{D?D-=Ktr&_>!yt?0Zy>QjXazszVkmaBD+jV zXfvHz!9SR61tca@dv50fxs9;^g;nXkm~d2{;8>Vx@xBD>gi{jR69aNa%_f`+TFuD} z?B-uQu>pi#YcHMVFAo+_t$E!8ntj6$P%Ql*LBLY3`u117nk}GO_-OmeCBTc2+7AbZ zsm%9Fb^MI$UW?hg^3p^XsF#r(5F9n*tCAg)t9NWkr_OQ1Re>5)!mI}D-kn<@s#Y8@ z#Us!jMkWTz>N&iryC{kfYa%R0HJ^Rq2Jb1m622oETbc#36Z^e^1>0c#MKSAlRbgn5 zZQH#>n(cSk<_f2RB0E`3h<13KtKHWva?eJhbzPzDcV06$TTt#?k&~jZ4}*|V);2m; zN2^WW*-*w$npGkwSsa{*VOXol3pG9uHqToiJGUhMbqn)b?2=ZzwWwpeSfpFTw5&FH{PwvZm29xqD*6-ovcb967}s4rApqeb)qT;g2itfgq`YgJ$bvg zeOK7;O!!^^mZ2L;*iZpj&u59Inlg6k$jqm*aIXv(hY0IKG5w(2s)EF~=U-Cw*}Qwz zl7g93Mx1^@N4gMU2->D-Nsl(-LkkYlTFAtlIldIwoJHC3DZ|usa%?5uvW1_sO3O?+ z>4^B&tm2+^SW8^?hMmTzntU@<=jb%{2^vlIM)~Kai-@WAkSozv4k=#lNVJKPFJ=;ld&3ttRkp3*E^Cf`iT+!B;8~5F5HYgo-@#G`gER@nGo-oG_*98F>T!wggLiE*| zv~@zBO|Ev|jHK1J`Fdb(eZfrv2C%OM;z7r=2BD`R;H-``o?V$q?nNSM7_`k?NG`3e z-U_C*!FUy;n>b;In%^OqE*x2u;2VV}99t0$X7r_s`R;C+Qgddb%eM)NfaV;&3q;}D zA6C=@fVK3`w@Q!|PW`N~6d;frGl0p&N>72kosk7_LkH^-YBBLR3O1N&(rBV7@(pf_ zT^w^Yw@^!-t33@{I$29o6wyCEJf!-M(k`Bp<*BikHC*eXE5z+s#U;_+%-CR^HKLNz zPiDL&rv~9%MB8UU6-AIbL>*u}Sr#q%q~wo7eaNKHzDgH;!{Ks;Mm>ziatO#tKALo( zJCi(u>Q3+*8(8=`#UN$H62ZDK2hYJK(5tkn^m6M=(dD|xewhz&CR|nHZKpR~i-qH^ zR|F1$I_v8dLnJb^ux~`v{S%Zzb9p3$T26@vCzCr_y_hXU%iL$8-g;oD7B(G_vdgqC^q3VulChQTmc9JC3HZrKq zBVV|)WlB0e{Gx@hm0<5(I<_`M`tA7Efz{i7mai~k3X0CU81-P;S(l$t02z~CCe6rE zV8XIyBRrL6rGnGzJY%jz+io87A&$*z7c38E(dpNIVUSjRZ{1iuu^8msOA>k3J%zINz3wKt!-dW|Llp5bs zbh#$2`P@NruKkNz!k4a!Dc&|}`~Uy|00HnEb7rfVu5L;YdETG!`}5o)z(CkVG4CO| zek>98H6As!*7`LoIPhs_6I}FczOi~`)qSWMeDHG+YB3#vsySfn9oQ+7&RIvPab%e| z=Vv^SmMxgxN>ZcY z6Zrhi1zB4xfNJGBJoq(^V9sMn?M}SkZM7-HwBa45-O$pqJCVxep_dj=;YTLnZZIrU zR7U!9k=~%{{?%?Q4r>b)t)|Tj@Q`&|>%g%<;2op~w&^ zmOYD~CmInhp3!?W4@idfeV;o~dSjkzSmAmt9w*T><~z6MIpN<1WHZz^4%peidA;kb z^V<&`24Faw2_d*DI|8yZ5fn1&EcwIEksOpmE1bvJ1FRAPbh7w+9Bwg`MTeY_4j#at zCynBogMhPrbQMyzFjS9X?J)I2G;bCT58eqB#W_ECP}>ynZAmzw{k4f3jlfH(Cl2+7 zv@YD<7^|#n9kn(o$?Cyvas*hJlngXs(h3ATd<5-2Bkoc4>mI z4rIo|Jr`y-TwzwP7WO3$VtUpXG7EsuBU=TX?I@;^SLGWr7^df9sP>z{jZv!XyJA0& z4zS-2lyYfn&L*ekHs4k-y%8l~IH{tP`+5Ream*}GdoiPCqgqpyRw?PbUq!M-nOc_R zG48 zM{4#0Mf#Xiluxx51r&I8tnu>S?u#9Jp!6Z;FNr6oHjV6e3$YV4-vB#6(&A?TF5<1lH zTDyS7F|8MRSA;TfC^@5T>n$QK`cA9T$+j}Xg@jazCt}UGe|zmsCXymdWqR@f)zSe8 zIZ&bg008^o_y7PFwRfzq^L}kiKL_LU(wo#%(mzSkt|c2!=d-IHe)nMwvA+-;mzR-& zH`sNdz-~vX%;^=51?MSfB@?lh0_9-ne^o5g;R|{-T6l8y!JL>g7uEU~Q=L+nB2cxS7?>GBE`H1guo z!sG$!6g5rX%B9h^IhmzXF^rynMYCuqKunhrxFeyV8fhkl$DgY#vjc0^5UPNhSyY(A zRI|COEuvzemll1(o-myg(@LDjj1NKZ+YVd}R*W{M4?SSy5j;j!(+I?44_77{C!5Wt zKA%;QbW-qP0fItDPNBgfVUQK#xVtOt#tymOzo4o7nJm;M@VVvzB%f0d1zP%K0f-a> zDvK?zc8vW)D51#b3Ra%A&p7Z_b6m>f*gY&F0L3_GNTW^R&9>i&%DtZZB1oo!iI$q^ zB|)N!*$iwPD=pqDmO)@Fq6Vfzc7-3^2Ln%q13@oI+{T;;nHgydz9bwx!>8<>+a9(} zbwh&Y^b;@w>W^_S0AOY1t!97@p4Uo-1vCNs~F1OUtcN$eD_6BX~*v?O;M>$~&BQ_$et zT%lWzwoHi?l=l!&t=L3Z;=USVne>w9Rdp?dsH4N?=Uj6NQ_jCuO4TmO5}!*lgF(p? zJ7<&}naMMbZQbxxwmIg=^Xvmi7fa)l@!ii-dTu3%6uq z5Z`1P#j+dUr$WO*3mP)Us}&w=DZIWtaI21}#w%)7>ui z5+tj@YAxQWuLe!HONx6Xw1JuJvY#6TTJb=^W@V{{JbP8%L{B=cCLJH zZ4jl^v1ZFZ8eKA z1gs3ALYZ?m(5T7FSA9KE>6D!56~y~h>WqV)D}2-2S1WNwp6>OFu&k3nB%n|g7}6)V znCL>%NKXYu7mgOp3p+^bErw>)!UMrP$y3repyN8@WqT{uFcCs?D;(oZfQK~C>LFEf zIa{hCIo8!CXw=1>-WDqMneLTJOI%7gN43dBXUlC9Tx&xv;*ucTo(5)M%xQH>n<+QD z$vM_IUQC8pRtakxZfbYU#XVzG%5Y3^HVDsn6;@8od7SFdFo955xlGk`xYfFO`JKw_D=l7~nuP%ozW!^6j|N<57A`Ge*wp1Pp*DvJ&y;>}V5jnAZf4*Z;J zrx-PXBn13EsUzi_*D9>4m+=;jrE}9eI&AsCDH68KWbR{x&QU2-iDc9ZdU2=J*!G<` zRJYy-k0A+n4F$VHF?+E*q!g|xt797etyxacj@5v-kk%F7sDR6aAFQ_Ol`~1IgjzM; zt8LdHIW@8MqjJ?k7(2XT;IV&OqO+MQO|47E1~-})w!Fkx_Z=NDsdc-0jpGst)mL>1z8_Vaj4KRi+gEQRFTJje@IbquklH&s=fVf}O)7V>@fqrA-KsawALaU6Ttl zSyyh?Cg$&nA1S>%5pCCV%YC9BuRw7U#Ah zC#LQphXUJ+qt&q9EJ*#DGJ(IvpDFhcO5mJNp%){4=TbZ35+;-4zn-vQI|mB1>Cv9WZio4PqW#k7f6& zh3wO`O}3~+FhtLbv;gL;+cf-eFIMv43s7t2| z*z9$^0y1-i)R8yp)7Hh!AfD$SM{0zBiD{7d@09sXquc{CkRFgs&SAXQj`Cs_xTZDg zRIywI@LNFV8C14{Ta~15h4(9LWX2g;w2p=AeE4hko=H9^%Z=VloQRNa-j#z`zQB73BUWLFX#leCsZW$87cMqVU6 zNexvS7HFe-!!VAvf;ulk)Zbk9j4_ZaE=+}7l7!+R;bhxVUo_#Q(`>yWEpKlO#rL(z zeC`k*Rzpz5jL;d@H|~-k$E1gY83?Dw#u16r>+xAQmPxxJLW2pKljZaK(l`fDIdFl+ z@-nr$R4O}@(Rj>CDJ@A5VOaop2+nn~27XJ6|4>H)%4p({SMAU-zd&;%~ zqY-XoZ-t|sOwk(Fgcv^~1Ru92X|t)js5`|xEataG4OSFB;T^&>21TepDEV@FZbxYc zXVBwA5nP$f%bC700oMq$q?L2gqZt7|Tc~uU=Vu&?0!1y@-vM}zz+IYI@DS2!qo7Ax zW8wFOMY0}jdZkkX2EwJ!R*r?a<4UH5D{onKH;IFfB(NhalDwXkLc^{P35+aZJXkdfdj1COtZk;ZOkD@KYs?pGNV^s{HgPV5~&M>&^^#Sffk(R3qGGBz|WCV0h{ zDYM1t^$>dB3)2&nRk(9LY{Gw2!9orX809YIFP!!*=yjk3wrO16fZSAyS?q^GCp29NS{*s1Z5Nu&>t?t&3T-jvTQvN ziZ+X`z81l0muJI73kfcm`h5xuzJUPGbdDI8pP4*sbolJl6}tUsot>V+T}q&#T1Yqfe7OXB2V)ie1Zy(r#0 zxj^g+fi>@Ng^1KFcQluxoQ!QYdDzczBOcgqAe+a|eUiEn1{8+7@~X4jr*qRom{PJ2 zM>C1TVO6%T(x4>wLG+N%j&5C01uX^uy$qxWVDi*)I#q}sLmqoL45vWo*|F<$@o~H< z)@+Yz5McdYBEG%_b#gadl4h5qUjc+KHZDX9t-Gv07(KGmm^k@VoD9_ycv?o~5%YV- z==9KTJ`LeAVWncc?I@7-WAV`|O94JDOvQ`XX`h*)hro)rb8TCTFuG>9YK}hD=qE~J z@I3aMU^5NeSFycERuz*uu6mM*@q6s5%On>!n5btl3M{b)XnL+~AG}C-vK%URk(z_QF7CT`5*a<$&w@pIMZt?v{HJf0X+BpR{})`B=FeYr~Vr-^CL z+=*WWP1GXTcxa19%s})5O^iV+Jy{WiRB%Tngt+r=hz#p#r_jo|@`&4|AkB9tb}4lb zDu$-wPI?47j{%a8Dj4laVv2m1sGuWNr*_Dk=W*SRg3eq9@CkjS6qk_*Wdm|V5Lkm` zr_1Gsa5<8;%^>QK$kvJ0LF$+3K1iX!Nu!7${VWWcZqNJm*NNYMc z$4a=69;FhGrJgBY!PyTUz?~`8rKzcB;Q=R$a~s!366e&at!3yg3%uTgxr67|JvYf4 z>Kq7T38Mn!*r`hdRM{$kFz!#57;&J`tC^D6jo#5roIHTxDKZtYJ1Kj;&^=mt?cmPp zkwk-_i(7IutJCwe%6dTgk681mte3%Jy}qi6TACXR3k%;!OfBnDUaB(gyFuH#U{|Zu z*!?K~dKyBeL(T@4=<1US6PAliI78#6;k*OfX`ZBW>9yP1ktdeOtaAnE4ziX&Obmg` zgcB_&)w_-q)KQ)t@NTw89OSLRws|u`wz_A_5?8|o^a}y2yD*3yQyiE?KZMIQvPE3uIWHh&Y)8o;-SFxS{pU2)tK=l`Z+b6}fa5S>n-*4?+dx0d19K&|<2~D_lM~ zmf^xpEHp}E7sTT}5V}VeQ7Z7vL_bd;f!i2gVbh91QySX%K~TD*1Cg!hu0+cg50Dd< z%1s9e&f=E0hhH^s-8+CnV!+a018%n4q3>Q9wYDrQnA_^aLummmVx7XsGvJWYW3`$} zUoM>#DXFg3l6QM3;FDY&@Xr;mY@)}nUU(WHkxd5*jhLNFIt)c6ttF6EHf}d67p0#N#k@CGxm|VLLmktq8MwFBh0NT zrZ&^zLF2EmQP9tzBrYaMY@@jEv{#&t=ryl1XLfXK1cw0Puwicz`0e$!U`D((0gH0+ zN{qRs3PY-+M*C+x=pIfd+-@|zdP{SI;Z|n{Rz)Zk$_UWAQkIgsF|}HqESDaFM0LHAb0|j?x@ewZG==IKf)?~F7p_*k zF@Q6fBvgSoD(g-T%*HO1VdbRs=jk1whO;jEK1MRC70>4gaHV(Jb7Pb@oX*nQpwcm~7umgEPSC`OsqT=Yy<;|1FEu2Gh!7fe|R-fzO4 zwYOfH(MXK~9z6SOIK93bB%L7(%`<8=ZMtW+EugKmj|Q&Ab5j*(iEN^_2-Gft*rju7 zu$sVh3B;k+5KZsE=Q6t-i1A)+{6GaEv4LFYbns*pGmpX0VJW&XFgz@a37jA_&5g>1 z$!w%a3mJs^S2qfJ4xzQ`GVnbH={_p$%yeeFo%__bzHD7L-btBR4j?SsQHFbG+uH_le^_Y#a0hm8gqj9Xais9|v!Gpp{8T3N@Dm7Xa%D zaYI`vFi)Q9j5G$Gq807=3wyW~AnB*Jw})`(1d?TD*v}xt&*u>ug_!PO!j1;?Qe0b{ z4`Kouto`F8Rht_%w|N8V7kuCqISOR-Bn63K&yLuP0uv#%nKni{3*mUM@e zQp@pH8;0rm&ZJ^fK!q?1>zC9RHOirPK^QgLoCrx9|F4gwGr3@EXV9@Ipx(xH7E zN3gB~%g8@!o8tSoDOI|~!v33Gi+0}Qqc=133|Tjox8jjriZ@qKtm$u?Bq~sm8sIls zUp~kMgY-kK6QTcI__IhcXvS?3L~gJTI?3w&zICPW~bF&~5d@Obfc_ zuzd>hy981s_G3xjVu`LerD5E`X?OJYuH><~~)?g*?HCL72z$K43-9 zb<*0D*Dzj^yQ`?+SC`P#B63t*3AsoI?Yo5N2}48QyfY5O6ux73`f-FoFua-@Izxy+ zmy`x^uN$tmI#nP}U1Y$>(4Jw@S!(7=V2jjbA02KMrfaksr=D+gBEUm+cahU7mM(X@ zpN8bIE$mY$i`ZNjkEfEP>b#JSNsap%jPBV$*&C`7S7>g5jB!mUvVOy$U;v#t4U{~} z_`AZB$MkU$vG~UZ@V%ZDZ+Y5dn!4b}i8f-qAo-KaR6=dC4=gLTQy3m(&gyGHV+pr* zravCbr$QiL^3k1x--1+H-Uf17D21=qGRsLN`|rL00Q>KNJ-?{2tmi*|iW$Gj1pE1I zHLipUX|D}wzyI^0OdH{Z4?-JuFYp1 zS>iF`uNSispLx9u7gwYV64n-XMOiJOwZv7BWK5t8k{q`w0_lp)Vs}93X?F>>aT}5B zjmBV8x`r*q$+z{9`L|*22`;P0A{%FRZ1)jZMcVRIeq7iTStERs_8(&jR5&B!*;Nm{ zmJ>z1Y%jZ3LZyOLLZsL=oe&v=l$|mOZ|r+EVuP;MPRDX+FCg7dgP@*by=L>bx9O{n zB{&iegs!h{zGqXzUz{xYKK@DG~wYv@i}vO z9sPbeJBPB1>J;MJ z*Unwf0EiWj1bB)^CB=e?tL)YSuS%44Pn)ffV_A*b87nNVBbZ#x9HE+(O9J`W;Evle zXaVdEA)bPv?N0J{FOSiD#M0_=rSFw`ysj4wOUcLF$v1uJr65#>#8mNg-OQ2BcYMp4 z=Lz&QlX7Y65KO!T)A)d2j7Nd#;>;0!P1D=A<7{>^7B40ow90aIyd)Yu#V>Bu5hC2# z&|zsOHIP4s!MoL2!`2!SRY|utSdgkuN