1c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* ssl/tls1.h */ 2c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 3c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * All rights reserved. 4c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 5c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * This package is an SSL implementation written 6c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * by Eric Young (eay@cryptsoft.com). 7c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * The implementation was written so as to conform with Netscapes SSL. 8c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 9c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * This library is free for commercial and non-commercial use as long as 10c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * the following conditions are aheared to. The following conditions 11c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * apply to all code found in this distribution, be it the RC4, RSA, 12c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * lhash, DES, etc., code; not just the SSL code. The SSL documentation 13c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * included with this distribution is covered by the same copyright terms 14c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 16c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * Copyright remains Eric Young's, and as such any Copyright notices in 17c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * the code are not to be removed. 18c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * If this package is used in a product, Eric Young should be given attribution 19c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * as the author of the parts of the library used. 20c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * This can be in the form of a textual message at program startup or 21c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * in documentation (online or textual) provided with the package. 22c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 23c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * Redistribution and use in source and binary forms, with or without 24c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * modification, are permitted provided that the following conditions 25c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * are met: 26c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 1. Redistributions of source code must retain the copyright 27c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * notice, this list of conditions and the following disclaimer. 28c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 2. Redistributions in binary form must reproduce the above copyright 29c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * notice, this list of conditions and the following disclaimer in the 30c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * documentation and/or other materials provided with the distribution. 31c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 3. All advertising materials mentioning features or use of this software 32c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * must display the following acknowledgement: 33c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * "This product includes cryptographic software written by 34c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * Eric Young (eay@cryptsoft.com)" 35c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * The word 'cryptographic' can be left out if the rouines from the library 36c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * being used are not cryptographic related :-). 37c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 4. If you include any Windows specific code (or a derivative thereof) from 38c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * the apps directory (application code) you must include an acknowledgement: 39c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 40c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 41c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 42c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 43c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 44c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 45c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 46c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 47c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 48c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 49c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 50c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 51c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * SUCH DAMAGE. 52c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 53c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * The licence and distribution terms for any publically available version or 54c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * derivative of this code cannot be changed. i.e. this code cannot simply be 55c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * copied and put under another distribution licence 56c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * [including the GNU Public Licence.] 57c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org */ 58c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* ==================================================================== 59480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 60480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 61480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * Redistribution and use in source and binary forms, with or without 62480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * modification, are permitted provided that the following conditions 63480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * are met: 64480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 65480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 1. Redistributions of source code must retain the above copyright 66480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * notice, this list of conditions and the following disclaimer. 67480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 68480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 2. Redistributions in binary form must reproduce the above copyright 69480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * notice, this list of conditions and the following disclaimer in 70480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * the documentation and/or other materials provided with the 71480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * distribution. 72480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 73480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 3. All advertising materials mentioning features or use of this 74480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * software must display the following acknowledgment: 75480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * "This product includes software developed by the OpenSSL Project 76480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 77480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 78480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 79480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * endorse or promote products derived from this software without 80480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * prior written permission. For written permission, please contact 81480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * openssl-core@openssl.org. 82480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 83480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 5. Products derived from this software may not be called "OpenSSL" 84480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * nor may "OpenSSL" appear in their names without prior written 85480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * permission of the OpenSSL Project. 86480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 87480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 6. Redistributions of any form whatsoever must retain the following 88480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * acknowledgment: 89480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * "This product includes software developed by the OpenSSL Project 90480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 91480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 92480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 93480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 94480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 95480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 96480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 97480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 98480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 99480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 100480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 101480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 102480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 103480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * OF THE POSSIBILITY OF SUCH DAMAGE. 104480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * ==================================================================== 105480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 106480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * This product includes cryptographic software written by Eric Young 107480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * (eay@cryptsoft.com). This product includes software written by Tim 108480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * Hudson (tjh@cryptsoft.com). 109480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 110480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org */ 111480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org/* ==================================================================== 112c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 113c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 114c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * Portions of the attached software ("Contribution") are developed by 115c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 116c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 117c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * The Contribution is licensed pursuant to the OpenSSL open source 118c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * license provided above. 119c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 120c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * ECC cipher suite support in OpenSSL originally written by 121c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * Vipul Gupta and Sumit Gupta of Sun Microsystems Laboratories. 122c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * 123c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org */ 124480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org/* ==================================================================== 125480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * Copyright 2005 Nokia. All rights reserved. 126480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 127480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * The portions of the attached software ("Contribution") is developed by 128480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * Nokia Corporation and is licensed pursuant to the OpenSSL open source 129480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * license. 130480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 131480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * The Contribution, originally written by Mika Kousa and Pasi Eronen of 132480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites 133480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * support (see RFC 4279) to OpenSSL. 134480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 135480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * No patent licenses or other rights except those expressly stated in 136480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * the OpenSSL open source license shall be deemed granted or received 137480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * expressly, by implication, estoppel, or otherwise. 138480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 139480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * No assurances are provided by Nokia that the Contribution does not 140480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * infringe the patent or other intellectual property rights of any third 141480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * party or that the license provides you with all the necessary rights 142480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * to make use of the Contribution. 143480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * 144480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN 145480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA 146480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY 147480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR 148480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * OTHERWISE. 149480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org */ 150c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 151c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#ifndef HEADER_TLS1_H 152c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define HEADER_TLS1_H 153c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 154c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#include <openssl/buffer.h> 155c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 156c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#ifdef __cplusplus 157c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgextern "C" { 158c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#endif 159c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 160c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES 0 161c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 1622c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_2_VERSION 0x0303 1632c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_2_VERSION_MAJOR 0x03 1642c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_2_VERSION_MINOR 0x03 1652c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 1662c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_1_VERSION 0x0302 1672c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_1_VERSION_MAJOR 0x03 1682c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_1_VERSION_MINOR 0x02 1692c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 170c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_VERSION 0x0301 171c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_VERSION_MAJOR 0x03 172c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_VERSION_MINOR 0x01 173c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 1742c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_get_version(s) \ 1752c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org ((s->version >> 8) == TLS1_VERSION_MAJOR ? s->version : 0) 1762c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 1772c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_get_client_version(s) \ 1782c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org ((s->client_version >> 8) == TLS1_VERSION_MAJOR ? s->client_version : 0) 1792c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 180c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_DECRYPTION_FAILED 21 181c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_RECORD_OVERFLOW 22 182c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_UNKNOWN_CA 48 /* fatal */ 183c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_ACCESS_DENIED 49 /* fatal */ 184c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_DECODE_ERROR 50 /* fatal */ 185c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_DECRYPT_ERROR 51 186c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_EXPORT_RESTRICTION 60 /* fatal */ 187c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_PROTOCOL_VERSION 70 /* fatal */ 188c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_INSUFFICIENT_SECURITY 71 /* fatal */ 189c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_INTERNAL_ERROR 80 /* fatal */ 190c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_USER_CANCELLED 90 191c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_NO_RENEGOTIATION 100 192c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* codes 110-114 are from RFC3546 */ 193c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_UNSUPPORTED_EXTENSION 110 194c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111 195c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_UNRECOGNIZED_NAME 112 196c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113 197c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114 198c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_AD_UNKNOWN_PSK_IDENTITY 115 /* fatal */ 199c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 2002c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* ExtensionType values from RFC3546 / RFC4366 / RFC6066 */ 201c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_TYPE_server_name 0 202c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_TYPE_max_fragment_length 1 203c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_TYPE_client_certificate_url 2 204c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_TYPE_trusted_ca_keys 3 205c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_TYPE_truncated_hmac 4 206c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_TYPE_status_request 5 2072c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* ExtensionType values from RFC4681 */ 2082c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_TYPE_user_mapping 6 2092c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 2102c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* ExtensionType values from RFC5878 */ 2112c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_TYPE_client_authz 7 2122c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_TYPE_server_authz 8 2132c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 2142c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* ExtensionType values from RFC6091 */ 2152c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_TYPE_cert_type 9 2162c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 217480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org/* ExtensionType values from RFC4492 */ 218c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_TYPE_elliptic_curves 10 219c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_TYPE_ec_point_formats 11 2202c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 2212c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* ExtensionType value from RFC5054 */ 2222c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_TYPE_srp 12 2232c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 2242c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* ExtensionType values from RFC5246 */ 2252c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_TYPE_signature_algorithms 13 2262c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 2272c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* ExtensionType value from RFC5764 */ 2282c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_TYPE_use_srtp 14 2292c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 2302c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* ExtensionType value from RFC5620 */ 2312c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_TYPE_heartbeat 15 2322c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 2332c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* ExtensionType value from RFC4507 */ 234c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_TYPE_session_ticket 35 2352c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 236480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org/* ExtensionType value from draft-rescorla-tls-opaque-prf-input-00.txt */ 237480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#if 0 /* will have to be provided externally for now , 238480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * i.e. build with -DTLSEXT_TYPE_opaque_prf_input=38183 239480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * using whatever extension number you'd like to try */ 240480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org# define TLSEXT_TYPE_opaque_prf_input ?? */ 241480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#endif 242c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 243c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* Temporary extension type */ 244c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_TYPE_renegotiate 0xff01 245c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 246480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#ifndef OPENSSL_NO_NEXTPROTONEG 247c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* This is not an IANA defined extension number */ 248c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_TYPE_next_proto_neg 13172 249480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#endif 250c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 251e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org/* This is not an IANA defined extension number */ 252e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org#define TLSEXT_TYPE_channel_id 30031 253e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org 254c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* NameType value from RFC 3546 */ 255c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_NAMETYPE_host_name 0 256c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* status request value from RFC 3546 */ 257c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_STATUSTYPE_ocsp 1 258c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 259480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org/* ECPointFormat values from draft-ietf-tls-ecc-12 */ 260480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLSEXT_ECPOINTFORMAT_first 0 261480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLSEXT_ECPOINTFORMAT_uncompressed 0 262480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1 263480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2 264480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLSEXT_ECPOINTFORMAT_last 2 265480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org 2662c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* Signature and hash algorithms from RFC 5246 */ 2672c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 2682c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_signature_anonymous 0 2692c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_signature_rsa 1 2702c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_signature_dsa 2 2712c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_signature_ecdsa 3 2722c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 2732c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_hash_none 0 2742c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_hash_md5 1 2752c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_hash_sha1 2 2762c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_hash_sha224 3 2772c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_hash_sha256 4 2782c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_hash_sha384 5 2792c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLSEXT_hash_sha512 6 2802c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 281c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#ifndef OPENSSL_NO_TLSEXT 282c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 283c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLSEXT_MAXLEN_host_name 255 284c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 2852c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.orgconst char *SSL_get_servername(const SSL *s, const int type); 2862c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.orgint SSL_get_servername_type(const SSL *s); 2872c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* SSL_export_keying_material exports a value derived from the master secret, 2882c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org * as specified in RFC 5705. It writes |olen| bytes to |out| given a label and 2892c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org * optional context. (Since a zero length context is allowed, the |use_context| 2902c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org * flag controls whether a context is included.) 2912c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org * 2922c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org * It returns 1 on success and zero otherwise. 2932c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org */ 2942e9fc9b0d30b32a0a70e52eabf801668028d796fhclam@chromium.orgint SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, 2952e9fc9b0d30b32a0a70e52eabf801668028d796fhclam@chromium.org const char *label, size_t llen, const unsigned char *p, size_t plen, 2962e9fc9b0d30b32a0a70e52eabf801668028d796fhclam@chromium.org int use_context); 297c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 298c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_set_tlsext_host_name(s,name) \ 299c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,(char *)name) 300c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 301c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_set_tlsext_debug_callback(ssl, cb) \ 302c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,(void (*)(void))cb) 303c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 304c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_set_tlsext_debug_arg(ssl, arg) \ 305c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_ARG,0, (void *)arg) 306c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 307c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_set_tlsext_status_type(ssl, type) \ 308c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type, NULL) 309c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 310c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_get_tlsext_status_exts(ssl, arg) \ 311c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) 312c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 313c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_set_tlsext_status_exts(ssl, arg) \ 314c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) 315c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 316c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_get_tlsext_status_ids(ssl, arg) \ 317c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) 318c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 319c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_set_tlsext_status_ids(ssl, arg) \ 320c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) 321c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 322c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ 323c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0, (void *)arg) 324c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 325c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ 326c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen, (void *)arg) 327c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 328c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_CTX_set_tlsext_servername_callback(ctx, cb) \ 329c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_CB,(void (*)(void))cb) 330c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 331c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_TLSEXT_ERR_OK 0 332c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_TLSEXT_ERR_ALERT_WARNING 1 333c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_TLSEXT_ERR_ALERT_FATAL 2 334c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_TLSEXT_ERR_NOACK 3 335c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 336c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_CTX_set_tlsext_servername_arg(ctx, arg) \ 337c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0, (void *)arg) 338c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 339c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \ 340c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org SSL_CTX_ctrl((ctx),SSL_CTRL_GET_TLSEXT_TICKET_KEYS,(keylen),(keys)) 341c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \ 342c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org SSL_CTX_ctrl((ctx),SSL_CTRL_SET_TLSEXT_TICKET_KEYS,(keylen),(keys)) 343c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 344c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_CTX_set_tlsext_status_cb(ssl, cb) \ 345c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,(void (*)(void))cb) 346c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 347c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ 348c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0, (void *)arg) 349c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 350480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define SSL_set_tlsext_opaque_prf_input(s, src, len) \ 351480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.orgSSL_ctrl(s,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT, len, src) 352480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define SSL_CTX_set_tlsext_opaque_prf_input_callback(ctx, cb) \ 353480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.orgSSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB, (void (*)(void))cb) 354480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define SSL_CTX_set_tlsext_opaque_prf_input_callback_arg(ctx, arg) \ 355480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.orgSSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG, 0, arg) 356480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org 357c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \ 358c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.orgSSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) 359c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 3602c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#ifndef OPENSSL_NO_HEARTBEATS 3612c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define SSL_TLSEXT_HB_ENABLED 0x01 3622c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define SSL_TLSEXT_HB_DONT_SEND_REQUESTS 0x02 3632c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define SSL_TLSEXT_HB_DONT_RECV_REQUESTS 0x04 3642c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 3652c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define SSL_get_tlsext_heartbeat_pending(ssl) \ 3662c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org SSL_ctrl((ssl),SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING,0,NULL) 3672c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define SSL_set_tlsext_heartbeat_no_requests(ssl, arg) \ 3682c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org SSL_ctrl((ssl),SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS,arg,NULL) 3692c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#endif 370c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#endif 371c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 372480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org/* PSK ciphersuites from 4279 */ 373480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A 374480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008B 375480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLS1_CK_PSK_WITH_AES_128_CBC_SHA 0x0300008C 376480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLS1_CK_PSK_WITH_AES_256_CBC_SHA 0x0300008D 377480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org 378480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org/* Additional TLS ciphersuites from expired Internet Draft 379480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * draft-ietf-tls-56-bit-ciphersuites-01.txt 380c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * (available if TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES is defined, see 381c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * s3_lib.c). We actually treat them like SSL 3.0 ciphers, which we probably 382480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * shouldn't. Note that the first two are actually not in the IDs. */ 383480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_MD5 0x03000060 /* not in ID */ 384480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLS1_CK_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 0x03000061 /* not in ID */ 385c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA 0x03000062 386c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA 0x03000063 387c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_SHA 0x03000064 388c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA 0x03000065 389c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DHE_DSS_WITH_RC4_128_SHA 0x03000066 390c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 391c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* AES ciphersuites from RFC3268 */ 392c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 393c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F 394c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030 395c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031 396c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DHE_DSS_WITH_AES_128_SHA 0x03000032 397c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DHE_RSA_WITH_AES_128_SHA 0x03000033 398c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ADH_WITH_AES_128_SHA 0x03000034 399c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 400c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_RSA_WITH_AES_256_SHA 0x03000035 401c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DH_DSS_WITH_AES_256_SHA 0x03000036 402c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DH_RSA_WITH_AES_256_SHA 0x03000037 403c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038 404c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039 405c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A 406c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 4072c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* TLS v1.2 ciphersuites */ 4082c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B 4092c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C 4102c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D 4112c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E 4122c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F 4132c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040 4142c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 415c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* Camellia ciphersuites from RFC4132 */ 416c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041 417c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042 418c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043 419c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044 420c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045 421c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046 422c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 4232c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* TLS v1.2 ciphersuites */ 4242c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067 4252c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068 4262c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069 4272c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A 4282c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B 4292c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C 4302c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D 4312c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 4322c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* Camellia ciphersuites from RFC4132 */ 433c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084 434c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085 435c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086 436c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087 437c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088 438c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089 439c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 440c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* SEED ciphersuites from RFC4162 */ 441c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096 442c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097 443c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098 444c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099 445c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A 446c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B 447c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 4482c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* TLS v1.2 GCM ciphersuites from RFC5288 */ 4492c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C 4502c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D 4512c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E 4522c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F 4532c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0 4542c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1 4552c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2 4562c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3 4572c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4 4582c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5 4592c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6 4602c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7 4612c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 462c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* ECC ciphersuites from draft-ietf-tls-ecc-12.txt with changes soon to be in draft 13 */ 463c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001 464c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002 465c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003 466c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004 467c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005 468c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 469c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006 470c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007 471c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008 472c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009 473c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A 474c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 475c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B 476c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C 477c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D 478c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E 479c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F 480c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 481c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010 482c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011 483c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012 484c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013 485c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014 486c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 487c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015 488c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016 489c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017 490c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018 491c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019 492c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 4932c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* SRP ciphersuites from RFC 5054 */ 4942c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A 4952c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B 4962c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C 4972c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D 4982c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E 4992c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F 5002c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020 5012c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021 5022c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0x0300C022 5032c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 5042c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* ECDH HMAC based ciphersuites from RFC5289 */ 5052c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 5062c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 0x0300C023 5072c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 0x0300C024 5082c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 0x0300C025 5092c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026 5102c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027 5112c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028 5122c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029 5132c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A 5142c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 5152c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* ECDH GCM based ciphersuites from RFC5289 */ 5162c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B 5172c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C 5182c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D 5192c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E 5202c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F 5212c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030 5222c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031 5232c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032 5242c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 525219af2cde3d824e82b72b3efc070f3a14fbe3c10agl@chromium.org#define TLS1_CK_ECDHE_RSA_CHACHA20_POLY1305 0x0300CC13 526219af2cde3d824e82b72b3efc070f3a14fbe3c10agl@chromium.org#define TLS1_CK_ECDHE_ECDSA_CHACHA20_POLY1305 0x0300CC14 527219af2cde3d824e82b72b3efc070f3a14fbe3c10agl@chromium.org#define TLS1_CK_DHE_RSA_CHACHA20_POLY1305 0x0300CC15 528219af2cde3d824e82b72b3efc070f3a14fbe3c10agl@chromium.org 529c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* XXX 530c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * Inconsistency alert: 531c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * The OpenSSL names of ciphers with ephemeral DH here include the string 532c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * "DHE", while elsewhere it has always been "EDH". 533c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * (The alias for the list of all such ciphers also is "EDH".) 534c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * The specifications speak of "EDH"; maybe we should allow both forms 535c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org * for everything. */ 536c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5 "EXP1024-RC4-MD5" 537c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 "EXP1024-RC2-CBC-MD5" 538c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA "EXP1024-DES-CBC-SHA" 539c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA "EXP1024-DHE-DSS-DES-CBC-SHA" 540c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA "EXP1024-RC4-SHA" 541c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA "EXP1024-DHE-DSS-RC4-SHA" 542c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA" 543c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 544c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* AES ciphersuites from RFC3268 */ 545c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA" 546c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA" 547c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA" 548c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA" 549c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA" 550c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA" 551c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 552c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA" 553c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA" 554c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA" 555c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA" 556c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA" 557c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA" 558c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 559c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* ECC ciphersuites from draft-ietf-tls-ecc-01.txt (Mar 15, 2001) */ 560c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA" 561c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA" 562c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA" 563c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA" 564c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA" 565c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 566c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA" 567c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA" 568c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA" 569c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA" 570c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA" 571c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 572c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA" 573c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA" 574c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA" 575c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA" 576c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA" 577c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 578c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA" 579c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA" 580c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA" 581c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA" 582c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA" 583c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 584c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA" 585c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA" 586c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA" 587c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA" 588c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA" 589c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 590480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org/* PSK ciphersuites from RFC 4279 */ 591480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA" 592480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA" 593480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA" 594480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA" 595480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org 5962c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* SRP ciphersuite from RFC 5054 */ 5972c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA" 5982c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA" 5992c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA" 6002c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA" 6012c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA" 6022c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA" 6032c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA" 6042c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA" 6052c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA" 6062c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 607c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* Camellia ciphersuites from RFC4132 */ 608c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA" 609c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA" 610c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA" 611c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA" 612c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA" 613c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA" 614c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 615c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA" 616c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA" 617c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA" 618c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA" 619c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA" 620c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA" 621c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 622c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org/* SEED ciphersuites from RFC4162 */ 623c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA" 624c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA" 625c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA" 626c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA" 627c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA" 628c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA" 629c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 6302c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* TLS v1.2 ciphersuites */ 6312c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256" 6322c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256" 6332c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256" 6342c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256" 6352c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256" 6362c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256" 6372c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256" 6382c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256" 6392c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256" 6402c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256" 6412c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256" 6422c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256" 6432c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256" 6442c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 6452c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* TLS v1.2 GCM ciphersuites from RFC5288 */ 6462c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256" 6472c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384" 6482c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256" 6492c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384" 6502c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256" 6512c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384" 6522c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256" 6532c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384" 6542c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256" 6552c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384" 6562c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256" 6572c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 "ADH-AES256-GCM-SHA384" 6582c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 6592c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* ECDH HMAC based ciphersuites from RFC5289 */ 6602c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 6612c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256" 6622c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 "ECDHE-ECDSA-AES256-SHA384" 6632c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 "ECDH-ECDSA-AES128-SHA256" 6642c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384" 6652c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256" 6662c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384" 6672c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256" 6682c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384" 6692c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org 6702c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org/* ECDH GCM based ciphersuites from RFC5289 */ 6712c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "ECDHE-ECDSA-AES128-GCM-SHA256" 6722c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "ECDHE-ECDSA-AES256-GCM-SHA384" 6732c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 "ECDH-ECDSA-AES128-GCM-SHA256" 6742c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 "ECDH-ECDSA-AES256-GCM-SHA384" 6752c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256" 6762c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384" 6772c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256" 6782c4508dfe2bc5b6296c01114ed11ddc64b7718c6digit@chromium.org#define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384" 679480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org 680219af2cde3d824e82b72b3efc070f3a14fbe3c10agl@chromium.org#define TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305 "ECDHE-RSA-CHACHA20-POLY1305" 681219af2cde3d824e82b72b3efc070f3a14fbe3c10agl@chromium.org#define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "ECDHE-ECDSA-CHACHA20-POLY1305" 682219af2cde3d824e82b72b3efc070f3a14fbe3c10agl@chromium.org#define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 "DHE-RSA-CHACHA20-POLY1305" 683219af2cde3d824e82b72b3efc070f3a14fbe3c10agl@chromium.org 684c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_CT_RSA_SIGN 1 685c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_CT_DSS_SIGN 2 686c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_CT_RSA_FIXED_DH 3 687c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_CT_DSS_FIXED_DH 4 688c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_CT_ECDSA_SIGN 64 689c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_CT_RSA_FIXED_ECDH 65 690c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_CT_ECDSA_FIXED_ECDH 66 691480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLS_CT_GOST94_SIGN 21 692480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLS_CT_GOST01_SIGN 22 693480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org/* when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see 694480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org * comment there) */ 695480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org#define TLS_CT_NUMBER 9 696c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 697c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS1_FINISH_MAC_LENGTH 12 698c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 699c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_MAX_CONST_SIZE 20 700c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_CLIENT_FINISH_CONST "client finished" 701c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_CLIENT_FINISH_CONST_SIZE 15 702c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_SERVER_FINISH_CONST "server finished" 703c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_SERVER_FINISH_CONST_SIZE 15 704c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" 705c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 706c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_KEY_EXPANSION_CONST "key expansion" 707c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_KEY_EXPANSION_CONST_SIZE 13 708c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_CLIENT_WRITE_KEY_CONST "client write key" 709c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE 16 710c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" 711c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 712c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_IV_BLOCK_CONST "IV block" 713c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_IV_BLOCK_CONST_SIZE 8 714c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_MASTER_SECRET_CONST "master secret" 715c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_MASTER_SECRET_CONST_SIZE 13 716c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 717c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#ifdef CHARSET_EBCDIC 718c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#undef TLS_MD_CLIENT_FINISH_CONST 719c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64" /*client finished*/ 720c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#undef TLS_MD_SERVER_FINISH_CONST 721c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64" /*server finished*/ 722c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#undef TLS_MD_SERVER_WRITE_KEY_CONST 723c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" /*server write key*/ 724c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#undef TLS_MD_KEY_EXPANSION_CONST 725c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e" /*key expansion*/ 726c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#undef TLS_MD_CLIENT_WRITE_KEY_CONST 727c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" /*client write key*/ 728c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#undef TLS_MD_SERVER_WRITE_KEY_CONST 729c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" /*server write key*/ 730c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#undef TLS_MD_IV_BLOCK_CONST 731c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b" /*IV block*/ 732c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#undef TLS_MD_MASTER_SECRET_CONST 733c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" /*master secret*/ 734c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#endif 735c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org 736480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org/* TLS Session Ticket extension struct */ 737480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.orgstruct tls_session_ticket_ext_st 738480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org { 739480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org unsigned short length; 740480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org void *data; 741480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org }; 742480da75abf485e7e2a6be5acc0f71842368792c0jnd@chromium.org 743c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#ifdef __cplusplus 744c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org} 745c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#endif 746c9490d33b98b7affb729b5f1db13cb0a348471aagl@chromium.org#endif 747