Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(506)

Unified Diff: net/third_party/nss/patches/restartclientauth.patch

Issue 1882433002: Removing NSS files and USE_OPENSSL flag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/third_party/nss/patches/restartclientauth.patch
diff --git a/net/third_party/nss/patches/restartclientauth.patch b/net/third_party/nss/patches/restartclientauth.patch
deleted file mode 100644
index 811e98c8049ec340d0fc2354f8e496d8f422d8fc..0000000000000000000000000000000000000000
--- a/net/third_party/nss/patches/restartclientauth.patch
+++ /dev/null
@@ -1,213 +0,0 @@
-diff --git a/lib/ssl/ssl.h b/lib/ssl/ssl.h
-index 9e57220..aa4a3e5 100644
---- a/lib/ssl/ssl.h
-+++ b/lib/ssl/ssl.h
-@@ -516,6 +516,11 @@ SSL_IMPORT SECStatus SSL_ForceHandshake(PRFileDesc *fd);
- SSL_IMPORT SECStatus SSL_ForceHandshakeWithTimeout(PRFileDesc *fd,
- PRIntervalTime timeout);
-
-+SSL_IMPORT SECStatus SSL_RestartHandshakeAfterCertReq(PRFileDesc *fd,
-+ CERTCertificate *cert,
-+ SECKEYPrivateKey *key,
-+ CERTCertificateList *certChain);
-+
- /*
- ** Query security status of socket. *on is set to one if security is
- ** enabled. *keySize will contain the stream key size used. *issuer will
-diff --git a/lib/ssl/ssl3con.c b/lib/ssl/ssl3con.c
-index 784f59b..2a2e644 100644
---- a/lib/ssl/ssl3con.c
-+++ b/lib/ssl/ssl3con.c
-@@ -7803,6 +7803,85 @@ ssl3_CompleteHandleCertificateRequest(sslSocket *ss, SECItem *algorithms,
- return rv;
- }
-
-+/*
-+ * attempt to restart the handshake after asynchronously handling
-+ * a request for the client's certificate.
-+ *
-+ * inputs:
-+ * cert Client cert chosen by application.
-+ * Note: ssl takes this reference, and does not bump the
-+ * reference count. The caller should drop its reference
-+ * without calling CERT_DestroyCert after calling this function.
-+ *
-+ * key Private key associated with cert. This function takes
-+ * ownership of the private key, so the caller should drop its
-+ * reference without destroying the private key after this
-+ * function returns.
-+ *
-+ * certChain DER-encoded certs, client cert and its signers.
-+ * Note: ssl takes this reference, and does not copy the chain.
-+ * The caller should drop its reference without destroying the
-+ * chain. SSL will free the chain when it is done with it.
-+ *
-+ * Return value: XXX
-+ *
-+ * XXX This code only works on the initial handshake on a connection, XXX
-+ * It does not work on a subsequent handshake (redo).
-+ *
-+ * Caller holds 1stHandshakeLock.
-+ */
-+SECStatus
-+ssl3_RestartHandshakeAfterCertReq(sslSocket *ss,
-+ CERTCertificate *cert,
-+ SECKEYPrivateKey *key,
-+ CERTCertificateList *certChain)
-+{
-+ SECStatus rv = SECSuccess;
-+
-+ /* XXX This code only works on the initial handshake on a connection,
-+ ** XXX It does not work on a subsequent handshake (redo).
-+ */
-+ if (ss->handshake != 0) {
-+ ss->handshake = ssl_GatherRecord1stHandshake;
-+ ss->ssl3.clientCertificate = cert;
-+ ss->ssl3.clientPrivateKey = key;
-+ ss->ssl3.clientCertChain = certChain;
-+ if (!cert || !key || !certChain) {
-+ /* we are missing the key, cert, or cert chain */
-+ if (ss->ssl3.clientCertificate) {
-+ CERT_DestroyCertificate(ss->ssl3.clientCertificate);
-+ ss->ssl3.clientCertificate = NULL;
-+ }
-+ if (ss->ssl3.clientPrivateKey) {
-+ SECKEY_DestroyPrivateKey(ss->ssl3.clientPrivateKey);
-+ ss->ssl3.clientPrivateKey = NULL;
-+ }
-+ if (ss->ssl3.clientCertChain != NULL) {
-+ CERT_DestroyCertificateList(ss->ssl3.clientCertChain);
-+ ss->ssl3.clientCertChain = NULL;
-+ }
-+ if (ss->ssl3.prSpec->version > SSL_LIBRARY_VERSION_3_0) {
-+ ss->ssl3.sendEmptyCert = PR_TRUE;
-+ } else {
-+ (void)SSL3_SendAlert(ss, alert_warning, no_certificate);
-+ }
-+ }
-+ } else {
-+ if (cert) {
-+ CERT_DestroyCertificate(cert);
-+ }
-+ if (key) {
-+ SECKEY_DestroyPrivateKey(key);
-+ }
-+ if (certChain) {
-+ CERT_DestroyCertificateList(certChain);
-+ }
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ rv = SECFailure;
-+ }
-+ return rv;
-+}
-+
- static SECStatus
- ssl3_CheckFalseStart(sslSocket *ss)
- {
-diff --git a/lib/ssl/sslimpl.h b/lib/ssl/sslimpl.h
-index 5f0e6c9..dad75b2 100644
---- a/lib/ssl/sslimpl.h
-+++ b/lib/ssl/sslimpl.h
-@@ -1702,16 +1702,16 @@ extern SECStatus ssl3_MasterSecretDeriveBypass(ssl3CipherSpec *pwSpec,
- /* These functions are called from secnav, even though they're "private". */
-
- extern int ssl2_SendErrorMessage(struct sslSocketStr *ss, int error);
--extern int SSL_RestartHandshakeAfterCertReq(struct sslSocketStr *ss,
-- CERTCertificate *cert,
-- SECKEYPrivateKey *key,
-- CERTCertificateList *certChain);
- extern sslSocket *ssl_FindSocket(PRFileDesc *fd);
- extern void ssl_FreeSocket(struct sslSocketStr *ssl);
- extern SECStatus SSL3_SendAlert(sslSocket *ss, SSL3AlertLevel level,
- SSL3AlertDescription desc);
- extern SECStatus ssl3_DecodeError(sslSocket *ss);
-
-+extern SECStatus ssl3_RestartHandshakeAfterCertReq(struct sslSocketStr *ss,
-+ CERTCertificate *cert,
-+ SECKEYPrivateKey *key,
-+ CERTCertificateList *certChain);
- extern SECStatus ssl3_AuthCertificateComplete(sslSocket *ss, PRErrorCode error);
-
- /*
-diff --git a/lib/ssl/sslsecur.c b/lib/ssl/sslsecur.c
-index 5773748..a087ffc 100644
---- a/lib/ssl/sslsecur.c
-+++ b/lib/ssl/sslsecur.c
-@@ -1535,17 +1535,70 @@ SSL_CertDBHandleSet(PRFileDesc *fd, CERTCertDBHandle *dbHandle)
- return SECSuccess;
- }
-
--/* DO NOT USE. This function was exported in ssl.def with the wrong signature;
-- * this implementation exists to maintain link-time compatibility.
-- */
--int
--SSL_RestartHandshakeAfterCertReq(sslSocket *ss,
-+/*
-+ * attempt to restart the handshake after asynchronously handling
-+ * a request for the client's certificate.
-+ *
-+ * inputs:
-+ * cert Client cert chosen by application.
-+ * Note: ssl takes this reference, and does not bump the
-+ * reference count. The caller should drop its reference
-+ * without calling CERT_DestroyCertificate after calling this
-+ * function.
-+ *
-+ * key Private key associated with cert. This function takes
-+ * ownership of the private key, so the caller should drop its
-+ * reference without destroying the private key after this
-+ * function returns.
-+ *
-+ * certChain Chain of signers for cert.
-+ * Note: ssl takes this reference, and does not copy the chain.
-+ * The caller should drop its reference without destroying the
-+ * chain. SSL will free the chain when it is done with it.
-+ *
-+ * Return value: XXX
-+ *
-+ * XXX This code only works on the initial handshake on a connection, XXX
-+ * It does not work on a subsequent handshake (redo).
-+ */
-+SECStatus
-+SSL_RestartHandshakeAfterCertReq(PRFileDesc *fd,
- CERTCertificate *cert,
- SECKEYPrivateKey *key,
- CERTCertificateList *certChain)
- {
-- PORT_SetError(PR_NOT_IMPLEMENTED_ERROR);
-- return -1;
-+ sslSocket *ss = ssl_FindSocket(fd);
-+ SECStatus ret;
-+
-+ if (!ss) {
-+ SSL_DBG(("%d: SSL[%d]: bad socket in SSL_RestartHandshakeAfterCertReq",
-+ SSL_GETPID(), fd));
-+ if (cert) {
-+ CERT_DestroyCertificate(cert);
-+ }
-+ if (key) {
-+ SECKEY_DestroyPrivateKey(key);
-+ }
-+ if (certChain) {
-+ CERT_DestroyCertificateList(certChain);
-+ }
-+ return SECFailure;
-+ }
-+
-+ ssl_Get1stHandshakeLock(ss); /************************************/
-+
-+ if (ss->version >= SSL_LIBRARY_VERSION_3_0) {
-+ ret = ssl3_RestartHandshakeAfterCertReq(ss, cert, key, certChain);
-+ } else {
-+ if (certChain != NULL) {
-+ CERT_DestroyCertificateList(certChain);
-+ }
-+ PORT_SetError(SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SSL2);
-+ ret = SECFailure;
-+ }
-+
-+ ssl_Release1stHandshakeLock(ss); /************************************/
-+ return ret;
- }
-
- /* DO NOT USE. This function was exported in ssl.def with the wrong signature;
« no previous file with comments | « net/third_party/nss/patches/reorderextensions.patch ('k') | net/third_party/nss/patches/secretexporterlocks.patch » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698