forked from rpms/openssh
d029bb77ce
This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/openssh.git#44aae310bd4e0f19369ea1c91ada03334f29c843
58 lines
1.7 KiB
Diff
58 lines
1.7 KiB
Diff
--- compat.h.orig 2020-10-05 10:09:02.953505129 -0700
|
|
+++ compat.h 2020-10-05 10:10:17.587733113 -0700
|
|
@@ -34,7 +34,7 @@
|
|
|
|
#define SSH_BUG_UTF8TTYMODE 0x00000001
|
|
#define SSH_BUG_SIGTYPE 0x00000002
|
|
-/* #define unused 0x00000004 */
|
|
+#define SSH_BUG_SIGTYPE74 0x00000004
|
|
/* #define unused 0x00000008 */
|
|
#define SSH_OLD_SESSIONID 0x00000010
|
|
/* #define unused 0x00000020 */
|
|
--- compat.c.orig 2020-10-05 10:25:02.088720562 -0700
|
|
+++ compat.c 2020-10-05 10:13:11.637282492 -0700
|
|
@@ -65,11 +65,12 @@
|
|
{ "OpenSSH_6.5*,"
|
|
"OpenSSH_6.6*", SSH_NEW_OPENSSH|SSH_BUG_CURVE25519PAD|
|
|
SSH_BUG_SIGTYPE},
|
|
+ { "OpenSSH_7.4*", SSH_NEW_OPENSSH|SSH_BUG_SIGTYPE|
|
|
+ SSH_BUG_SIGTYPE74},
|
|
{ "OpenSSH_7.0*,"
|
|
"OpenSSH_7.1*,"
|
|
"OpenSSH_7.2*,"
|
|
"OpenSSH_7.3*,"
|
|
- "OpenSSH_7.4*,"
|
|
"OpenSSH_7.5*,"
|
|
"OpenSSH_7.6*,"
|
|
"OpenSSH_7.7*", SSH_NEW_OPENSSH|SSH_BUG_SIGTYPE},
|
|
--- sshconnect2.c.orig 2020-09-26 07:26:37.618010545 -0700
|
|
+++ sshconnect2.c 2020-10-05 10:47:22.116315148 -0700
|
|
@@ -1305,6 +1305,26 @@
|
|
break;
|
|
}
|
|
free(oallowed);
|
|
+ /*
|
|
+ * OpenSSH 7.4 supports SHA2 sig types, but fails to indicate its
|
|
+ * support. For that release, check the local policy against the
|
|
+ * SHA2 signature types.
|
|
+ */
|
|
+ if (alg == NULL &&
|
|
+ (key->type == KEY_RSA && (ssh->compat & SSH_BUG_SIGTYPE74))) {
|
|
+ oallowed = allowed = xstrdup(options.pubkey_accepted_algos);
|
|
+ while ((cp = strsep(&allowed, ",")) != NULL) {
|
|
+ if (sshkey_type_from_name(cp) != key->type)
|
|
+ continue;
|
|
+ tmp = match_list(sshkey_sigalg_by_name(cp), "rsa-sha2-256,rsa-sha2-512", NULL);
|
|
+ if (tmp != NULL)
|
|
+ alg = xstrdup(cp);
|
|
+ free(tmp);
|
|
+ if (alg != NULL)
|
|
+ break;
|
|
+ }
|
|
+ free(oallowed);
|
|
+ }
|
|
return alg;
|
|
}
|
|
|
|
|