15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file contains prototypes for the public SSL functions.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * This Source Code Form is subject to the terms of the Mozilla Public
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * License, v. 2.0. If a copy of the MPL was not distributed with this
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef __sslt_h_
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define __sslt_h_
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "prtypes.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* SECItemArray is added in NSS 3.15.  Define the type if compiling
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)** against an older version of NSS.
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)*/
16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "nssutil.h"
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if NSSUTIL_VMAJOR == 3 && NSSUTIL_VMINOR < 15
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)typedef struct SECItemArrayStr SECItemArray;
19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)struct SECItemArrayStr {
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    SECItem *items;
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    unsigned int len;
23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)};
24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif  /* NSSUTIL_VMAJOR == 3 && NSSUTIL_VMINOR < 15 */
25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct SSL3StatisticsStr {
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* statistics from ssl3_SendClientHello (sch) */
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    long sch_sid_cache_hits;
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    long sch_sid_cache_misses;
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    long sch_sid_cache_not_ok;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* statistics from ssl3_HandleServerHello (hsh) */
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    long hsh_sid_cache_hits;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    long hsh_sid_cache_misses;
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    long hsh_sid_cache_not_ok;
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* statistics from ssl3_HandleClientHello (hch) */
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    long hch_sid_cache_hits;
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    long hch_sid_cache_misses;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    long hch_sid_cache_not_ok;
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* statistics related to stateless resume */
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    long sch_sid_stateless_resumes;
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    long hsh_sid_stateless_resumes;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    long hch_sid_stateless_resumes;
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    long hch_sid_ticket_parse_failures;
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SSL3Statistics;
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Key Exchange algorithm values */
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_kea_null     = 0,
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_kea_rsa      = 1,
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_kea_dh       = 2,
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_kea_fortezza = 3,       /* deprecated, now unused */
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_kea_ecdh     = 4,
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_kea_size		/* number of ssl_kea_ algorithms */
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SSLKEAType;
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The following defines are for backwards compatibility.
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** They will be removed in a forthcoming release to reduce namespace pollution.
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** programs that use the kt_ symbols should convert to the ssl_kt_ symbols
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** soon.
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define kt_null   	ssl_kea_null
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define kt_rsa   	ssl_kea_rsa
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define kt_dh   	ssl_kea_dh
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define kt_fortezza	ssl_kea_fortezza       /* deprecated, now unused */
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define kt_ecdh   	ssl_kea_ecdh
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define kt_kea_size	ssl_kea_size
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_sign_null   = 0,
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_sign_rsa    = 1,
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_sign_dsa    = 2,
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_sign_ecdsa  = 3
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SSLSignType;
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_auth_null   = 0,
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_auth_rsa    = 1,
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_auth_dsa    = 2,
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_auth_kea    = 3,
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_auth_ecdsa  = 4
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SSLAuthType;
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_calg_null     = 0,
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_calg_rc4      = 1,
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_calg_rc2      = 2,
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_calg_des      = 3,
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_calg_3des     = 4,
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_calg_idea     = 5,
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_calg_fortezza = 6,      /* deprecated, now unused */
943551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    ssl_calg_aes      = 7,
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_calg_camellia = 8,
963551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    ssl_calg_seed     = 9,
97d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)    ssl_calg_aes_gcm  = 10,
98d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)    ssl_calg_chacha20 = 11
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SSLCipherAlgorithm;
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_mac_null      = 0,
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_mac_md5       = 1,
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_mac_sha       = 2,
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_hmac_md5      = 3, 	/* TLS HMAC version of mac_md5 */
106868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    ssl_hmac_sha      = 4, 	/* TLS HMAC version of mac_sha */
1073551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    ssl_hmac_sha256   = 5,
1083551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    ssl_mac_aead      = 6
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SSLMACAlgorithm;
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_compression_null = 0,
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_compression_deflate = 1  /* RFC 3749 */
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SSLCompressionMethod;
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct SSLChannelInfoStr {
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint32             length;
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint16             protocolVersion;
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint16             cipherSuite;
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* server authentication info */
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint32             authKeyBits;
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* key exchange algorithm info */
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint32             keaKeyBits;
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* session info */
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint32             creationTime;		/* seconds since Jan 1, 1970 */
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint32             lastAccessTime;	/* seconds since Jan 1, 1970 */
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint32             expirationTime;	/* seconds since Jan 1, 1970 */
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint32             sessionIDLength;	/* up to 32 */
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint8              sessionID    [32];
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* The following fields are added in NSS 3.12.5. */
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* compression method info */
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const char *         compressionMethodName;
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SSLCompressionMethod compressionMethod;
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SSLChannelInfo;
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct SSLCipherSuiteInfoStr {
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint16             length;
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint16             cipherSuite;
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* Cipher Suite Name */
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const char *         cipherSuiteName;
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* server authentication info */
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const char *         authAlgorithmName;
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SSLAuthType          authAlgorithm;
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* key exchange algorithm info */
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const char *         keaTypeName;
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SSLKEAType           keaType;
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* symmetric encryption info */
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const char *         symCipherName;
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SSLCipherAlgorithm   symCipher;
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint16             symKeyBits;
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint16             symKeySpace;
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint16             effectiveKeyBits;
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* MAC info */
1643551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    /* AEAD ciphers don't have a MAC. For an AEAD cipher, macAlgorithmName
1653551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)     * is "AEAD", macAlgorithm is ssl_mac_aead, and macBits is the length in
1663551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)     * bits of the authentication tag. */
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const char *         macAlgorithmName;
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SSLMACAlgorithm      macAlgorithm;
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint16             macBits;
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUintn              isFIPS       : 1;
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUintn              isExportable : 1;
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUintn              nonStandard  : 1;
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUintn              reservedBits :29;
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SSLCipherSuiteInfo;
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_variant_stream = 0,
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_variant_datagram = 1
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SSLProtocolVariant;
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct SSLVersionRangeStr {
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint16 min;
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRUint16 max;
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SSLVersionRange;
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SSL_sni_host_name                    = 0,
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SSL_sni_type_total
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SSLSniNameType;
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Supported extensions. */
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Update SSL_MAX_EXTENSIONS whenever a new extension type is added. */
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_server_name_xtn              = 0,
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_cert_status_xtn              = 5,
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef NSS_ENABLE_ECC
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_elliptic_curves_xtn          = 10,
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_ec_point_formats_xtn         = 11,
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
202868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    ssl_signature_algorithms_xtn     = 13,
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_use_srtp_xtn                 = 14,
204a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    ssl_app_layer_protocol_xtn       = 16,
205f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    ssl_signed_certificate_timestamp_xtn = 18,   /* RFC 6962 */
206a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch    ssl_padding_xtn                  = 21,
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_session_ticket_xtn           = 35,
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_next_proto_nego_xtn          = 13172,
209f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    ssl_channel_id_xtn               = 30032,
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ssl_renegotiation_info_xtn       = 0xff01	/* experimental number */
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SSLExtensionType;
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
213f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define SSL_MAX_EXTENSIONS             12 /* doesn't include ssl_padding_xtn. */
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __sslt_h_ */
216