| Index: net/third_party/nss/ssl/sslauth.c
|
| ===================================================================
|
| --- net/third_party/nss/ssl/sslauth.c (revision 196870)
|
| +++ net/third_party/nss/ssl/sslauth.c (working copy)
|
| @@ -1,13 +1,14 @@
|
| /* This Source Code Form is subject to the terms of the Mozilla Public
|
| * License, v. 2.0. If a copy of the MPL was not distributed with this
|
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
| -/* $Id: sslauth.c,v 1.18 2012/04/25 14:50:12 gerv%gerv.net Exp $ */
|
| +/* $Id$ */
|
| #include "cert.h"
|
| #include "secitem.h"
|
| #include "ssl.h"
|
| #include "sslimpl.h"
|
| #include "sslproto.h"
|
| #include "pk11func.h"
|
| +#include "ocsp.h"
|
|
|
| /* NEED LOCKS IN HERE. */
|
| CERTCertificate *
|
| @@ -289,6 +290,9 @@
|
| sslSocket * ss;
|
| SECCertUsage certUsage;
|
| const char * hostname = NULL;
|
| + PRTime now = PR_Now();
|
| + SECItemArray *certStatusArray;
|
| + unsigned int i;
|
|
|
| ss = ssl_FindSocket(fd);
|
| PORT_Assert(ss != NULL);
|
| @@ -297,12 +301,18 @@
|
| }
|
|
|
| handle = (CERTCertDBHandle *)arg;
|
| + certStatusArray = &ss->sec.ci.sid->peerCertStatus;
|
|
|
| + for (i = 0; i < certStatusArray->len; ++i) {
|
| + CERT_CacheOCSPResponseFromSideChannel(handle, ss->sec.peerCert,
|
| + now, &certStatusArray->items[i], arg);
|
| + }
|
| +
|
| /* this may seem backwards, but isn't. */
|
| certUsage = isServer ? certUsageSSLClient : certUsageSSLServer;
|
|
|
| - rv = CERT_VerifyCertNow(handle, ss->sec.peerCert, checkSig, certUsage,
|
| - ss->pkcs11PinArg);
|
| + rv = CERT_VerifyCert(handle, ss->sec.peerCert, checkSig, certUsage,
|
| + now, ss->pkcs11PinArg, NULL);
|
|
|
| if ( rv != SECSuccess || isServer )
|
| return rv;
|
|
|