Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line | 
|---|---|---|---|
| 154 | magnus | 1 | From: Niels Möller <nisse@lysator.liu.se>  | 
        
| 2 | Origin: upstream, https://git.lysator.liu.se/nettle/nettle/commit/c71d2c9d20eeebb985e3872e4550137209e3ce4d  | 
        ||
| 3 | Subject: CVE-2015-8803 and CVE-2015-8805: Miscomputation bugs in secp-256r1 modulo functions.  | 
        ||
| 4 | Bug: https://bugs.debian.org/813679 | 
        ||
| 5 | |||
| 6 | --- a/ecc-256.c | 
        ||
| 7 | +++ b/ecc-256.c | 
        ||
| 8 | @@ -108,7 +119,10 @@ ecc_256_modp (const struct ecc_curve *ec | 
        ||
| 9 | u0 -= t;  | 
        ||
| 10 | t = (u1 < cy);  | 
        ||
| 11 | u1 -= cy;  | 
        ||
| 12 | -      u1 += cnd_add_n (t, rp + n - 4, ecc->p, 3); | 
        ||
| 13 | + | 
        ||
| 14 | +      cy = cnd_add_n (t, rp + n - 4, ecc->p, 2); | 
        ||
| 15 | +      u0 += cy; | 
        ||
| 16 | +      u1 += (u0 < cy); | 
        ||
| 17 | u1 -= (-t) & 0xffffffff;  | 
        ||
| 18 |      } | 
        ||
| 19 | rp[2] = u0;  | 
        ||
| 20 | @@ -195,7 +209,7 @@ ecc_256_modq (const struct ecc_curve *ec | 
        ||
| 21 | |||
| 22 | /* Conditional add of p */  | 
        ||
| 23 | u1 += t;  | 
        ||
| 24 | -      u2 += (t<<32) + (u0 < t); | 
        ||
| 25 | +      u2 += (t<<32) + (u1 < t); | 
        ||
| 26 | |||
| 27 | t = cnd_add_n (t, rp + n - 4, ecc->q, 2);  | 
        ||
| 28 | u1 += t;  |