tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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