28555bb7153b161e68fd5ee1da3e970614454fa2
[oweals/openwrt.git] /
1 From 558518ed63202e5358116ab7e0afd5e85490f2ef Mon Sep 17 00:00:00 2001
2 From: Jouni Malinen <j@w1.fi>
3 Date: Sat, 27 Jul 2019 23:19:17 +0300
4 Subject: [PATCH 6/6] dragonfly: Disable use of groups using Brainpool curves
5
6 Disable groups that use Brainpool curves for now since they leak more
7 timing information due to the prime not being close to a power of two.
8 This removes use of groups 28, 29, and 30 from SAE and EAP-pwd.
9
10 Signed-off-by: Jouni Malinen <j@w1.fi>
11 (cherry picked from commit 876c5eaa6dae1a87a17603fc489a44c29eedc2e3)
12 ---
13  src/common/sae.c                | 6 ++++--
14  src/eap_common/eap_pwd_common.c | 3 +--
15  2 files changed, 5 insertions(+), 4 deletions(-)
16
17 --- a/src/common/sae.c
18 +++ b/src/common/sae.c
19 @@ -28,9 +28,11 @@ static int sae_suitable_group(int group)
20          * purposes: FFC groups whose prime is >= 3072 bits and ECC groups
21          * defined over a prime field whose prime is >= 256 bits. Furthermore,
22          * ECC groups defined over a characteristic 2 finite field and ECC
23 -        * groups with a co-factor greater than 1 are not suitable. */
24 +        * groups with a co-factor greater than 1 are not suitable. Disable
25 +        * groups that use Brainpool curves as well for now since they leak more
26 +        * timing information due to the prime not being close to a power of
27 +        * two. */
28         return group == 19 || group == 20 || group == 21 ||
29 -               group == 28 || group == 29 || group == 30 ||
30                 group == 15 || group == 16 || group == 17 || group == 18;
31  #endif /* CONFIG_TESTING_OPTIONS */
32  }
33 --- a/src/eap_common/eap_pwd_common.c
34 +++ b/src/eap_common/eap_pwd_common.c
35 @@ -89,8 +89,7 @@ static int eap_pwd_suitable_group(u16 nu
36  {
37         /* Do not allow ECC groups with prime under 256 bits based on guidance
38          * for the similar design in SAE. */
39 -       return num == 19 || num == 20 || num == 21 ||
40 -               num == 28 || num == 29 || num == 30;
41 +       return num == 19 || num == 20 || num == 21;
42  }
43  
44