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 * This Source Code Form is subject to the terms of the Mozilla Public | 5 * This Source Code Form is subject to the terms of the Mozilla Public |
6 * License, v. 2.0. If a copy of the MPL was not distributed with this | 6 * License, v. 2.0. If a copy of the MPL was not distributed with this |
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
8 | 8 |
9 #ifndef __sslimpl_h_ | 9 #ifndef __sslimpl_h_ |
10 #define __sslimpl_h_ | 10 #define __sslimpl_h_ |
(...skipping 863 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
874 #endif /* NSS_ENABLE_ECC */ | 874 #endif /* NSS_ENABLE_ECC */ |
875 | 875 |
876 PRBool authCertificatePending; | 876 PRBool authCertificatePending; |
877 /* Which function should SSL_RestartHandshake* call if we're blocked? | 877 /* Which function should SSL_RestartHandshake* call if we're blocked? |
878 * One of NULL, ssl3_SendClientSecondRound, ssl3_FinishHandshake, | 878 * One of NULL, ssl3_SendClientSecondRound, ssl3_FinishHandshake, |
879 * or ssl3_AlwaysFail */ | 879 * or ssl3_AlwaysFail */ |
880 sslRestartTarget restartTarget; | 880 sslRestartTarget restartTarget; |
881 /* Shared state between ssl3_HandleFinished and ssl3_FinishHandshake */ | 881 /* Shared state between ssl3_HandleFinished and ssl3_FinishHandshake */ |
882 PRBool cacheSID; | 882 PRBool cacheSID; |
883 | 883 |
| 884 PRBool canFalseStart; /* Can/did we False Start */ |
| 885 |
884 /* clientSigAndHash contains the contents of the signature_algorithms | 886 /* clientSigAndHash contains the contents of the signature_algorithms |
885 * extension (if any) from the client. This is only valid for TLS 1.2 | 887 * extension (if any) from the client. This is only valid for TLS 1.2 |
886 * or later. */ | 888 * or later. */ |
887 SSL3SignatureAndHashAlgorithm *clientSigAndHash; | 889 SSL3SignatureAndHashAlgorithm *clientSigAndHash; |
888 unsigned int numClientSigAndHash; | 890 unsigned int numClientSigAndHash; |
889 | 891 |
890 /* This group of values is used for DTLS */ | 892 /* This group of values is used for DTLS */ |
891 PRUint16 sendMessageSeq; /* The sending message sequence | 893 PRUint16 sendMessageSeq; /* The sending message sequence |
892 * number */ | 894 * number */ |
893 PRCList lastMessageFlight; /* The last message flight we | 895 PRCList lastMessageFlight; /* The last message flight we |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1155 | 1157 |
1156 /* SSL socket options */ | 1158 /* SSL socket options */ |
1157 sslOptions opt; | 1159 sslOptions opt; |
1158 /* Enabled version range */ | 1160 /* Enabled version range */ |
1159 SSLVersionRange vrange; | 1161 SSLVersionRange vrange; |
1160 | 1162 |
1161 /* State flags */ | 1163 /* State flags */ |
1162 unsigned long clientAuthRequested; | 1164 unsigned long clientAuthRequested; |
1163 unsigned long delayDisabled; /* Nagle delay disabled */ | 1165 unsigned long delayDisabled; /* Nagle delay disabled */ |
1164 unsigned long firstHsDone; /* first handshake is complete. */ | 1166 unsigned long firstHsDone; /* first handshake is complete. */ |
| 1167 unsigned long enoughFirstHsDone; /* enough of the first handshake is |
| 1168 * done for callbacks to be able to |
| 1169 * retrieve channel security |
| 1170 * parameters from the SSL socket. */ |
1165 unsigned long handshakeBegun; | 1171 unsigned long handshakeBegun; |
1166 unsigned long lastWriteBlocked; | 1172 unsigned long lastWriteBlocked; |
1167 unsigned long recvdCloseNotify; /* received SSL EOF. */ | 1173 unsigned long recvdCloseNotify; /* received SSL EOF. */ |
1168 unsigned long TCPconnected; | 1174 unsigned long TCPconnected; |
1169 unsigned long appDataBuffered; | 1175 unsigned long appDataBuffered; |
1170 unsigned long peerRequestedProtection; /* from old renegotiation */ | 1176 unsigned long peerRequestedProtection; /* from old renegotiation */ |
1171 | 1177 |
1172 /* version of the protocol to use */ | 1178 /* version of the protocol to use */ |
1173 SSL3ProtocolVersion version; | 1179 SSL3ProtocolVersion version; |
1174 SSL3ProtocolVersion clientHelloVersion; /* version sent in client hello. */ | 1180 SSL3ProtocolVersion clientHelloVersion; /* version sent in client hello. */ |
(...skipping 28 matching lines...) Expand all Loading... |
1203 #ifdef NSS_PLATFORM_CLIENT_AUTH | 1209 #ifdef NSS_PLATFORM_CLIENT_AUTH |
1204 SSLGetPlatformClientAuthData getPlatformClientAuthData; | 1210 SSLGetPlatformClientAuthData getPlatformClientAuthData; |
1205 void *getPlatformClientAuthDataArg; | 1211 void *getPlatformClientAuthDataArg; |
1206 #endif /* NSS_PLATFORM_CLIENT_AUTH */ | 1212 #endif /* NSS_PLATFORM_CLIENT_AUTH */ |
1207 SSLSNISocketConfig sniSocketConfig; | 1213 SSLSNISocketConfig sniSocketConfig; |
1208 void *sniSocketConfigArg; | 1214 void *sniSocketConfigArg; |
1209 SSLBadCertHandler handleBadCert; | 1215 SSLBadCertHandler handleBadCert; |
1210 void *badCertArg; | 1216 void *badCertArg; |
1211 SSLHandshakeCallback handshakeCallback; | 1217 SSLHandshakeCallback handshakeCallback; |
1212 void *handshakeCallbackData; | 1218 void *handshakeCallbackData; |
| 1219 SSLCanFalseStartCallback canFalseStartCallback; |
| 1220 void *canFalseStartCallbackData; |
1213 void *pkcs11PinArg; | 1221 void *pkcs11PinArg; |
1214 SSLNextProtoCallback nextProtoCallback; | 1222 SSLNextProtoCallback nextProtoCallback; |
1215 void *nextProtoArg; | 1223 void *nextProtoArg; |
1216 SSLClientChannelIDCallback getChannelID; | 1224 SSLClientChannelIDCallback getChannelID; |
1217 void *getChannelIDArg; | 1225 void *getChannelIDArg; |
1218 | 1226 |
1219 PRIntervalTime rTimeout; /* timeout for NSPR I/O */ | 1227 PRIntervalTime rTimeout; /* timeout for NSPR I/O */ |
1220 PRIntervalTime wTimeout; /* timeout for NSPR I/O */ | 1228 PRIntervalTime wTimeout; /* timeout for NSPR I/O */ |
1221 PRIntervalTime cTimeout; /* timeout for NSPR I/O */ | 1229 PRIntervalTime cTimeout; /* timeout for NSPR I/O */ |
1222 | 1230 |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1416 int len, int flags); | 1424 int len, int flags); |
1417 | 1425 |
1418 extern PRBool ssl_FdIsBlocking(PRFileDesc *fd); | 1426 extern PRBool ssl_FdIsBlocking(PRFileDesc *fd); |
1419 | 1427 |
1420 extern PRBool ssl_SocketIsBlocking(sslSocket *ss); | 1428 extern PRBool ssl_SocketIsBlocking(sslSocket *ss); |
1421 | 1429 |
1422 extern void ssl3_SetAlwaysBlock(sslSocket *ss); | 1430 extern void ssl3_SetAlwaysBlock(sslSocket *ss); |
1423 | 1431 |
1424 extern SECStatus ssl_EnableNagleDelay(sslSocket *ss, PRBool enabled); | 1432 extern SECStatus ssl_EnableNagleDelay(sslSocket *ss, PRBool enabled); |
1425 | 1433 |
1426 extern PRBool ssl3_CanFalseStart(sslSocket *ss); | |
1427 extern SECStatus | 1434 extern SECStatus |
1428 ssl3_CompressMACEncryptRecord(ssl3CipherSpec * cwSpec, | 1435 ssl3_CompressMACEncryptRecord(ssl3CipherSpec * cwSpec, |
1429 PRBool isServer, | 1436 PRBool isServer, |
1430 PRBool isDTLS, | 1437 PRBool isDTLS, |
1431 PRBool capRecordVersion, | 1438 PRBool capRecordVersion, |
1432 SSL3ContentType type, | 1439 SSL3ContentType type, |
1433 const SSL3Opaque * pIn, | 1440 const SSL3Opaque * pIn, |
1434 PRUint32 contentLen, | 1441 PRUint32 contentLen, |
1435 sslBuffer * wrBuf); | 1442 sslBuffer * wrBuf); |
1436 extern PRInt32 ssl3_SendRecord(sslSocket *ss, DTLSEpoch epoch, | 1443 extern PRInt32 ssl3_SendRecord(sslSocket *ss, DTLSEpoch epoch, |
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1935 #if defined(XP_UNIX) || defined(XP_OS2) || defined(XP_BEOS) | 1942 #if defined(XP_UNIX) || defined(XP_OS2) || defined(XP_BEOS) |
1936 #define SSL_GETPID getpid | 1943 #define SSL_GETPID getpid |
1937 #elif defined(WIN32) | 1944 #elif defined(WIN32) |
1938 extern int __cdecl _getpid(void); | 1945 extern int __cdecl _getpid(void); |
1939 #define SSL_GETPID _getpid | 1946 #define SSL_GETPID _getpid |
1940 #else | 1947 #else |
1941 #define SSL_GETPID() 0 | 1948 #define SSL_GETPID() 0 |
1942 #endif | 1949 #endif |
1943 | 1950 |
1944 #endif /* __sslimpl_h_ */ | 1951 #endif /* __sslimpl_h_ */ |
OLD | NEW |