| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This file is PRIVATE to SSL and should be the first thing included by | 2 * This file is PRIVATE to SSL and should be the first thing included by |
| 3 * any SSL implementation file. | 3 * any SSL implementation file. |
| 4 * | 4 * |
| 5 * ***** BEGIN LICENSE BLOCK ***** | 5 * ***** BEGIN LICENSE BLOCK ***** |
| 6 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | 6 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
| 7 * | 7 * |
| 8 * The contents of this file are subject to the Mozilla Public License Version | 8 * The contents of this file are subject to the Mozilla Public License Version |
| 9 * 1.1 (the "License"); you may not use this file except in compliance with | 9 * 1.1 (the "License"); you may not use this file except in compliance with |
| 10 * the License. You may obtain a copy of the License at | 10 * the License. You may obtain a copy of the License at |
| (...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 #endif | 315 #endif |
| 316 } ssl3CipherSuiteCfg; | 316 } ssl3CipherSuiteCfg; |
| 317 | 317 |
| 318 #ifdef NSS_ENABLE_ECC | 318 #ifdef NSS_ENABLE_ECC |
| 319 #define ssl_V3_SUITES_IMPLEMENTED 50 | 319 #define ssl_V3_SUITES_IMPLEMENTED 50 |
| 320 #else | 320 #else |
| 321 #define ssl_V3_SUITES_IMPLEMENTED 30 | 321 #define ssl_V3_SUITES_IMPLEMENTED 30 |
| 322 #endif /* NSS_ENABLE_ECC */ | 322 #endif /* NSS_ENABLE_ECC */ |
| 323 | 323 |
| 324 typedef struct sslOptionsStr { | 324 typedef struct sslOptionsStr { |
| 325 /* For clients, this is a validated list of protocols in preference order | 325 /* If SSL_SetNextProtoNego has been called, then this contains the |
| 326 * and wire format. For servers, this is the list of support protocols, | 326 * list of supported protocols. */ |
| 327 * also in wire format. */ | |
| 328 SECItem nextProtoNego; | 327 SECItem nextProtoNego; |
| 329 | 328 |
| 330 unsigned int useSecurity : 1; /* 1 */ | 329 unsigned int useSecurity : 1; /* 1 */ |
| 331 unsigned int useSocks : 1; /* 2 */ | 330 unsigned int useSocks : 1; /* 2 */ |
| 332 unsigned int requestCertificate : 1; /* 3 */ | 331 unsigned int requestCertificate : 1; /* 3 */ |
| 333 unsigned int requireCertificate : 2; /* 4-5 */ | 332 unsigned int requireCertificate : 2; /* 4-5 */ |
| 334 unsigned int handshakeAsClient : 1; /* 6 */ | 333 unsigned int handshakeAsClient : 1; /* 6 */ |
| 335 unsigned int handshakeAsServer : 1; /* 7 */ | 334 unsigned int handshakeAsServer : 1; /* 7 */ |
| 336 unsigned int enableSSL2 : 1; /* 8 */ | 335 unsigned int enableSSL2 : 1; /* 8 */ |
| 337 unsigned int enableSSL3 : 1; /* 9 */ | 336 unsigned int enableSSL3 : 1; /* 9 */ |
| (...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 820 sslBuffer messages; /* Accumulated handshake messages */ | 819 sslBuffer messages; /* Accumulated handshake messages */ |
| 821 PRUint16 finishedBytes; /* size of single finished below */ | 820 PRUint16 finishedBytes; /* size of single finished below */ |
| 822 union { | 821 union { |
| 823 TLSFinished tFinished[2]; /* client, then server */ | 822 TLSFinished tFinished[2]; /* client, then server */ |
| 824 SSL3Hashes sFinished[2]; | 823 SSL3Hashes sFinished[2]; |
| 825 SSL3Opaque data[72]; | 824 SSL3Opaque data[72]; |
| 826 } finishedMsgs; | 825 } finishedMsgs; |
| 827 #ifdef NSS_ENABLE_ECC | 826 #ifdef NSS_ENABLE_ECC |
| 828 PRUint32 negotiatedECCurves; /* bit mask */ | 827 PRUint32 negotiatedECCurves; /* bit mask */ |
| 829 #endif /* NSS_ENABLE_ECC */ | 828 #endif /* NSS_ENABLE_ECC */ |
| 830 PRBool nextProtoNego;/* Our peer has sent this extension */ | |
| 831 } SSL3HandshakeState; | 829 } SSL3HandshakeState; |
| 832 | 830 |
| 833 | 831 |
| 834 | 832 |
| 835 /* | 833 /* |
| 836 ** This is the "ssl3" struct, as in "ss->ssl3". | 834 ** This is the "ssl3" struct, as in "ss->ssl3". |
| 837 ** note: | 835 ** note: |
| 838 ** usually, crSpec == cwSpec and prSpec == pwSpec. | 836 ** usually, crSpec == cwSpec and prSpec == pwSpec. |
| 839 ** Sometimes, crSpec == pwSpec and prSpec == cwSpec. | 837 ** Sometimes, crSpec == pwSpec and prSpec == cwSpec. |
| 840 ** But there are never more than 2 actual specs. | 838 ** But there are never more than 2 actual specs. |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 879 * does not include the leaf cert. It is actually a | 877 * does not include the leaf cert. It is actually a |
| 880 * linked list of ssl3CertNode structs. | 878 * linked list of ssl3CertNode structs. |
| 881 */ | 879 */ |
| 882 CERTDistNames * ca_list; | 880 CERTDistNames * ca_list; |
| 883 /* used by server. trusted CAs for this socket. */ | 881 /* used by server. trusted CAs for this socket. */ |
| 884 PRBool initialized; | 882 PRBool initialized; |
| 885 SSL3HandshakeState hs; | 883 SSL3HandshakeState hs; |
| 886 ssl3CipherSpec specs[2]; /* one is current, one is pending. */ | 884 ssl3CipherSpec specs[2]; /* one is current, one is pending. */ |
| 887 | 885 |
| 888 /* In a client: if the server supports Next Protocol Negotiation, then | 886 /* In a client: if the server supports Next Protocol Negotiation, then |
| 889 * this is the protocol that was requested. | 887 * this is the protocol that was negotiated. |
| 890 * In a server: this is the protocol that the client requested via Next | |
| 891 * Protocol Negotiation. | |
| 892 * | 888 * |
| 893 * In either case, if the data pointer is non-NULL, then it is malloced | 889 * If the data pointer is non-NULL, then it is malloced data. */ |
| 894 * data. */ | |
| 895 SECItem nextProto; | 890 SECItem nextProto; |
| 896 int»» » nextProtoState;»/* See SSL_NEXT_PROTO_* defines */ | 891 int»» » nextProtoState; /* See NEXT_PROTO_* defines */ |
| 897 }; | 892 }; |
| 898 | 893 |
| 899 typedef struct { | 894 typedef struct { |
| 900 SSL3ContentType type; | 895 SSL3ContentType type; |
| 901 SSL3ProtocolVersion version; | 896 SSL3ProtocolVersion version; |
| 902 sslBuffer * buf; | 897 sslBuffer * buf; |
| 903 } SSL3Ciphertext; | 898 } SSL3Ciphertext; |
| 904 | 899 |
| 905 struct ssl3KeyPairStr { | 900 struct ssl3KeyPairStr { |
| 906 SECKEYPrivateKey * privKey; | 901 SECKEYPrivateKey * privKey; |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1122 SSLGetPlatformClientAuthData getPlatformClientAuthData; | 1117 SSLGetPlatformClientAuthData getPlatformClientAuthData; |
| 1123 void *getPlatformClientAuthDataArg; | 1118 void *getPlatformClientAuthDataArg; |
| 1124 #endif /* NSS_PLATFORM_CLIENT_AUTH */ | 1119 #endif /* NSS_PLATFORM_CLIENT_AUTH */ |
| 1125 SSLSNISocketConfig sniSocketConfig; | 1120 SSLSNISocketConfig sniSocketConfig; |
| 1126 void *sniSocketConfigArg; | 1121 void *sniSocketConfigArg; |
| 1127 SSLBadCertHandler handleBadCert; | 1122 SSLBadCertHandler handleBadCert; |
| 1128 void *badCertArg; | 1123 void *badCertArg; |
| 1129 SSLHandshakeCallback handshakeCallback; | 1124 SSLHandshakeCallback handshakeCallback; |
| 1130 void *handshakeCallbackData; | 1125 void *handshakeCallbackData; |
| 1131 void *pkcs11PinArg; | 1126 void *pkcs11PinArg; |
| 1127 SSLNextProtoCallback nextProtoCallback; |
| 1128 void *nextProtoArg; |
| 1132 | 1129 |
| 1133 PRIntervalTime rTimeout; /* timeout for NSPR I/O */ | 1130 PRIntervalTime rTimeout; /* timeout for NSPR I/O */ |
| 1134 PRIntervalTime wTimeout; /* timeout for NSPR I/O */ | 1131 PRIntervalTime wTimeout; /* timeout for NSPR I/O */ |
| 1135 PRIntervalTime cTimeout; /* timeout for NSPR I/O */ | 1132 PRIntervalTime cTimeout; /* timeout for NSPR I/O */ |
| 1136 | 1133 |
| 1137 PZLock * recvLock; /* lock against multiple reader threads. */ | 1134 PZLock * recvLock; /* lock against multiple reader threads. */ |
| 1138 PZLock * sendLock; /* lock against multiple sender threads. */ | 1135 PZLock * sendLock; /* lock against multiple sender threads. */ |
| 1139 | 1136 |
| 1140 PZMonitor * recvBufLock; /* locks low level recv buffers. */ | 1137 PZMonitor * recvBufLock; /* locks low level recv buffers. */ |
| 1141 PZMonitor * xmitBufLock; /* locks low level xmit buffers. */ | 1138 PZMonitor * xmitBufLock; /* locks low level xmit buffers. */ |
| (...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1749 #elif defined(_WIN32_WCE) | 1746 #elif defined(_WIN32_WCE) |
| 1750 #define SSL_GETPID GetCurrentProcessId | 1747 #define SSL_GETPID GetCurrentProcessId |
| 1751 #elif defined(WIN32) | 1748 #elif defined(WIN32) |
| 1752 extern int __cdecl _getpid(void); | 1749 extern int __cdecl _getpid(void); |
| 1753 #define SSL_GETPID _getpid | 1750 #define SSL_GETPID _getpid |
| 1754 #else | 1751 #else |
| 1755 #define SSL_GETPID() 0 | 1752 #define SSL_GETPID() 0 |
| 1756 #endif | 1753 #endif |
| 1757 | 1754 |
| 1758 #endif /* __sslimpl_h_ */ | 1755 #endif /* __sslimpl_h_ */ |
| OLD | NEW |