Bug 441321: Tolerate incorrect encoding of DSA signatures in SSL 3.0 handshakes

r=wtc.


git-svn-id: svn://10.0.0.236/trunk@256213 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
nelson%bolyard.com
2009-02-13 05:23:23 +00:00
parent a78d5e2c4c
commit d2e7f8c5a8

View File

@@ -39,7 +39,7 @@
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
/* $Id: ssl3con.c,v 1.114 2008-12-17 06:09:19 nelson%bolyard.com Exp $ */
/* $Id: ssl3con.c,v 1.115 2009-02-13 05:23:23 nelson%bolyard.com Exp $ */
#include "cert.h"
#include "ssl.h"
@@ -905,7 +905,8 @@ ssl3_VerifySignedHashes(SSL3Hashes *hash, CERTCertificate *cert,
case dsaKey:
hashItem.data = hash->sha;
hashItem.len = sizeof(hash->sha);
if (isTLS) {
/* Allow DER encoded DSA signatures in SSL 3.0 */
if (isTLS || buf->len != DSA_SIGNATURE_LEN) {
signature = DSAU_DecodeDerSig(buf);
if (!signature) {
PORT_SetError(SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE);