dtlscon.h (2750B)
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * This file is PRIVATE to SSL. 4 * 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 7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 8 9 #ifndef __dtlscon_h_ 10 #define __dtlscon_h_ 11 12 extern void dtls_FreeHandshakeMessage(DTLSQueuedMessage *msg); 13 extern void dtls_FreeHandshakeMessages(PRCList *lst); 14 SECStatus dtls_TransmitMessageFlight(sslSocket *ss); 15 void dtls_InitTimers(sslSocket *ss); 16 SECStatus dtls_StartTimer(sslSocket *ss, dtlsTimer *timer, 17 PRUint32 time, DTLSTimerCb cb); 18 SECStatus dtls_RestartTimer(sslSocket *ss, dtlsTimer *timer); 19 PRBool dtls_TimerActive(sslSocket *ss, dtlsTimer *timer); 20 extern SECStatus dtls_HandleHandshake(sslSocket *ss, DTLSEpoch epoch, 21 sslSequenceNumber seqNum, 22 sslBuffer *origBuf); 23 extern SECStatus dtls_HandleHelloVerifyRequest(sslSocket *ss, 24 PRUint8 *b, PRUint32 length); 25 extern SECStatus dtls_StageHandshakeMessage(sslSocket *ss); 26 extern SECStatus dtls_QueueMessage(sslSocket *ss, SSLContentType type, 27 const PRUint8 *pIn, PRInt32 nIn); 28 extern SECStatus dtls_FlushHandshakeMessages(sslSocket *ss, PRInt32 flags); 29 SECStatus ssl3_DisableNonDTLSSuites(sslSocket *ss); 30 extern SECStatus dtls_StartHolddownTimer(sslSocket *ss); 31 extern void dtls_CheckTimer(sslSocket *ss); 32 extern void dtls_CancelTimer(sslSocket *ss, dtlsTimer *timer); 33 extern void dtls_SetMTU(sslSocket *ss, PRUint16 advertised); 34 extern void dtls_InitRecvdRecords(DTLSRecvdRecords *records); 35 extern int dtls_RecordGetRecvd(const DTLSRecvdRecords *records, 36 sslSequenceNumber seq); 37 extern void dtls_RecordSetRecvd(DTLSRecvdRecords *records, 38 sslSequenceNumber seq); 39 extern void dtls_RehandshakeCleanup(sslSocket *ss); 40 extern SSL3ProtocolVersion 41 dtls_TLSVersionToDTLSVersion(SSL3ProtocolVersion tlsv); 42 extern SSL3ProtocolVersion 43 dtls_DTLSVersionToTLSVersion(SSL3ProtocolVersion dtlsv); 44 DTLSEpoch dtls_ReadEpoch(const SSL3ProtocolVersion version, const DTLSEpoch specEpoch, 45 const PRUint8 *hdr); 46 extern PRBool dtls_IsRelevant(sslSocket *ss, const ssl3CipherSpec *spec, 47 const SSL3Ciphertext *cText, 48 sslSequenceNumber *seqNum); 49 void dtls_ReceivedFirstMessageInFlight(sslSocket *ss); 50 PRBool dtls_IsLongHeader(SSL3ProtocolVersion version, PRUint8 firstOctet); 51 PRBool dtls_IsDtls13Ciphertext(SSL3ProtocolVersion version, PRUint8 firstOctet); 52 #endif