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

Unified Diff: net/third_party/nss/ssl/sslsock.c

Issue 10424013: Support TLS Channel IDs in NSS (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 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/ssl/sslsock.c
diff --git a/net/third_party/nss/ssl/sslsock.c b/net/third_party/nss/ssl/sslsock.c
index ebc245ad7e0a2066edff9f245ffa13b55fc74ad2..06f66b0a532ce7315919889e504e0327f9e72273 100644
--- a/net/third_party/nss/ssl/sslsock.c
+++ b/net/third_party/nss/ssl/sslsock.c
@@ -1878,6 +1878,33 @@ SSL_HandshakeResumedSession(PRFileDesc *fd, PRBool *handshake_resumed) {
return SECSuccess;
}
+SECStatus
+SSL_SetChannelID(PRFileDesc *fd, SECKEYPrivateKey *id,
+ SECKEYPublicKey *pub) {
+ sslSocket *ss = ssl_FindSocket(fd);
+
+ if (!ss) {
+ SSL_DBG(("%d: SSL[%d]: bad socket in SSL_SetChannelID",
+ SSL_GETPID(), fd));
+ return SECFailure;
+ }
+
+ if (SECKEY_GetPrivateKeyType(id) != ecKey) {
+ PORT_SetError(SSL_ERROR_INVALID_CHANNEL_ID_KEY);
+ return SECFailure;
+ }
+
+ if (ss->ssl3.channelID)
+ SECKEY_DestroyPrivateKey(ss->ssl3.channelID);
+ if (ss->ssl3.channelIDPub)
+ SECKEY_DestroyPublicKey(ss->ssl3.channelIDPub);
+
+ ss->ssl3.channelID = id;
+ ss->ssl3.channelIDPub = pub;
+
+ return SECSuccess;
+}
+
const SECItem *
SSL_GetRequestedClientCertificateTypes(PRFileDesc *fd)
{

Powered by Google App Engine
This is Rietveld 408576698