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