| OLD | NEW |
| (Empty) |
| 1 Index: mozilla/security/nss/lib/ssl/ssl3con.c | |
| 2 =================================================================== | |
| 3 RCS file: /cvsroot/mozilla/security/nss/lib/ssl/ssl3con.c,v | |
| 4 retrieving revision 1.144 | |
| 5 diff -p -u -8 -r1.144 ssl3con.c | |
| 6 --- mozilla/security/nss/lib/ssl/ssl3con.c 12 Aug 2010 01:15:38 -0000
1.144 | |
| 7 +++ mozilla/security/nss/lib/ssl/ssl3con.c 13 Aug 2010 23:23:40 -0000 | |
| 8 @@ -5299,18 +5299,20 @@ ssl3_HandleServerKeyExchange(sslSocket * | |
| 9 SECItem dh_p = {siBuffer, NULL, 0}; | |
| 10 SECItem dh_g = {siBuffer, NULL, 0}; | |
| 11 SECItem dh_Ys = {siBuffer, NULL, 0}; | |
| 12 | |
| 13 rv = ssl3_ConsumeHandshakeVariable(ss, &dh_p, 2, &b, &length); | |
| 14 if (rv != SECSuccess) { | |
| 15 goto loser; /* malformed. */ | |
| 16 } | |
| 17 - if (dh_p.len < 512/8) | |
| 18 + if (dh_p.len < 512/8) { | |
| 19 + errCode = SSL_ERROR_WEAK_SERVER_KEY; | |
| 20 goto alert_loser; | |
| 21 + } | |
| 22 rv = ssl3_ConsumeHandshakeVariable(ss, &dh_g, 2, &b, &length); | |
| 23 if (rv != SECSuccess) { | |
| 24 goto loser; /* malformed. */ | |
| 25 } | |
| 26 if (dh_g.len == 0 || dh_g.len > dh_p.len + 1 || | |
| 27 (dh_g.len == 1 && dh_g.data[0] == 0)) | |
| 28 goto alert_loser; | |
| 29 rv = ssl3_ConsumeHandshakeVariable(ss, &dh_Ys, 2, &b, &length); | |
| 30 Index: mozilla/security/nss/lib/ssl/sslerr.h | |
| 31 =================================================================== | |
| 32 RCS file: /cvsroot/mozilla/security/nss/lib/ssl/sslerr.h,v | |
| 33 retrieving revision 1.11 | |
| 34 diff -p -u -8 -r1.11 sslerr.h | |
| 35 --- mozilla/security/nss/lib/ssl/sslerr.h 24 Jun 2010 09:24:18 -0000
1.11 | |
| 36 +++ mozilla/security/nss/lib/ssl/sslerr.h 13 Aug 2010 23:23:40 -0000 | |
| 37 @@ -196,13 +196,15 @@ SSL_ERROR_RX_UNEXPECTED_NEW_SESSION_TICK | |
| 38 SSL_ERROR_RX_MALFORMED_NEW_SESSION_TICKET = (SSL_ERROR_BASE + 110), | |
| 39 | |
| 40 SSL_ERROR_DECOMPRESSION_FAILURE = (SSL_ERROR_BASE + 111), | |
| 41 SSL_ERROR_RENEGOTIATION_NOT_ALLOWED = (SSL_ERROR_BASE + 112), | |
| 42 SSL_ERROR_UNSAFE_NEGOTIATION = (SSL_ERROR_BASE + 113), | |
| 43 | |
| 44 SSL_ERROR_RX_UNEXPECTED_UNCOMPRESSED_RECORD = (SSL_ERROR_BASE + 114), | |
| 45 | |
| 46 +SSL_ERROR_WEAK_SERVER_KEY = (SSL_ERROR_BASE + 115), | |
| 47 + | |
| 48 SSL_ERROR_END_OF_LIST /* let the c compiler determine the value of this. */ | |
| 49 } SSLErrorCodes; | |
| 50 #endif /* NO_SECURITY_ERROR_ENUM */ | |
| 51 | |
| 52 #endif /* __SSL_ERR_H_ */ | |
| OLD | NEW |