| 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)
|
| {
|
|
|