Package: putty / 0.78-2+deb12u2

add-missing-aes-selector-flags.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
From c4993cf76c905e23f660b045421edfc5eb1e9fa3 Mon Sep 17 00:00:00 2001
From: Jacob Nevins <jacobn@chiark.greenend.org.uk>
Date: Sun, 10 Dec 2023 23:04:54 +0000
Subject: Add missing flags to AES selector vtables.

They ought to have the same data as the real AES implementations they
will hand off to.

Origin: upstream, https://git.tartarus.org/?p=simon/putty.git;a=commit;h=58fc33a155ad496bdcf380fa6193302240a15ae9
Last-Update: 2023-12-18

Patch-Name: add-missing-aes-selector-flags.patch
---
 crypto/aes-select.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/crypto/aes-select.c b/crypto/aes-select.c
index 62b4ab01..b4daeed1 100644
--- a/crypto/aes-select.c
+++ b/crypto/aes-select.c
@@ -59,23 +59,26 @@ static ssh_cipher *aes_select(const ssh_cipheralg *alg)
         __VA_ARGS__                                                     \
     }
 
-AES_SELECTOR_VTABLE(cbc, "aes128-cbc", "CBC", 128, );
-AES_SELECTOR_VTABLE(cbc, "aes192-cbc", "CBC", 192, );
-AES_SELECTOR_VTABLE(cbc, "aes256-cbc", "CBC", 256, );
+AES_SELECTOR_VTABLE(cbc, "aes128-cbc", "CBC", 128, .flags = SSH_CIPHER_IS_CBC);
+AES_SELECTOR_VTABLE(cbc, "aes192-cbc", "CBC", 192, .flags = SSH_CIPHER_IS_CBC);
+AES_SELECTOR_VTABLE(cbc, "aes256-cbc", "CBC", 256, .flags = SSH_CIPHER_IS_CBC);
 AES_SELECTOR_VTABLE(sdctr, "aes128-ctr", "SDCTR", 128, );
 AES_SELECTOR_VTABLE(sdctr, "aes192-ctr", "SDCTR", 192, );
 AES_SELECTOR_VTABLE(sdctr, "aes256-ctr", "SDCTR", 256, );
 AES_SELECTOR_VTABLE(gcm, "aes128-gcm@openssh.com", "GCM", 128,
-                    .required_mac = &ssh2_aesgcm_mac);
+                    .required_mac = &ssh2_aesgcm_mac,
+                    .flags = SSH_CIPHER_SEPARATE_LENGTH);
 AES_SELECTOR_VTABLE(gcm, "aes256-gcm@openssh.com", "GCM", 256,
-                    .required_mac = &ssh2_aesgcm_mac);
+                    .required_mac = &ssh2_aesgcm_mac,
+                    .flags = SSH_CIPHER_SEPARATE_LENGTH);
 
 /* 192-bit AES-GCM is included only so that testcrypt can run standard
  * test vectors against it. OpenSSH doesn't define a protocol id for
  * it. Hence setting its ssh2_id to NULL here, and more importantly,
  * leaving it out of aesgcm_list[] below. */
 AES_SELECTOR_VTABLE(gcm, NULL, "GCM", 192,
-                    .required_mac = &ssh2_aesgcm_mac);
+                    .required_mac = &ssh2_aesgcm_mac,
+                    .flags = SSH_CIPHER_SEPARATE_LENGTH);
 
 static const ssh_cipheralg ssh_rijndael_lysator = {
     /* Same as aes256_cbc, but with a different protocol ID */
@@ -84,6 +87,7 @@ static const ssh_cipheralg ssh_rijndael_lysator = {
     .blksize = 16,
     .real_keybits = 256,
     .padded_keybytes = 256/8,
+    .flags = SSH_CIPHER_IS_CBC,
     .text_name = "AES-256 CBC (dummy selector vtable)",
     .extra = ssh_aes256_cbc_impls,
 };