__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* ssl/dtls1.h */
/*
* DTLS implementation written by Nagendra Modadugu
* (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
*/
/* ====================================================================
* Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
#ifndef HEADER_DTLS1_H
# define HEADER_DTLS1_H
# include <openssl/buffer.h>
# include <openssl/pqueue.h>
# ifdef OPENSSL_SYS_VMS
# include <resource.h>
# include <sys/timeb.h>
# endif
# ifdef OPENSSL_SYS_WIN32
/* Needed for struct timeval */
# include <winsock.h>
# elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_)
# include <sys/timeval.h>
# else
# if defined(OPENSSL_SYS_VXWORKS)
# include <sys/times.h>
# else
# include <sys/time.h>
# endif
# endif
#ifdef __cplusplus
extern "C" {
#endif
# define DTLS1_VERSION 0xFEFF
# define DTLS1_2_VERSION 0xFEFD
# define DTLS_MAX_VERSION DTLS1_2_VERSION
# define DTLS1_VERSION_MAJOR 0xFE
# define DTLS1_BAD_VER 0x0100
/* Special value for method supporting multiple versions */
# define DTLS_ANY_VERSION 0x1FFFF
# if 0
/* this alert description is not specified anywhere... */
# define DTLS1_AD_MISSING_HANDSHAKE_MESSAGE 110
# endif
/* lengths of messages */
# define DTLS1_COOKIE_LENGTH 256
# define DTLS1_RT_HEADER_LENGTH 13
# define DTLS1_HM_HEADER_LENGTH 12
# define DTLS1_HM_BAD_FRAGMENT -2
# define DTLS1_HM_FRAGMENT_RETRY -3
# define DTLS1_CCS_HEADER_LENGTH 1
# ifdef DTLS1_AD_MISSING_HANDSHAKE_MESSAGE
# define DTLS1_AL_HEADER_LENGTH 7
# else
# define DTLS1_AL_HEADER_LENGTH 2
# endif
# ifndef OPENSSL_NO_SSL_INTERN
# ifndef OPENSSL_NO_SCTP
# define DTLS1_SCTP_AUTH_LABEL "EXPORTER_DTLS_OVER_SCTP"
# endif
/* Max MTU overhead we know about so far is 40 for IPv6 + 8 for UDP */
# define DTLS1_MAX_MTU_OVERHEAD 48
typedef struct dtls1_bitmap_st {
unsigned long map; /* track 32 packets on 32-bit systems and 64
* - on 64-bit systems */
unsigned char max_seq_num[8]; /* max record number seen so far, 64-bit
* value in big-endian encoding */
} DTLS1_BITMAP;
struct dtls1_retransmit_state {
EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */
EVP_MD_CTX *write_hash; /* used for mac generation */
# ifndef OPENSSL_NO_COMP
COMP_CTX *compress; /* compression */
# else
char *compress;
# endif
SSL_SESSION *session;
unsigned short epoch;
};
struct hm_header_st {
unsigned char type;
unsigned long msg_len;
unsigned short seq;
unsigned long frag_off;
unsigned long frag_len;
unsigned int is_ccs;
struct dtls1_retransmit_state saved_retransmit_state;
};
struct ccs_header_st {
unsigned char type;
unsigned short seq;
};
struct dtls1_timeout_st {
/* Number of read timeouts so far */
unsigned int read_timeouts;
/* Number of write timeouts so far */
unsigned int write_timeouts;
/* Number of alerts received so far */
unsigned int num_alerts;
};
typedef struct record_pqueue_st {
unsigned short epoch;
pqueue q;
} record_pqueue;
typedef struct hm_fragment_st {
struct hm_header_st msg_header;
unsigned char *fragment;
unsigned char *reassembly;
} hm_fragment;
typedef struct dtls1_state_st {
unsigned int send_cookie;
unsigned char cookie[DTLS1_COOKIE_LENGTH];
unsigned char rcvd_cookie[DTLS1_COOKIE_LENGTH];
unsigned int cookie_len;
/*
* The current data and handshake epoch. This is initially
* undefined, and starts at zero once the initial handshake is
* completed
*/
unsigned short r_epoch;
unsigned short w_epoch;
/* records being received in the current epoch */
DTLS1_BITMAP bitmap;
/* renegotiation starts a new set of sequence numbers */
DTLS1_BITMAP next_bitmap;
/* handshake message numbers */
unsigned short handshake_write_seq;
unsigned short next_handshake_write_seq;
unsigned short handshake_read_seq;
/* save last sequence number for retransmissions */
unsigned char last_write_sequence[8];
/* Received handshake records (processed and unprocessed) */
record_pqueue unprocessed_rcds;
record_pqueue processed_rcds;
/* Buffered handshake messages */
pqueue buffered_messages;
/* Buffered (sent) handshake records */
pqueue sent_messages;
/*
* Buffered application records. Only for records between CCS and
* Finished to prevent either protocol violation or unnecessary message
* loss.
*/
record_pqueue buffered_app_data;
unsigned int mtu; /* max DTLS packet size */
struct hm_header_st w_msg_hdr;
struct hm_header_st r_msg_hdr;
struct dtls1_timeout_st timeout;
/*
* Indicates when the last handshake msg or heartbeat sent will timeout
*/
struct timeval next_timeout;
/* Timeout duration */
unsigned short timeout_duration;
/*
* storage for Alert/Handshake protocol data received but not yet
* processed by ssl3_read_bytes:
*/
unsigned char alert_fragment[DTLS1_AL_HEADER_LENGTH];
unsigned int alert_fragment_len;
unsigned char handshake_fragment[DTLS1_HM_HEADER_LENGTH];
unsigned int handshake_fragment_len;
unsigned int retransmitting;
/*
* Set when the handshake is ready to process peer's ChangeCipherSpec message.
* Cleared after the message has been processed.
*/
unsigned int change_cipher_spec_ok;
/* Is set when listening for new connections with dtls1_listen() */
unsigned int listen;
unsigned int link_mtu; /* max on-the-wire DTLS packet size */
# ifndef OPENSSL_NO_SCTP
/* used when SSL_ST_XX_FLUSH is entered */
int next_state;
int shutdown_received;
# endif
} DTLS1_STATE;
typedef struct dtls1_record_data_st {
unsigned char *packet;
unsigned int packet_length;
SSL3_BUFFER rbuf;
SSL3_RECORD rrec;
# ifndef OPENSSL_NO_SCTP
struct bio_dgram_sctp_rcvinfo recordinfo;
# endif
} DTLS1_RECORD_DATA;
# endif
/* Timeout multipliers (timeout slice is defined in apps/timeouts.h */
# define DTLS1_TMO_READ_COUNT 2
# define DTLS1_TMO_WRITE_COUNT 2
# define DTLS1_TMO_ALERT_COUNT 12
#ifdef __cplusplus
}
#endif
#endif
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| aes.h | File | 6 KB | 0644 |
|
| asn1.h | File | 61.72 KB | 0644 |
|
| asn1_mac.h | File | 23.86 KB | 0644 |
|
| asn1t.h | File | 33.67 KB | 0644 |
|
| bio.h | File | 37.83 KB | 0644 |
|
| blowfish.h | File | 5.23 KB | 0644 |
|
| bn.h | File | 38.24 KB | 0644 |
|
| buffer.h | File | 4.91 KB | 0644 |
|
| camellia.h | File | 5.43 KB | 0644 |
|
| cast.h | File | 4.55 KB | 0644 |
|
| cmac.h | File | 3.18 KB | 0644 |
|
| cms.h | File | 27.97 KB | 0644 |
|
| comp.h | File | 2.32 KB | 0644 |
|
| conf.h | File | 10.99 KB | 0644 |
|
| conf_api.h | File | 4.05 KB | 0644 |
|
| crypto.h | File | 27.23 KB | 0644 |
|
| des.h | File | 11.49 KB | 0644 |
|
| des_old.h | File | 20.98 KB | 0644 |
|
| dh.h | File | 15.9 KB | 0644 |
|
| dsa.h | File | 14.64 KB | 0644 |
|
| dso.h | File | 19.74 KB | 0644 |
|
| dtls1.h | File | 8.83 KB | 0644 |
|
| e_os2.h | File | 10.69 KB | 0644 |
|
| ebcdic.h | File | 616 B | 0644 |
|
| ec.h | File | 50.77 KB | 0644 |
|
| ecdh.h | File | 5.07 KB | 0644 |
|
| ecdsa.h | File | 13.71 KB | 0644 |
|
| engine.h | File | 43.89 KB | 0644 |
|
| err.h | File | 16.42 KB | 0644 |
|
| evp.h | File | 66.58 KB | 0644 |
|
| fips.h | File | 13.31 KB | 0644 |
|
| fips_rand.h | File | 7.16 KB | 0644 |
|
| hmac.h | File | 4.43 KB | 0644 |
|
| idea.h | File | 4.57 KB | 0644 |
|
| krb5_asn.h | File | 7.97 KB | 0644 |
|
| kssl.h | File | 6.69 KB | 0644 |
|
| lhash.h | File | 9.33 KB | 0644 |
|
| md2.h | File | 3.89 KB | 0644 |
|
| md4.h | File | 4.67 KB | 0644 |
|
| md5.h | File | 4.67 KB | 0644 |
|
| modes.h | File | 8.46 KB | 0644 |
|
| obj_mac.h | File | 171.54 KB | 0644 |
|
| objects.h | File | 46.45 KB | 0644 |
|
| ocsp.h | File | 26.51 KB | 0644 |
|
| opensslconf-x86_64.h | File | 7.6 KB | 0644 |
|
| opensslconf.h | File | 1.54 KB | 0644 |
|
| opensslv.h | File | 3.85 KB | 0644 |
|
| ossl_typ.h | File | 7.65 KB | 0644 |
|
| pem.h | File | 25.27 KB | 0644 |
|
| pem2.h | File | 2.79 KB | 0644 |
|
| pkcs12.h | File | 14.5 KB | 0644 |
|
| pkcs7.h | File | 20.29 KB | 0644 |
|
| pqueue.h | File | 3.59 KB | 0644 |
|
| rand.h | File | 6.73 KB | 0644 |
|
| rc2.h | File | 4.44 KB | 0644 |
|
| rc4.h | File | 3.72 KB | 0644 |
|
| rc5.h | File | 4.82 KB | 0644 |
|
| ripemd.h | File | 4.27 KB | 0644 |
|
| rsa.h | File | 29.68 KB | 0644 |
|
| safestack.h | File | 198.15 KB | 0644 |
|
| seed.h | File | 5.9 KB | 0644 |
|
| sha.h | File | 7.4 KB | 0644 |
|
| srtp.h | File | 6.48 KB | 0644 |
|
| ssl.h | File | 143.33 KB | 0644 |
|
| ssl2.h | File | 11.77 KB | 0644 |
|
| ssl23.h | File | 3.7 KB | 0644 |
|
| ssl3.h | File | 32.5 KB | 0644 |
|
| stack.h | File | 4.43 KB | 0644 |
|
| symhacks.h | File | 27.04 KB | 0644 |
|
| tls1.h | File | 38.48 KB | 0644 |
|
| ts.h | File | 33.75 KB | 0644 |
|
| txt_db.h | File | 4.52 KB | 0644 |
|
| ui.h | File | 18.25 KB | 0644 |
|
| ui_compat.h | File | 3.41 KB | 0644 |
|
| whrlpool.h | File | 1.06 KB | 0644 |
|
| x509.h | File | 52.07 KB | 0644 |
|
| x509_vfy.h | File | 28.55 KB | 0644 |
|
| x509v3.h | File | 39.44 KB | 0644 |
|