1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ssl/s3_lib.c */ 2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * All rights reserved. 4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This package is an SSL implementation written 6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * by Eric Young (eay@cryptsoft.com). 7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The implementation was written so as to conform with Netscapes SSL. 8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This library is free for commercial and non-commercial use as long as 10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the following conditions are aheared to. The following conditions 11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * apply to all code found in this distribution, be it the RC4, RSA, 12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * lhash, DES, etc., code; not just the SSL code. The SSL documentation 13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * included with this distribution is covered by the same copyright terms 14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Copyright remains Eric Young's, and as such any Copyright notices in 17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the code are not to be removed. 18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * If this package is used in a product, Eric Young should be given attribution 19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * as the author of the parts of the library used. 20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This can be in the form of a textual message at program startup or 21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * in documentation (online or textual) provided with the package. 22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Redistribution and use in source and binary forms, with or without 24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * modification, are permitted provided that the following conditions 25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * are met: 26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 1. Redistributions of source code must retain the copyright 27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer. 28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer in the 30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * documentation and/or other materials provided with the distribution. 31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 3. All advertising materials mentioning features or use of this software 32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * must display the following acknowledgement: 33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes cryptographic software written by 34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Eric Young (eay@cryptsoft.com)" 35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The word 'cryptographic' can be left out if the rouines from the library 36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * being used are not cryptographic related :-). 37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 4. If you include any Windows specific code (or a derivative thereof) from 38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the apps directory (application code) you must include an acknowledgement: 39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * SUCH DAMAGE. 52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The licence and distribution terms for any publically available version or 54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * derivative of this code cannot be changed. i.e. this code cannot simply be 55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * copied and put under another distribution licence 56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * [including the GNU Public Licence.] 57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ==================================================================== 59221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. 60656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Redistribution and use in source and binary forms, with or without 62656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * modification, are permitted provided that the following conditions 63656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * are met: 64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 1. Redistributions of source code must retain the above copyright 66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer. 67656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 69656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer in 70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the documentation and/or other materials provided with the 71656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * distribution. 72656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 73656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 3. All advertising materials mentioning features or use of this 74656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * software must display the following acknowledgment: 75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software developed by the OpenSSL Project 76656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 77656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 78656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 79656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * endorse or promote products derived from this software without 80656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * prior written permission. For written permission, please contact 81656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * openssl-core@openssl.org. 82656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 83656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 5. Products derived from this software may not be called "OpenSSL" 84656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * nor may "OpenSSL" appear in their names without prior written 85656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * permission of the OpenSSL Project. 86656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 6. Redistributions of any form whatsoever must retain the following 88656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * acknowledgment: 89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software developed by the OpenSSL Project 90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 91656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 93656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 94656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 95656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 96656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 97656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 98656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 99656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OF THE POSSIBILITY OF SUCH DAMAGE. 104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ==================================================================== 105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This product includes cryptographic software written by Eric Young 107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * (eay@cryptsoft.com). This product includes software written by Tim 108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Hudson (tjh@cryptsoft.com). 109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ==================================================================== 112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Portions of the attached software ("Contribution") are developed by 115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The Contribution is licensed pursuant to the OpenSSL open source 118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * license provided above. 119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ECC cipher suite support in OpenSSL originally written by 121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Vipul Gupta and Sumit Gupta of Sun Microsystems Laboratories. 122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 124221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom/* ==================================================================== 125221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * Copyright 2005 Nokia. All rights reserved. 126221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * 127221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * The portions of the attached software ("Contribution") is developed by 128221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * Nokia Corporation and is licensed pursuant to the OpenSSL open source 129221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * license. 130221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * 131221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * The Contribution, originally written by Mika Kousa and Pasi Eronen of 132221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites 133221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * support (see RFC 4279) to OpenSSL. 134221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * 135221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * No patent licenses or other rights except those expressly stated in 136221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * the OpenSSL open source license shall be deemed granted or received 137221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * expressly, by implication, estoppel, or otherwise. 138221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * 139221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * No assurances are provided by Nokia that the Contribution does not 140221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * infringe the patent or other intellectual property rights of any third 141221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * party or that the license provides you with all the necessary rights 142221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * to make use of the Contribution. 143221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * 144221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN 145221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA 146221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY 147221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR 148221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * OTHERWISE. 149221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom */ 150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <stdio.h> 152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/objects.h> 153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "ssl_locl.h" 154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "kssl_lcl.h" 155221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifndef OPENSSL_NO_TLSEXT 156221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifndef OPENSSL_NO_EC 157221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#include "../crypto/ec/ec_lcl.h" 158221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif /* OPENSSL_NO_EC */ 159221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif /* OPENSSL_NO_TLSEXT */ 160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/md5.h> 161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DH 162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/dh.h> 163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst char ssl3_version_str[]="SSLv3" OPENSSL_VERSION_PTEXT; 166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define SSL3_NUM_CIPHERS (sizeof(ssl3_ciphers)/sizeof(SSL_CIPHER)) 168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* list of available SSLv3 ciphers (sorted by id) */ 170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ 171221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* The RSA ciphers */ 173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 01 */ 174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_RSA_NULL_MD5, 177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_RSA_NULL_MD5, 178221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 179221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 180221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_eNULL, 181221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 182221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_STRONG_NONE, 184221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 188221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 02 */ 190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_RSA_NULL_SHA, 193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_RSA_NULL_SHA, 194221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 195221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 196221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_eNULL, 197221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 198221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 199e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_STRONG_NONE|SSL_FIPS, 200221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 204221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 03 */ 206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_RSA_RC4_40_MD5, 209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_RSA_RC4_40_MD5, 210221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 211221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 212221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 213221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 214221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 216221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 220221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 04 */ 222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_RSA_RC4_128_MD5, 225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_RSA_RC4_128_MD5, 226221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 227221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 228221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 229221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 230221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 232221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 236221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 05 */ 238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_RSA_RC4_128_SHA, 241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_RSA_RC4_128_SHA, 242221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 243221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 244221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 245221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 246221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 248221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 252221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 06 */ 254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_RSA_RC2_40_MD5, 257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_RSA_RC2_40_MD5, 258221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 259221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 260221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC2, 261221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 262221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 264221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 268221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 07 */ 270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_IDEA 271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_RSA_IDEA_128_SHA, 274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_RSA_IDEA_128_SHA, 275221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 276221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 277221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_IDEA, 278221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 279221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 281221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 282656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 286221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 08 */ 288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_RSA_DES_40_CBC_SHA, 291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_RSA_DES_40_CBC_SHA, 292221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 293221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 294221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 295221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 296221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 298221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 301656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 302221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 303656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 09 */ 304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 306656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_RSA_DES_64_CBC_SHA, 307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_RSA_DES_64_CBC_SHA, 308221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 309221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 310221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 311221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 312221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_LOW, 314221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 316656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 317656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 318221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 319656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 0A */ 320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 321656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 322656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_RSA_DES_192_CBC3_SHA, 323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_RSA_DES_192_CBC3_SHA, 324221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 325221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 326221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_3DES, 327221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 328221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 329e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 330221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 331c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 332656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 168, 333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 334221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 335656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* The DH ciphers */ 336656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 0B */ 337656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_DH_DSS_DES_40_CBC_SHA, 340656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_DH_DSS_DES_40_CBC_SHA, 341221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHd, 342221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 343221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 344221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 345221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 346656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 347221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 348656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 349656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 351221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 352656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 0C */ 353656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 354221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0, /* not implemented (non-ephemeral DH) */ 355656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_DH_DSS_DES_64_CBC_SHA, 356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_DH_DSS_DES_64_CBC_SHA, 357221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHd, 358221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 359221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 360221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 361221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 362656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_LOW, 363221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 364656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 365656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 366656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 367221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 368656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 0D */ 369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 370221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0, /* not implemented (non-ephemeral DH) */ 371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_DH_DSS_DES_192_CBC3_SHA, 372656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_DH_DSS_DES_192_CBC3_SHA, 373221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHd, 374221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 375221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_3DES, 376221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 377221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 378e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 379221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 380c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 381656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 168, 382656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 383221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 384656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 0E */ 385656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 386221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0, /* not implemented (non-ephemeral DH) */ 387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_DH_RSA_DES_40_CBC_SHA, 388656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_DH_RSA_DES_40_CBC_SHA, 389221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHr, 390221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 391221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 392221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 393221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 394656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 395221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 396656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 397656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 398656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 399221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 400656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 0F */ 401656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 402221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0, /* not implemented (non-ephemeral DH) */ 403656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_DH_RSA_DES_64_CBC_SHA, 404656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_DH_RSA_DES_64_CBC_SHA, 405221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHr, 406221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 407221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 408221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 409221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 410656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_LOW, 411221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 412656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 413656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 414656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 415221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 416656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 10 */ 417656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 418221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0, /* not implemented (non-ephemeral DH) */ 419656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_DH_RSA_DES_192_CBC3_SHA, 420656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_DH_RSA_DES_192_CBC3_SHA, 421221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHr, 422221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 423221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_3DES, 424221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 425221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 426e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 427221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 428c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 429656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 168, 430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 431656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 432656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* The Ephemeral DH ciphers */ 433656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 11 */ 434656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 435656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 436656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_EDH_DSS_DES_40_CBC_SHA, 437656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_EDH_DSS_DES_40_CBC_SHA, 438221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 439221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDSS, 440221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 441221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 442221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 443656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 444221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 445656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 446656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 447656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 448221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 449656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 12 */ 450656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 451656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 452656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_EDH_DSS_DES_64_CBC_SHA, 453656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_EDH_DSS_DES_64_CBC_SHA, 454221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 455221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDSS, 456221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 457221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 458221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 459656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_LOW, 460221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 461656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 462656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 463656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 464221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 465656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 13 */ 466656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 467656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 468656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA, 469656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_EDH_DSS_DES_192_CBC3_SHA, 470221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 471221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDSS, 472221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_3DES, 473221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 474221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 475e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 476221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 477c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 478656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 168, 479656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 480221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 481656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 14 */ 482656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 483656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 484656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_EDH_RSA_DES_40_CBC_SHA, 485656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_EDH_RSA_DES_40_CBC_SHA, 486221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 487221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 488221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 489221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 490221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 491656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 492221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 493656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 494656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 495656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 496221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 497656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 15 */ 498656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 499656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 500656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_EDH_RSA_DES_64_CBC_SHA, 501656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_EDH_RSA_DES_64_CBC_SHA, 502221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 503221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 504221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 505221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 506221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 507656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_LOW, 508221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 509656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 510656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 511656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 512221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 513656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 16 */ 514656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 515656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 516656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA, 517656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_EDH_RSA_DES_192_CBC3_SHA, 518221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 519221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 520221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_3DES, 521221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 522221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 523e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 524221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 525c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 526656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 168, 527656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 528221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 529656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 17 */ 530656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 531656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 532656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_ADH_RC4_40_MD5, 533656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_ADH_RC4_40_MD5, 534221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 535221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aNULL, 536221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 537221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 538221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 539656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 540221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 541656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 542656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 543656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 544221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 545656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 18 */ 546656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 547656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 548656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_ADH_RC4_128_MD5, 549656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_ADH_RC4_128_MD5, 550221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 551221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aNULL, 552221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 553221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 554221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 555656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 556221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 557656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 558656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 559656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 560221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 561656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 19 */ 562656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 563656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 564656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_ADH_DES_40_CBC_SHA, 565656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_ADH_DES_40_CBC_SHA, 566221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 567221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aNULL, 568221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 569221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 570221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 571656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 572221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 573656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 574656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 575656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 576221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 577656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 1A */ 578656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 579656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 580656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_ADH_DES_64_CBC_SHA, 581656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_ADH_DES_64_CBC_SHA, 582221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 583221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aNULL, 584221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 585221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 586221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 587656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_LOW, 588221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 589656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 590656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 591656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 592221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 593656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 1B */ 594656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 595656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 596656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_ADH_DES_192_CBC_SHA, 597656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_ADH_DES_192_CBC_SHA, 598221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 599221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aNULL, 600221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_3DES, 601221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 602221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 603e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 604221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 605c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 606656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 168, 607656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 608656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 609221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom/* Fortezza ciphersuite from SSL 3.0 spec */ 610221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#if 0 611656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 1C */ 612656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 613656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 614656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_FZA_DMS_NULL_SHA, 615656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_FZA_DMS_NULL_SHA, 616221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kFZA, 617221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aFZA, 618221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_eNULL, 619221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 620221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 621656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_STRONG_NONE, 622221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 623656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 624656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 625656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 626656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 627656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 1D */ 628656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 629656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 630656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_FZA_DMS_FZA_SHA, 631656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_FZA_DMS_FZA_SHA, 632221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kFZA, 633221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aFZA, 634221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_eFZA, 635221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 636221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 637656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_STRONG_NONE, 638221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 639656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 640656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 641656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 642656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 643656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 1E */ 644656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 645656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 646656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_FZA_DMS_RC4_SHA, 647656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_FZA_DMS_RC4_SHA, 648221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kFZA, 649221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aFZA, 650221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 651221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 652221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 653656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 654221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 655656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 656656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 657656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 658656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 659656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 660656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_KRB5 661221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom/* The Kerberos ciphers*/ 662656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 1E */ 663656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 664656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 665656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_DES_64_CBC_SHA, 666656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_DES_64_CBC_SHA, 667221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 668221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 669221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 670221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 671221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 672656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_LOW, 673221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 674656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 675656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 676656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 677656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 678656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 1F */ 679656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 680656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 681656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_DES_192_CBC3_SHA, 682656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_DES_192_CBC3_SHA, 683221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 684221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 685221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_3DES, 686221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 687221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 688e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 689221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 690c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 691656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 168, 692656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 693656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 694656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 20 */ 695656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 696656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 697656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_RC4_128_SHA, 698656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_RC4_128_SHA, 699221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 700221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 701221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 702221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 703221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 704656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 705221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 706656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 707656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 708656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 709656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 710656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 21 */ 711656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 712656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 713656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_IDEA_128_CBC_SHA, 714656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_IDEA_128_CBC_SHA, 715221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 716221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 717221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_IDEA, 718221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 719221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 720656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 721221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 722656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 723656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 724656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 725656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 726656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 22 */ 727656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 728656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 729656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_DES_64_CBC_MD5, 730656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_DES_64_CBC_MD5, 731221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 732221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 733221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 734221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 735221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 736656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_LOW, 737221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 738656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 739656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 740656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 741656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 742656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 23 */ 743656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 744656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 745656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_DES_192_CBC3_MD5, 746656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_DES_192_CBC3_MD5, 747221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 748221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 749221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_3DES, 750221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 751221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 752656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_HIGH, 753221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 754c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 755656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 168, 756656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 757656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 758656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 24 */ 759656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 760656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 761656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_RC4_128_MD5, 762656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_RC4_128_MD5, 763221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 764221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 765221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 766221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 767221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 768656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 769221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 770656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 771656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 772656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 773656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 774656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 25 */ 775656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 776656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 777656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_IDEA_128_CBC_MD5, 778656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_IDEA_128_CBC_MD5, 779221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 780221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 781221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_IDEA, 782221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 783221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 784656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 785221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 786656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 787656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 788656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 789656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 790656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 26 */ 791656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 792656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 793656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_DES_40_CBC_SHA, 794656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_DES_40_CBC_SHA, 795221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 796221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 797221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 798221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 799221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 800656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 801221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 802656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 803656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 804656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 805656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 806656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 27 */ 807656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 808656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 809656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_RC2_40_CBC_SHA, 810656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_RC2_40_CBC_SHA, 811221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 812221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 813221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC2, 814221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 815221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 816656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 817221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 818656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 819656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 820656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 821656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 822656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 28 */ 823656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 824656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 825656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_RC4_40_SHA, 826656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_RC4_40_SHA, 827221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 828221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 829221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 830221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 831221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 832656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 833221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 834656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 835656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 836656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 837656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 838656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 29 */ 839656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 840656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 841656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_DES_40_CBC_MD5, 842656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_DES_40_CBC_MD5, 843221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 844221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 845221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 846221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 847221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 848656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 849221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 850656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 851656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56, 852656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 853656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 854656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 2A */ 855656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 856656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 857656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_RC2_40_CBC_MD5, 858656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_RC2_40_CBC_MD5, 859221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 860221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 861221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC2, 862221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 863221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 864656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 865221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 866656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 867656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 868656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 869656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 870656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 2B */ 871656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 872656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 873656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_TXT_KRB5_RC4_40_MD5, 874656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_CK_KRB5_RC4_40_MD5, 875221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kKRB5, 876221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aKRB5, 877221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 878221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 879221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SSLV3, 880656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_EXPORT|SSL_EXP40, 881221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 882656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40, 883656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 884656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 885656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* OPENSSL_NO_KRB5 */ 886656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 887656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* New AES ciphersuites */ 888656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 2F */ 889656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 890656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 891656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_RSA_WITH_AES_128_SHA, 892656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_RSA_WITH_AES_128_SHA, 893221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 894221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 895221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES128, 896221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 897221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 898e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 899221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 900656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 901656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 902656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 903656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 30 */ 904656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 905656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 906656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DH_DSS_WITH_AES_128_SHA, 907656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DH_DSS_WITH_AES_128_SHA, 908221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHd, 909221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 910221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES128, 911221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 912221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 913e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 914221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 915656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 916656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 917656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 918656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 31 */ 919656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 920656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 921656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DH_RSA_WITH_AES_128_SHA, 922656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DH_RSA_WITH_AES_128_SHA, 923221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHr, 924221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 925221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES128, 926221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 927221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 928e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 929221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 930656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 931656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 932656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 933656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 32 */ 934656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 935656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 936656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DHE_DSS_WITH_AES_128_SHA, 937656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DHE_DSS_WITH_AES_128_SHA, 938221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 939221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDSS, 940221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES128, 941221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 942221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 943e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 944221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 945656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 946656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 947656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 948656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 33 */ 949656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 950656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 951656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DHE_RSA_WITH_AES_128_SHA, 952656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DHE_RSA_WITH_AES_128_SHA, 953221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 954221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 955221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES128, 956221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 957221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 958e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 959221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 960656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 961656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 962656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 963656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 34 */ 964656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 965656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 966656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_ADH_WITH_AES_128_SHA, 967656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_ADH_WITH_AES_128_SHA, 968221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 969221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aNULL, 970221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES128, 971221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 972221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 973e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 974221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 975656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 976656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 977656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 978656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 979656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 35 */ 980656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 981656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 982656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_RSA_WITH_AES_256_SHA, 983656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_RSA_WITH_AES_256_SHA, 984221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 985221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 986221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES256, 987221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 988221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 989e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 990221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 991656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 992656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 993656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 994656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 36 */ 995656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 996656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, 997656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DH_DSS_WITH_AES_256_SHA, 998656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DH_DSS_WITH_AES_256_SHA, 999221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHd, 1000221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 1001221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES256, 1002221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1003221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1004e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1005221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1006656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1007656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1008656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1009221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1010656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 37 */ 1011656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1012221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0, /* not implemented (non-ephemeral DH) */ 1013656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DH_RSA_WITH_AES_256_SHA, 1014656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DH_RSA_WITH_AES_256_SHA, 1015221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHr, 1016221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 1017221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES256, 1018221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1019221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1020e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1021221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1022656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1023656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1024656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1025221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1026656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 38 */ 1027656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1028656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1029656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DHE_DSS_WITH_AES_256_SHA, 1030656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DHE_DSS_WITH_AES_256_SHA, 1031221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1032221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDSS, 1033221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES256, 1034221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1035221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1036e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1037221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1038656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1039656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1040656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1041221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1042656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Cipher 39 */ 1043656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1044656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1045656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DHE_RSA_WITH_AES_256_SHA, 1046656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DHE_RSA_WITH_AES_256_SHA, 1047221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1048221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 1049221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES256, 1050221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1051221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1052e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1053221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1054656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1055656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1056656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1057221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1058656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 3A */ 1059656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1060656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1061656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_ADH_WITH_AES_256_SHA, 1062656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_ADH_WITH_AES_256_SHA, 1063221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1064221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aNULL, 1065221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES256, 1066221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1067221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1068e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1069221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1070656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1071656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1072656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1073656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1074392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* TLS v1.2 ciphersuites */ 1075392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 3B */ 1076392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1077392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 1078392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_RSA_WITH_NULL_SHA256, 1079392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_RSA_WITH_NULL_SHA256, 1080392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kRSA, 1081392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 1082392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_eNULL, 1083392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 1084a1a5710c055e139ea00e785f9eb55b3af3e4dab1Brian Carlstrom SSL_TLSV1_2, 1085392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_STRONG_NONE|SSL_FIPS, 1086392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1087392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, 1088392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, 1089392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1090392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1091392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 3C */ 1092392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1093392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 1094392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_RSA_WITH_AES_128_SHA256, 1095392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_RSA_WITH_AES_128_SHA256, 1096392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kRSA, 1097392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 1098392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 1099392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 1100a1a5710c055e139ea00e785f9eb55b3af3e4dab1Brian Carlstrom SSL_TLSV1_2, 1101392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1102392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1103392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1104392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1105392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1106392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1107392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 3D */ 1108392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1109392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 1110392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_RSA_WITH_AES_256_SHA256, 1111392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_RSA_WITH_AES_256_SHA256, 1112392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kRSA, 1113392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 1114392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 1115392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 1116a1a5710c055e139ea00e785f9eb55b3af3e4dab1Brian Carlstrom SSL_TLSV1_2, 1117392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1118392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1119392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1120392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1121392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1122392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1123392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 3E */ 1124392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1125392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, /* not implemented (non-ephemeral DH) */ 1126392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DH_DSS_WITH_AES_128_SHA256, 1127392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DH_DSS_WITH_AES_128_SHA256, 112804ef91b390dfcc6125913e2f2af502d23d7a5112Brian Carlstrom SSL_kDHd, 1129392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDH, 1130392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 1131392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 1132a1a5710c055e139ea00e785f9eb55b3af3e4dab1Brian Carlstrom SSL_TLSV1_2, 1133392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1134392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1135392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1136392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1137392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1138392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1139392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 3F */ 1140392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1141392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, /* not implemented (non-ephemeral DH) */ 1142392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DH_RSA_WITH_AES_128_SHA256, 1143392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DH_RSA_WITH_AES_128_SHA256, 1144392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kDHr, 1145392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDH, 1146392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 1147392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 1148a1a5710c055e139ea00e785f9eb55b3af3e4dab1Brian Carlstrom SSL_TLSV1_2, 1149392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1150392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1151392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1152392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1153392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1154392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1155392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 40 */ 1156392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1157392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 1158392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256, 1159392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DHE_DSS_WITH_AES_128_SHA256, 1160392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEDH, 1161392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDSS, 1162392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 1163392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 1164a1a5710c055e139ea00e785f9eb55b3af3e4dab1Brian Carlstrom SSL_TLSV1_2, 1165392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1166392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1167392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1168392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1169392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1170392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_CAMELLIA 1172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Camellia ciphersuites from RFC4132 (128-bit portion) */ 1173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 41 */ 1175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA, 1178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA, 1179221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 1180221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 1181221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_CAMELLIA128, 1182221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1183221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_HIGH, 1185221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1188656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1189221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 42 */ 1191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, /* not implemented (non-ephemeral DH) */ 1193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA, 1194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA, 1195221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHd, 1196221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 1197221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_CAMELLIA128, 1198221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1199221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_HIGH, 1201221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1205221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 43 */ 1207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, /* not implemented (non-ephemeral DH) */ 1209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA, 1210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA, 1211221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHr, 1212221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 1213221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_CAMELLIA128, 1214221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1215221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_HIGH, 1217221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1221221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 44 */ 1223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA, 1226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA, 1227221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1228221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDSS, 1229221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_CAMELLIA128, 1230221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1231221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_HIGH, 1233221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1237221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 45 */ 1239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, 1242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, 1243221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1244221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 1245221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_CAMELLIA128, 1246221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1247221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_HIGH, 1249221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1253221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 46 */ 1255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA, 1258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA, 1259221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1260221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aNULL, 1261221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_CAMELLIA128, 1262221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1263221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_HIGH, 1265221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* OPENSSL_NO_CAMELLIA */ 1270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES 1272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* New TLS Export CipherSuites from expired ID */ 1273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if 0 1274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 60 */ 1275221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1276221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1277221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5, 1278221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_MD5, 1279221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 1280221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 1281221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 1282221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 1283221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1284221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_EXPORT|SSL_EXP56, 1285221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1286221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 56, 1287221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1288221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1289221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 61 */ 1291221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1292221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1293221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5, 1294221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5, 1295221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 1296221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 1297221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC2, 1298221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 1299221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1300221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_EXPORT|SSL_EXP56, 1301221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1302221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 56, 1303221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1304221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 1306221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 62 */ 1308221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1309221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1310221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA, 1311221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA, 1312221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 1313221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 1314221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 1315221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1316221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1317221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_EXPORT|SSL_EXP56, 1318221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1319221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 56, 1320221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 56, 1321221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1322221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 63 */ 1324221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1325221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1326221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA, 1327221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA, 1328221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1329221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDSS, 1330221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_DES, 1331221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1332221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1333221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_EXPORT|SSL_EXP56, 1334221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1335221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 56, 1336221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 56, 1337221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1338221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 64 */ 1340221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1341221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1342221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA, 1343221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_SHA, 1344221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 1345221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 1346221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 1347221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1348221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1349221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_EXPORT|SSL_EXP56, 1350221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1351221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 56, 1352221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1353221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1354221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1355656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 65 */ 1356221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1357221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1358221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA, 1359221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA, 1360221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1361221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDSS, 1362221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 1363221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1364221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1365221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_EXPORT|SSL_EXP56, 1366221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1367221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 56, 1368221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1369221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1370221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 66 */ 1372221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1373221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1374221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA, 1375221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_DHE_DSS_WITH_RC4_128_SHA, 1376221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1377221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDSS, 1378221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 1379221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1380221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1381221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_MEDIUM, 1382221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1383221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1384221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1385221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 1387392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1388392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* TLS v1.2 ciphersuites */ 1389392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 67 */ 1390392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1391392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 1392392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256, 1393392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DHE_RSA_WITH_AES_128_SHA256, 1394392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEDH, 1395392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 1396392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 1397392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 1398a1a5710c055e139ea00e785f9eb55b3af3e4dab1Brian Carlstrom SSL_TLSV1_2, 1399392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1400392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1401392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1402392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1403392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1404392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1405392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 68 */ 1406392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1407392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, /* not implemented (non-ephemeral DH) */ 1408392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DH_DSS_WITH_AES_256_SHA256, 1409392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DH_DSS_WITH_AES_256_SHA256, 141004ef91b390dfcc6125913e2f2af502d23d7a5112Brian Carlstrom SSL_kDHd, 1411392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDH, 1412392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 1413392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 1414a1a5710c055e139ea00e785f9eb55b3af3e4dab1Brian Carlstrom SSL_TLSV1_2, 1415392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1416392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1417392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1418392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1419392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1420392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1421392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 69 */ 1422392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1423392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, /* not implemented (non-ephemeral DH) */ 1424392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DH_RSA_WITH_AES_256_SHA256, 1425392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DH_RSA_WITH_AES_256_SHA256, 1426392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kDHr, 1427392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDH, 1428392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 1429392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 1430a1a5710c055e139ea00e785f9eb55b3af3e4dab1Brian Carlstrom SSL_TLSV1_2, 1431392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1432392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1433392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1434392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1435392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1436392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1437392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 6A */ 1438392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1439392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 1440392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256, 1441392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DHE_DSS_WITH_AES_256_SHA256, 1442392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEDH, 1443392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDSS, 1444392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 1445392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 1446a1a5710c055e139ea00e785f9eb55b3af3e4dab1Brian Carlstrom SSL_TLSV1_2, 1447392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1448392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1449392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1450392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1451392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1452392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1453392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 6B */ 1454392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1455392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 1456392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256, 1457392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DHE_RSA_WITH_AES_256_SHA256, 1458392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEDH, 1459392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 1460392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 1461392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 1462a1a5710c055e139ea00e785f9eb55b3af3e4dab1Brian Carlstrom SSL_TLSV1_2, 1463392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1464392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1465392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1466392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1467392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1468392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1469392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 6C */ 1470392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1471392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 1472392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ADH_WITH_AES_128_SHA256, 1473392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ADH_WITH_AES_128_SHA256, 1474392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEDH, 1475392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aNULL, 1476392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 1477392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 1478a1a5710c055e139ea00e785f9eb55b3af3e4dab1Brian Carlstrom SSL_TLSV1_2, 1479392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1480392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1481392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1482392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1483392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1484392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1485392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 6D */ 1486392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1487392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 1488392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ADH_WITH_AES_256_SHA256, 1489392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ADH_WITH_AES_256_SHA256, 1490392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEDH, 1491392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aNULL, 1492392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 1493392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 1494a1a5710c055e139ea00e785f9eb55b3af3e4dab1Brian Carlstrom SSL_TLSV1_2, 1495392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1496392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1497392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1498392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1499392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1500392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1501392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* GOST Ciphersuites */ 1502392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1503221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1504221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1505221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom "GOST94-GOST89-GOST89", 1506221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0x3000080, 1507221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kGOST, 1508221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aGOST94, 1509221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_eGOST2814789CNT, 1510221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_GOST89MAC, 1511221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1512221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 1513221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_GOST94|TLS1_PRF_GOST94|TLS1_STREAM_MAC, 1514221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 1515221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256 1516221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1517221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1518221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1519221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom "GOST2001-GOST89-GOST89", 1520221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0x3000081, 1521221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kGOST, 1522221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aGOST01, 1523221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_eGOST2814789CNT, 1524221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_GOST89MAC, 1525221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1526221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 1527221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_GOST94|TLS1_PRF_GOST94|TLS1_STREAM_MAC, 1528221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 1529221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256 1530221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1531221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1532221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1533221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom "GOST94-NULL-GOST94", 1534221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0x3000082, 1535221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kGOST, 1536221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aGOST94, 1537221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_eNULL, 1538221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_GOST94, 1539221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1540221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_STRONG_NONE, 1541221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_GOST94|TLS1_PRF_GOST94, 1542221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0, 1543221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0 1544221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1545221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1546221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1547221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom "GOST2001-NULL-GOST94", 1548221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0x3000083, 1549221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kGOST, 1550221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aGOST01, 1551221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_eNULL, 1552221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_GOST94, 1553221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1554221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_STRONG_NONE, 1555221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_GOST94|TLS1_PRF_GOST94, 1556221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0, 1557221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0 1558221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1559656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1560656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_CAMELLIA 1561656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Camellia ciphersuites from RFC4132 (256-bit portion) */ 1562656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1563656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 84 */ 1564656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1565656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1566656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA, 1567656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA, 1568221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 1569221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 1570221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_CAMELLIA256, 1571221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1572221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1573656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_HIGH, 1574221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1575656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1576656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1577656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1578656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 85 */ 1579656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1580656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, /* not implemented (non-ephemeral DH) */ 1581656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA, 1582656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA, 1583221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHd, 1584221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 1585221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_CAMELLIA256, 1586221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1587221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1588656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_HIGH, 1589221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1590656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1591656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1592656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1593221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1594656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 86 */ 1595656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1596656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, /* not implemented (non-ephemeral DH) */ 1597656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA, 1598656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA, 1599221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHr, 1600221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 1601221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_CAMELLIA256, 1602221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1603221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1604656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_HIGH, 1605221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1606656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1607656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1608656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1609221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1610656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 87 */ 1611656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1612656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1613656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA, 1614656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA, 1615221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1616221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDSS, 1617221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_CAMELLIA256, 1618221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1619221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1620656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_HIGH, 1621221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1622656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1623656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1624656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1625221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1626656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 88 */ 1627656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1628656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1629656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, 1630656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, 1631221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1632221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 1633221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_CAMELLIA256, 1634221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1635221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1636656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_HIGH, 1637221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1638656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1639656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1640656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1641221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1642656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 89 */ 1643656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1644656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1645656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA, 1646656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA, 1647221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1648221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aNULL, 1649221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_CAMELLIA256, 1650221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1651221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1652656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_HIGH, 1653221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1654656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1655656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256, 1656656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1657656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* OPENSSL_NO_CAMELLIA */ 1658656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1659221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifndef OPENSSL_NO_PSK 1660221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* Cipher 8A */ 1661221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1662221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1663221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_PSK_WITH_RC4_128_SHA, 1664221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_PSK_WITH_RC4_128_SHA, 1665221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kPSK, 1666221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aPSK, 1667221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 1668221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1669221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1670221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_MEDIUM, 1671221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1672221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1673221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1674221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1675221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1676221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* Cipher 8B */ 1677221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1678221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1679221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA, 1680221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA, 1681221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kPSK, 1682221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aPSK, 1683221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_3DES, 1684221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1685221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1686ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1687221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1688c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 1689221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 168, 1690221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1691221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1692221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* Cipher 8C */ 1693221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1694221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1695221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_PSK_WITH_AES_128_CBC_SHA, 1696221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_PSK_WITH_AES_128_CBC_SHA, 1697221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kPSK, 1698221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aPSK, 1699221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES128, 1700221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1701221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1702ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1703221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1704221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1705221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1706221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1707221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1708221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* Cipher 8D */ 1709221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1710221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1711221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_PSK_WITH_AES_256_CBC_SHA, 1712221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_PSK_WITH_AES_256_CBC_SHA, 1713221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kPSK, 1714221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aPSK, 1715221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES256, 1716221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1717221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1718ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1719221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1720221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 1721221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 1722221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1723221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif /* OPENSSL_NO_PSK */ 1724221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1725656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_SEED 1726656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* SEED ciphersuites from RFC4162 */ 1727656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1728656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 96 */ 1729656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1730656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1731656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_RSA_WITH_SEED_SHA, 1732656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_RSA_WITH_SEED_SHA, 1733221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 1734221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 1735221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SEED, 1736221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1737221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1738656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 1739221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1740656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1741656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1742656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1743656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1744656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 97 */ 1745656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1746656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, /* not implemented (non-ephemeral DH) */ 1747656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DH_DSS_WITH_SEED_SHA, 1748656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DH_DSS_WITH_SEED_SHA, 1749221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHd, 1750221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 1751221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SEED, 1752221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1753221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1754656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 1755221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1756656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1757656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1758656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1759656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1760656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 98 */ 1761656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1762656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0, /* not implemented (non-ephemeral DH) */ 1763656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DH_RSA_WITH_SEED_SHA, 1764656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DH_RSA_WITH_SEED_SHA, 1765221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kDHr, 1766221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDH, 1767221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SEED, 1768221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1769221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1770656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 1771221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1772656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1773656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1774656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1775656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1776656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 99 */ 1777656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1778656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1779656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DHE_DSS_WITH_SEED_SHA, 1780656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DHE_DSS_WITH_SEED_SHA, 1781221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1782221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aDSS, 1783221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SEED, 1784221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1785221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1786656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 1787221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1788656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1789656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1790656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1791656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1792656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 9A */ 1793656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1794656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1795656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_DHE_RSA_WITH_SEED_SHA, 1796656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_DHE_RSA_WITH_SEED_SHA, 1797221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1798221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 1799221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SEED, 1800221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1801221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1802656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 1803221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1804656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1805656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1806656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1807656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1808656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher 9B */ 1809656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 1810656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1, 1811656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_TXT_ADH_WITH_SEED_SHA, 1812656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TLS1_CK_ADH_WITH_SEED_SHA, 1813221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEDH, 1814221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aNULL, 1815221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SEED, 1816221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 1817221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 1818656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_NOT_EXP|SSL_MEDIUM, 1819221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 1820656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1821656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128, 1822656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }, 1823656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1824656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* OPENSSL_NO_SEED */ 1825656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1826392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* GCM ciphersuites from RFC5288 */ 1827656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1828392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 9C */ 1829221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1830221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1831392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256, 1832392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_RSA_WITH_AES_128_GCM_SHA256, 1833392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kRSA, 1834392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 1835392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128GCM, 1836392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 1837392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 1838392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1839392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 1840221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1841221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1842221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1843656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1844392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 9D */ 1845221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1846221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1847392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384, 1848392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_RSA_WITH_AES_256_GCM_SHA384, 1849392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kRSA, 1850392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 1851392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256GCM, 1852392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 1853392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 1854392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1855392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 1856392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1857392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1858221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1859656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1860392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 9E */ 1861221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1862221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1863392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256, 1864392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256, 1865392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEDH, 1866392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 1867392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128GCM, 1868392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 1869392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 1870392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1871392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 1872221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1873221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 1874221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1875656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1876392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher 9F */ 1877221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1878221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1879392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384, 1880392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384, 1881392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEDH, 1882392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 1883392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256GCM, 1884392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 1885392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 1886392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1887392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 1888221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 1889221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 1890221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1891656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1892392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher A0 */ 1893221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1894221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0, 1895392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256, 1896392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256, 1897392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kDHr, 1898392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDH, 1899392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128GCM, 1900392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 1901392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 1902392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1903392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 1904392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1905392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1906392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1907392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1908392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher A1 */ 1909392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1910221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0, 1911392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384, 1912392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384, 1913392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kDHr, 1914392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDH, 1915392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256GCM, 1916392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 1917392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 1918392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1919392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 1920392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1921392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1922221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 1923656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1924392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher A2 */ 1925221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 1926221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 1927392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256, 1928392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256, 1929392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEDH, 1930392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDSS, 1931392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128GCM, 1932392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 1933392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 1934392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1935392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 1936392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1937392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1938392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1939392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1940392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher A3 */ 1941392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1942392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 1943392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384, 1944392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384, 1945392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEDH, 1946392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDSS, 1947392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256GCM, 1948392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 1949392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 1950392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1951392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 1952392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1953392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1954392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1955392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1956392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher A4 */ 1957392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1958392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, 1959392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256, 1960392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256, 196104ef91b390dfcc6125913e2f2af502d23d7a5112Brian Carlstrom SSL_kDHd, 1962392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDH, 1963392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128GCM, 1964392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 1965392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 1966392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1967392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 1968392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1969392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 1970392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1971392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1972392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher A5 */ 1973392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1974392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, 1975392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384, 1976392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384, 197704ef91b390dfcc6125913e2f2af502d23d7a5112Brian Carlstrom SSL_kDHd, 1978392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDH, 1979392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256GCM, 1980392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 1981392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 1982392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1983392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 1984392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1985392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 1986392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 1987392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1988392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher A6 */ 1989392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 1990392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 1991392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256, 1992392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ADH_WITH_AES_128_GCM_SHA256, 1993392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEDH, 1994392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aNULL, 1995392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128GCM, 1996392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 1997392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 1998392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 1999392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 2000392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2001392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2002392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2003392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2004392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher A7 */ 2005392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2006392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2007392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384, 2008392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ADH_WITH_AES_256_GCM_SHA384, 2009392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEDH, 2010392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aNULL, 2011392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256GCM, 2012392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 2013392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2014392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2015392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 2016392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2017392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2018392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2019392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2020392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifndef OPENSSL_NO_ECDH 2021392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C001 */ 2022392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2023392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2024392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA, 2025392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA, 2026392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kECDHe, 2027392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2028392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_eNULL, 2029392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2030392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2031392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_STRONG_NONE|SSL_FIPS, 2032392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2033392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, 2034392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, 2035392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2036392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2037392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C002 */ 2038392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2039392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2040392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA, 2041392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA, 2042392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kECDHe, 2043392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2044392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_RC4, 2045392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2046392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2047392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_MEDIUM, 2048392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2049392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2050392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2051392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2052392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2053392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C003 */ 2054392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2055392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2056392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA, 2057392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA, 2058392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kECDHe, 2059392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2060392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_3DES, 2061392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2062392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2063392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2064392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2065c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 2066392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 168, 2067392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2068392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2069392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C004 */ 2070392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2071392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2072392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA, 2073392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA, 2074392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kECDHe, 2075392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2076392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 2077392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2078392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2079392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2080392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2081392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2082392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2083392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2084392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2085392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C005 */ 2086392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2087392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2088392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA, 2089392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA, 2090392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kECDHe, 2091392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2092392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 2093392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2094392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2095392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2096392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2097392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2098392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2099392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2100392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2101392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C006 */ 2102392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2103392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2104392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA, 2105392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA, 2106392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEECDH, 2107392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDSA, 2108392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_eNULL, 2109392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2110392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2111392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_STRONG_NONE|SSL_FIPS, 2112392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2113392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, 2114392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, 2115392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2116392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2117392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C007 */ 2118392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2119392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2120392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA, 2121221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA, 2122221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEECDH, 2123221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aECDSA, 2124221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 2125221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 2126221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2127221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_MEDIUM, 2128221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2129221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2130221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2131221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher C008 */ 2134221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2135221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2136221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA, 2137221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA, 2138221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEECDH, 2139221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aECDSA, 2140221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_3DES, 2141221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 2142221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2143392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2144221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2145c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 2146221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 168, 2147221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher C009 */ 2150221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2151221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2152221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, 2153221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, 2154221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEECDH, 2155221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aECDSA, 2156221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES128, 2157221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 2158221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2159392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2160221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2161221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2162221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2163221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher C00A */ 2166221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2167221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2168221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, 2169221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, 2170221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEECDH, 2171221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aECDSA, 2172221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES256, 2173221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 2174221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2175392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2176221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2177221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 2178221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 2179221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher C00B */ 2182221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2183221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2184221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_ECDH_RSA_WITH_NULL_SHA, 2185221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_ECDH_RSA_WITH_NULL_SHA, 2186221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kECDHr, 2187221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aECDH, 2188221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_eNULL, 2189221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 2190221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2191392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_STRONG_NONE|SSL_FIPS, 2192221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2193221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0, 2194221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0, 2195221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher C00C */ 2198221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2199221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2200221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA, 2201221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA, 2202221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kECDHr, 2203221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aECDH, 2204221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_RC4, 2205221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 2206221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2207221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_MEDIUM, 2208221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2209221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2210221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2211221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher C00D */ 2214221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2215221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2216221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA, 2217221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA, 2218221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kECDHr, 2219221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aECDH, 2220221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_3DES, 2221221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 2222221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2223392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2224221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2225c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 2226221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 168, 2227221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2229656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Cipher C00E */ 2230221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2231221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2232221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA, 2233221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA, 2234221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kECDHr, 2235221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aECDH, 2236221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES128, 2237221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 2238221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2239392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2240392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2241392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2242392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2243392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2244392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2245392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C00F */ 2246392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2247392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2248392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA, 2249392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA, 2250392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kECDHr, 2251392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2252392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 2253392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2254392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2255392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2256392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2257392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2258392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2259392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2260392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2261392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C010 */ 2262392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2263392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2264392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA, 2265392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_RSA_WITH_NULL_SHA, 2266392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEECDH, 2267392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 2268392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_eNULL, 2269392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2270392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2271392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_STRONG_NONE|SSL_FIPS, 2272392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2273392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, 2274392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, 2275392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2276392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2277392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C011 */ 2278392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2279392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2280392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA, 2281392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA, 2282392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEECDH, 2283392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 2284392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_RC4, 2285392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2286392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2287392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_MEDIUM, 2288392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2289392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2290392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2291392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2292392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2293392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C012 */ 2294392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2295392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2296392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA, 2297392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA, 2298392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEECDH, 2299392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 2300392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_3DES, 2301392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2302392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2303392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2304392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2305c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 2306392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 168, 2307392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2308392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2309392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C013 */ 2310392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2311392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2312392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA, 2313392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA, 2314392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEECDH, 2315392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 2316392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 2317392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2318392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2319392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2320392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2321392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2322392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2323392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2324392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2325392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C014 */ 2326392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2327392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2328392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA, 2329392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA, 2330392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEECDH, 2331392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 2332392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 2333392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2334392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2335392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2336392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2337392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2338392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2339392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2340392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2341392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C015 */ 2342392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2343392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2344392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_anon_WITH_NULL_SHA, 2345392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_anon_WITH_NULL_SHA, 2346392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEECDH, 2347392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aNULL, 2348392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_eNULL, 2349392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2350392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2351392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_STRONG_NONE|SSL_FIPS, 2352392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2353392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, 2354392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 0, 2355392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2356392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2357392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C016 */ 2358392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2359392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2360392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA, 2361392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_anon_WITH_RC4_128_SHA, 2362392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEECDH, 2363392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aNULL, 2364392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_RC4, 2365392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2366392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2367392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_MEDIUM, 2368392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2369392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2370392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2371392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2372392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2373392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C017 */ 2374392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2375392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2376392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA, 2377392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA, 2378392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEECDH, 2379392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aNULL, 2380392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_3DES, 2381392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2382392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2383392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2384392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2385c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 2386392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 168, 2387392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2388392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2389392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C018 */ 2390392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2391392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2392392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA, 2393392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA, 2394392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEECDH, 2395392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aNULL, 2396392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 2397392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2398392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2399392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2400392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2401392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2402392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2403392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2404392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2405392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C019 */ 2406392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2407392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2408392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA, 2409392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA, 2410392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEECDH, 2411392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aNULL, 2412392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 2413392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2414392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2415392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2416392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2417392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2418392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2419392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2420392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif /* OPENSSL_NO_ECDH */ 2421392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2422392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifndef OPENSSL_NO_SRP 2423392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C01A */ 2424392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2425392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2426392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA, 2427392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA, 2428392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kSRP, 2429c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root SSL_aSRP, 2430392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_3DES, 2431392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2432392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2433392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 2434392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2435c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 2436392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 168, 2437392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2438392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2439392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C01B */ 2440392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2441392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2442392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA, 2443392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA, 2444392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kSRP, 2445392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 2446392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_3DES, 2447392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2448392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2449392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 2450392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2451c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 2452392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 168, 2453392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2454392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2455392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C01C */ 2456392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2457392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2458392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA, 2459392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA, 2460392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kSRP, 2461392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDSS, 2462392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_3DES, 2463392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2464392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2465392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 2466392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2467c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 112, 2468392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 168, 2469392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2470392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2471392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C01D */ 2472392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2473392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2474392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA, 2475392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA, 2476392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kSRP, 2477c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root SSL_aSRP, 2478392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 2479392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2480392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2481392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 2482392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2483392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2484392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2485392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2486392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2487392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C01E */ 2488392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2489392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2490392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA, 2491392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA, 2492392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kSRP, 2493392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 2494392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 2495392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2496392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2497392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 2498392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2499392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2500392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2501392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2502392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2503392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C01F */ 2504392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2505392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2506392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA, 2507392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA, 2508392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kSRP, 2509392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDSS, 2510392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 2511392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA1, 2512392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1, 2513221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 2514221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2515221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2516221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2517221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2518656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2519392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C020 */ 2520221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2521221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2522392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA, 2523392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA, 2524392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kSRP, 2525c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root SSL_aSRP, 2526221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES256, 2527221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 2528221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2529221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 2530221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2531221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 2532221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 2533221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2534656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2535392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C021 */ 2536221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2537221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2538392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA, 2539392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA, 2540392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kSRP, 2541221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 2542392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 2543221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 2544221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2545392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 2546221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2547392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2548392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2549221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2550656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2551392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C022 */ 2552221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2553221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2554392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA, 2555392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA, 2556392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kSRP, 2557392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aDSS, 2558392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 2559221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_SHA1, 2560221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2561392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 2562221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2563392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2564392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2565392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2566392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif /* OPENSSL_NO_SRP */ 2567392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifndef OPENSSL_NO_ECDH 2568392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2569392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* HMAC based TLS v1.2 ciphersuites from RFC5289 */ 2570392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2571392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C023 */ 2572392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2573392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2574392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256, 2575392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256, 2576392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kEECDH, 2577392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDSA, 2578392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 2579392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 2580392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2581392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2582392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 2583221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2584221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2585221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2586656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2587392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C024 */ 2588221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2589221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2590392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384, 2591392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384, 2592221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEECDH, 2593392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDSA, 2594392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 2595392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA384, 2596392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2597392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2598392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 2599392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2600392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2601221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2602656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2603392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C025 */ 2604221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2605221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2606392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256, 2607392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256, 2608392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kECDHe, 2609392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2610392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 2611392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 2612392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2613392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2614392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 2615392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2616392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2617392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2618392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2619392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C026 */ 2620392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2621392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2622392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384, 2623392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384, 2624392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kECDHe, 2625392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2626392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 2627392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA384, 2628392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2629392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2630392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 2631392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2632392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2633392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2634392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2635392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C027 */ 2636392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2637392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2638392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256, 2639392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256, 2640221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEECDH, 2641221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 2642221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES128, 2643392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 2644392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2645392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2646392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 2647221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2648221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2649221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2650656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2651392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C028 */ 2652221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2653221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2654392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384, 2655392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384, 2656221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEECDH, 2657221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 2658221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_AES256, 2659392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA384, 2660392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2661392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2662392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 2663221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 2664221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 2665221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2666656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2667392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C029 */ 2668221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2669221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2670392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256, 2671392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256, 267204ef91b390dfcc6125913e2f2af502d23d7a5112Brian Carlstrom SSL_kECDHr, 2673392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2674392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128, 2675392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA256, 2676392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2677392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2678392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 2679392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2680392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2681221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2682656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2683392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C02A */ 2684221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2685221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2686392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384, 2687392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384, 268804ef91b390dfcc6125913e2f2af502d23d7a5112Brian Carlstrom SSL_kECDHr, 2689392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2690392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256, 2691392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SHA384, 2692392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2693392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2694392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 2695392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2696392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2697392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2698392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2699392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* GCM based TLS v1.2 ciphersuites from RFC5289 */ 2700392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2701392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C02B */ 2702392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2703392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2704392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, 2705392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, 2706221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEECDH, 2707392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDSA, 2708392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128GCM, 2709392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 2710392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2711392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2712392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 2713221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2714221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2715221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2716656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2717392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C02C */ 2718221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2719221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2720392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, 2721392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, 2722221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEECDH, 2723392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDSA, 2724392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256GCM, 2725392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 2726392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2727392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2728392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 2729392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2730392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2731221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2732656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2733392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C02D */ 2734221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2735221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2736392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, 2737392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, 2738392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kECDHe, 2739392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2740392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128GCM, 2741392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 2742392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2743392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2744392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 2745392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2746392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2747392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2748392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2749392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C02E */ 2750392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2751392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2752392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, 2753392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, 2754392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_kECDHe, 2755392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2756392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256GCM, 2757392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 2758392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2759392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2760392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 2761392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2762392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2763392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2764392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2765392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C02F */ 2766392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2767392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2768392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 2769392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 2770221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEECDH, 2771392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 2772392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128GCM, 2773392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 2774392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2775392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2776392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 2777221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2778221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 128, 2779221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2780656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2781392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C030 */ 2782221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2783221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2784392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384, 2785392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384, 2786221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kEECDH, 2787392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aRSA, 2788392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256GCM, 2789392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 2790392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2791392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2792392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 2793221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 2794221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 2795221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2796392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2797392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C031 */ 2798392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2799392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2800392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256, 2801392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256, 280204ef91b390dfcc6125913e2f2af502d23d7a5112Brian Carlstrom SSL_kECDHr, 2803392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2804392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES128GCM, 2805392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 2806392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2807392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2808392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, 2809392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2810392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 128, 2811392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2812392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2813392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Cipher C032 */ 2814392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 2815392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1, 2816392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384, 2817392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384, 281804ef91b390dfcc6125913e2f2af502d23d7a5112Brian Carlstrom SSL_kECDHr, 2819392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_aECDH, 2820392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AES256GCM, 2821392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_AEAD, 2822392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_TLSV1_2, 2823392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 2824392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_HANDSHAKE_MAC_SHA384|TLS1_PRF_SHA384, 2825392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2826392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 256, 2827392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom }, 2828392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2829de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin#ifndef OPENSSL_NO_PSK 2830de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin /* ECDH PSK ciphersuites from RFC 5489 */ 283137da3e839dd053106842299f7192ce9c88207094Alex Klyubin /* Cipher C035 */ 2832de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin { 2833de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin 1, 283437da3e839dd053106842299f7192ce9c88207094Alex Klyubin TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA, 283537da3e839dd053106842299f7192ce9c88207094Alex Klyubin TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA, 2836de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin SSL_kEECDH, 2837de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin SSL_aPSK, 2838de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin SSL_AES128, 283937da3e839dd053106842299f7192ce9c88207094Alex Klyubin SSL_SHA1, 2840de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin SSL_TLSV1, 284137da3e839dd053106842299f7192ce9c88207094Alex Klyubin SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 284237da3e839dd053106842299f7192ce9c88207094Alex Klyubin SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2843de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin 128, 2844de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin 128, 2845de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin }, 2846de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin 284737da3e839dd053106842299f7192ce9c88207094Alex Klyubin /* Cipher C036 */ 2848de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin { 2849de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin 1, 285037da3e839dd053106842299f7192ce9c88207094Alex Klyubin TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA, 285137da3e839dd053106842299f7192ce9c88207094Alex Klyubin TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA, 2852de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin SSL_kEECDH, 2853de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin SSL_aPSK, 2854de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin SSL_AES256, 285537da3e839dd053106842299f7192ce9c88207094Alex Klyubin SSL_SHA1, 2856de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin SSL_TLSV1, 285737da3e839dd053106842299f7192ce9c88207094Alex Klyubin SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, 285837da3e839dd053106842299f7192ce9c88207094Alex Klyubin SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2859de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin 256, 2860de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin 256, 2861de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin }, 2862de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin#endif /* OPENSSL_NO_PSK */ 2863de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin 2864392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif /* OPENSSL_NO_ECDH */ 2865392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 2866656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2867221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifdef TEMP_GOST_TLS 2868221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom/* Cipher FF00 */ 2869221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2870221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2871221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom "GOST-MD5", 2872221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0x0300ff00, 2873221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 2874221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 2875221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_eGOST2814789CNT, 2876221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_MD5, 2877221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2878221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 2879221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2880221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 2881221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 2882221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2883221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2884221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2885221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom "GOST-GOST94", 2886221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0x0300ff01, 2887221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 2888221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 2889221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_eGOST2814789CNT, 2890221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_GOST94, 2891221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2892221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 2893221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2894221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 2895221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256 2896221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2897221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2898221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2899221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom "GOST-GOST89MAC", 2900221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0x0300ff02, 2901221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 2902221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 2903221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_eGOST2814789CNT, 2904221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_GOST89MAC, 2905221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2906221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 2907221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, 2908221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 2909221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256 2910221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2911221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 2912221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 1, 2913221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom "GOST-GOST89STREAM", 2914221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 0x0300ff03, 2915221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_kRSA, 2916221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_aRSA, 2917221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_eGOST2814789CNT, 2918221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_GOST89MAC, 2919221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_TLSV1, 2920221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_NOT_EXP|SSL_HIGH, 2921221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF|TLS1_STREAM_MAC, 2922221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256, 2923221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 256 2924221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom }, 2925221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif 2926656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2927656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* end of list */ 2928656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }; 2929656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2930656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSSL3_ENC_METHOD SSLv3_enc_data={ 2931656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ssl3_enc, 2932221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom n_ssl3_mac, 2933656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ssl3_setup_key_block, 2934656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ssl3_generate_master_secret, 2935656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ssl3_change_cipher_state, 2936656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ssl3_final_finish_mac, 2937656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project MD5_DIGEST_LENGTH+SHA_DIGEST_LENGTH, 2938656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ssl3_cert_verify_mac, 2939656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_MD_CLIENT_FINISHED_CONST,4, 2940656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_MD_SERVER_FINISHED_CONST,4, 2941656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ssl3_alert_code, 2942392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom (int (*)(SSL *, unsigned char *, size_t, const char *, 2943392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom size_t, const unsigned char *, size_t, 2944392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom int use_context))ssl_undefined_function, 2945656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }; 2946656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2947656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectlong ssl3_default_timeout(void) 2948656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 2949656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* 2 hours, the 24 hours mentioned in the SSLv3 spec 2950656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * is way too long for http, the cache would over fill */ 2951656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(60*60*2); 2952656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 2953656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2954656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint ssl3_num_ciphers(void) 2955656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 2956656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(SSL3_NUM_CIPHERS); 2957656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 2958656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2959221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromconst SSL_CIPHER *ssl3_get_cipher(unsigned int u) 2960656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 2961656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (u < SSL3_NUM_CIPHERS) 2962656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(&(ssl3_ciphers[SSL3_NUM_CIPHERS-1-u])); 2963656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 2964656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(NULL); 2965656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 2966656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2967656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint ssl3_pending(const SSL *s) 2968656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 2969656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->rstate == SSL_ST_READ_BODY) 2970656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 0; 2971656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2972656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return (s->s3->rrec.type == SSL3_RT_APPLICATION_DATA) ? s->s3->rrec.length : 0; 2973656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 2974656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2975656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint ssl3_new(SSL *s) 2976656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 2977656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL3_STATE *s3; 2978656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2979656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((s3=OPENSSL_malloc(sizeof *s3)) == NULL) goto err; 2980656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project memset(s3,0,sizeof *s3); 2981221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom memset(s3->rrec.seq_num,0,sizeof(s3->rrec.seq_num)); 2982221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom memset(s3->wrec.seq_num,0,sizeof(s3->wrec.seq_num)); 2983656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2984656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3=s3; 2985656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 2986392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifndef OPENSSL_NO_SRP 2987392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SRP_CTX_init(s); 2988392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 298945bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley#if !defined(OPENSSL_NO_TLSEXT) 299045bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley s->tlsext_channel_id_enabled = s->ctx->tlsext_channel_id_enabled; 299145bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley if (s->ctx->tlsext_channel_id_private) 299245bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley s->tlsext_channel_id_private = EVP_PKEY_dup(s->ctx->tlsext_channel_id_private); 299345bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley#endif 2994656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->method->ssl_clear(s); 2995656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(1); 2996656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecterr: 2997656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 2998656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 2999656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3000656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid ssl3_free(SSL *s) 3001656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3002656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if(s == NULL) 3003656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return; 3004656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3005221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifdef TLSEXT_TYPE_opaque_prf_input 3006221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->s3->client_opaque_prf_input != NULL) 3007221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom OPENSSL_free(s->s3->client_opaque_prf_input); 3008221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->s3->server_opaque_prf_input != NULL) 3009221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom OPENSSL_free(s->s3->server_opaque_prf_input); 3010221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif 3011221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 3012656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ssl3_cleanup_key_block(s); 3013656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->rbuf.buf != NULL) 3014221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ssl3_release_read_buffer(s); 3015656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->wbuf.buf != NULL) 3016221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ssl3_release_write_buffer(s); 3017656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->rrec.comp != NULL) 3018656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_free(s->s3->rrec.comp); 3019656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DH 3020656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->tmp.dh != NULL) 3021656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DH_free(s->s3->tmp.dh); 3022656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3023656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_ECDH 3024656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->tmp.ecdh != NULL) 3025656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EC_KEY_free(s->s3->tmp.ecdh); 3026656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3027656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3028656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->tmp.ca_names != NULL) 3029656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sk_X509_NAME_pop_free(s->s3->tmp.ca_names,X509_NAME_free); 3030221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->s3->handshake_buffer) { 3031221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom BIO_free(s->s3->handshake_buffer); 3032221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 3033221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->s3->handshake_dgst) ssl3_free_digest_list(s); 3034ee53ab1212ec75db6e1704a6909c45c93dd411c3Kenny Root#ifndef OPENSSL_NO_TLSEXT 3035ee53ab1212ec75db6e1704a6909c45c93dd411c3Kenny Root if (s->s3->alpn_selected) 3036ee53ab1212ec75db6e1704a6909c45c93dd411c3Kenny Root OPENSSL_free(s->s3->alpn_selected); 3037ee53ab1212ec75db6e1704a6909c45c93dd411c3Kenny Root#endif 3038ee53ab1212ec75db6e1704a6909c45c93dd411c3Kenny Root 3039392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifndef OPENSSL_NO_SRP 3040392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSL_SRP_CTX_free(s); 3041392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 3042656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_cleanse(s->s3,sizeof *s->s3); 3043656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_free(s->s3); 3044656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3=NULL; 3045656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3046656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3047656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid ssl3_clear(SSL *s) 3048656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3049656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *rp,*wp; 3050656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project size_t rlen, wlen; 30517b476c43f6a45574eb34697244b592e7b09f05a3Brian Carlstrom int init_extra; 3052656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3053221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifdef TLSEXT_TYPE_opaque_prf_input 3054221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->s3->client_opaque_prf_input != NULL) 3055221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom OPENSSL_free(s->s3->client_opaque_prf_input); 3056221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom s->s3->client_opaque_prf_input = NULL; 3057221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->s3->server_opaque_prf_input != NULL) 3058221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom OPENSSL_free(s->s3->server_opaque_prf_input); 3059221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom s->s3->server_opaque_prf_input = NULL; 3060221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif 3061221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 3062656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ssl3_cleanup_key_block(s); 3063656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->tmp.ca_names != NULL) 3064656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sk_X509_NAME_pop_free(s->s3->tmp.ca_names,X509_NAME_free); 3065656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3066656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->rrec.comp != NULL) 3067656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3068656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_free(s->s3->rrec.comp); 3069656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->rrec.comp=NULL; 3070656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3071656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DH 3072656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->tmp.dh != NULL) 3073ee7afb3c942c4eefef6ed06201eafaf8ec58e2e3Brian Carlstrom { 3074656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DH_free(s->s3->tmp.dh); 3075ee7afb3c942c4eefef6ed06201eafaf8ec58e2e3Brian Carlstrom s->s3->tmp.dh = NULL; 3076ee7afb3c942c4eefef6ed06201eafaf8ec58e2e3Brian Carlstrom } 3077656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3078656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_ECDH 3079656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->tmp.ecdh != NULL) 3080ee7afb3c942c4eefef6ed06201eafaf8ec58e2e3Brian Carlstrom { 3081656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EC_KEY_free(s->s3->tmp.ecdh); 3082ee7afb3c942c4eefef6ed06201eafaf8ec58e2e3Brian Carlstrom s->s3->tmp.ecdh = NULL; 3083ee7afb3c942c4eefef6ed06201eafaf8ec58e2e3Brian Carlstrom } 3084656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3085ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root#ifndef OPENSSL_NO_TLSEXT 3086ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root#ifndef OPENSSL_NO_EC 3087ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root s->s3->is_probably_safari = 0; 3088ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root#endif /* !OPENSSL_NO_EC */ 3089ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root#endif /* !OPENSSL_NO_TLSEXT */ 3090656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3091656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rp = s->s3->rbuf.buf; 3092656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project wp = s->s3->wbuf.buf; 3093656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rlen = s->s3->rbuf.len; 3094656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project wlen = s->s3->wbuf.len; 30957b476c43f6a45574eb34697244b592e7b09f05a3Brian Carlstrom init_extra = s->s3->init_extra; 3096221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->s3->handshake_buffer) { 3097221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom BIO_free(s->s3->handshake_buffer); 3098221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom s->s3->handshake_buffer = NULL; 3099221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 3100221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->s3->handshake_dgst) { 3101221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ssl3_free_digest_list(s); 3102221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 3103ee53ab1212ec75db6e1704a6909c45c93dd411c3Kenny Root 3104ee53ab1212ec75db6e1704a6909c45c93dd411c3Kenny Root#if !defined(OPENSSL_NO_TLSEXT) 3105ee53ab1212ec75db6e1704a6909c45c93dd411c3Kenny Root if (s->s3->alpn_selected) 3106ee53ab1212ec75db6e1704a6909c45c93dd411c3Kenny Root { 3107ee53ab1212ec75db6e1704a6909c45c93dd411c3Kenny Root free(s->s3->alpn_selected); 3108ee53ab1212ec75db6e1704a6909c45c93dd411c3Kenny Root s->s3->alpn_selected = NULL; 3109ee53ab1212ec75db6e1704a6909c45c93dd411c3Kenny Root } 3110ee53ab1212ec75db6e1704a6909c45c93dd411c3Kenny Root#endif 3111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project memset(s->s3,0,sizeof *s->s3); 3112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->rbuf.buf = rp; 3113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->wbuf.buf = wp; 3114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->rbuf.len = rlen; 3115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->wbuf.len = wlen; 31167b476c43f6a45574eb34697244b592e7b09f05a3Brian Carlstrom s->s3->init_extra = init_extra; 3117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ssl_free_wbio_buffer(s); 3119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->packet_length=0; 3121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->renegotiate=0; 3122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->total_renegotiations=0; 3123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->num_renegotiations=0; 3124656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->in_read_app_data=0; 3125656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->version=SSL3_VERSION; 3126bf9ac266e34f910ace31880ea92b8deaf6212aa6Kristian Monsen 3127bf9ac266e34f910ace31880ea92b8deaf6212aa6Kristian Monsen#if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG) 3128bf9ac266e34f910ace31880ea92b8deaf6212aa6Kristian Monsen if (s->next_proto_negotiated) 3129bf9ac266e34f910ace31880ea92b8deaf6212aa6Kristian Monsen { 3130bf9ac266e34f910ace31880ea92b8deaf6212aa6Kristian Monsen OPENSSL_free(s->next_proto_negotiated); 3131bf9ac266e34f910ace31880ea92b8deaf6212aa6Kristian Monsen s->next_proto_negotiated = NULL; 3132bf9ac266e34f910ace31880ea92b8deaf6212aa6Kristian Monsen s->next_proto_negotiated_len = 0; 3133bf9ac266e34f910ace31880ea92b8deaf6212aa6Kristian Monsen } 3134bf9ac266e34f910ace31880ea92b8deaf6212aa6Kristian Monsen#endif 313545bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley 313645bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley#if !defined(OPENSSL_NO_TLSEXT) 313745bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley s->s3->tlsext_channel_id_valid = 0; 313845bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley#endif 3139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3141392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifndef OPENSSL_NO_SRP 3142392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstromstatic char * MS_CALLBACK srp_password_from_info_cb(SSL *s, void *arg) 3143392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 3144392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom return BUF_strdup(s->srp_ctx.info) ; 3145392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom } 3146392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 3147392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 3148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectlong ssl3_ctrl(SSL *s, int cmd, long larg, void *parg) 3149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int ret=0; 3151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if !defined(OPENSSL_NO_DSA) || !defined(OPENSSL_NO_RSA) 3153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ( 3154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_RSA 3155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cmd == SSL_CTRL_SET_TMP_RSA || 3156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cmd == SSL_CTRL_SET_TMP_RSA_CB || 3157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DSA 3159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cmd == SSL_CTRL_SET_TMP_DH || 3160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cmd == SSL_CTRL_SET_TMP_DH_CB || 3161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0) 3163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!ssl_cert_inst(&s->cert)) 3165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL, ERR_R_MALLOC_FAILURE); 3167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 3168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project switch (cmd) 3173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_GET_SESSION_REUSED: 3175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=s->hit; 3176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_GET_CLIENT_CERT_REQUEST: 3178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_GET_NUM_RENEGOTIATIONS: 3180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=s->s3->num_renegotiations; 3181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS: 3183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=s->s3->num_renegotiations; 3184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->num_renegotiations=0; 3185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_GET_TOTAL_RENEGOTIATIONS: 3187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=s->s3->total_renegotiations; 3188656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_GET_FLAGS: 3190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=(int)(s->s3->flags); 3191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_RSA 3193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_NEED_TMP_RSA: 3194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((s->cert != NULL) && (s->cert->rsa_tmp == NULL) && 3195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ((s->cert->pkeys[SSL_PKEY_RSA_ENC].privatekey == NULL) || 3196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (EVP_PKEY_size(s->cert->pkeys[SSL_PKEY_RSA_ENC].privatekey) > (512/8)))) 3197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret = 1; 3198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_RSA: 3200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project RSA *rsa = (RSA *)parg; 3202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (rsa == NULL) 3203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL, ERR_R_PASSED_NULL_PARAMETER); 3205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 3206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((rsa = RSAPrivateKey_dup(rsa)) == NULL) 3208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL, ERR_R_RSA_LIB); 3210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 3211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->cert->rsa_tmp != NULL) 3213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project RSA_free(s->cert->rsa_tmp); 3214656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->cert->rsa_tmp = rsa; 3215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret = 1; 3216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_RSA_CB: 3219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); 3221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 3222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DH 3226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_DH: 3227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DH *dh = (DH *)parg; 3229656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (dh == NULL) 3230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL, ERR_R_PASSED_NULL_PARAMETER); 3232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 3233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((dh = DHparams_dup(dh)) == NULL) 3235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL, ERR_R_DH_LIB); 3237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 3238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!(s->options & SSL_OP_SINGLE_DH_USE)) 3240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!DH_generate_key(dh)) 3242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DH_free(dh); 3244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL, ERR_R_DH_LIB); 3245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 3246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->cert->dh_tmp != NULL) 3249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DH_free(s->cert->dh_tmp); 3250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->cert->dh_tmp = dh; 3251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret = 1; 3252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_DH_CB: 3255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); 3257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 3258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_ECDH 3262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_ECDH: 3263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EC_KEY *ecdh = NULL; 3265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (parg == NULL) 3267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL, ERR_R_PASSED_NULL_PARAMETER); 3269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 3270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!EC_KEY_up_ref((EC_KEY *)parg)) 3272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL,ERR_R_ECDH_LIB); 3274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 3275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ecdh = (EC_KEY *)parg; 3277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!(s->options & SSL_OP_SINGLE_ECDH_USE)) 3278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!EC_KEY_generate_key(ecdh)) 3280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EC_KEY_free(ecdh); 3282656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL,ERR_R_ECDH_LIB); 3283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 3284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->cert->ecdh_tmp != NULL) 3287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EC_KEY_free(s->cert->ecdh_tmp); 3288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->cert->ecdh_tmp = ecdh; 3289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret = 1; 3290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_ECDH_CB: 3293656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); 3295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 3296656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* !OPENSSL_NO_ECDH */ 3299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_TLSEXT 3300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TLSEXT_HOSTNAME: 3301656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (larg == TLSEXT_NAMETYPE_host_name) 3302656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3303656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->tlsext_hostname != NULL) 3304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_free(s->tlsext_hostname); 3305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->tlsext_hostname = NULL; 3306656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret = 1; 3308656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (parg == NULL) 3309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (strlen((char *)parg) > TLSEXT_MAXLEN_host_name) 3311656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL, SSL_R_SSL3_EXT_INVALID_SERVERNAME); 3313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 0; 3314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((s->tlsext_hostname = BUF_strdup((char *)parg)) == NULL) 3316656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3317656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL, ERR_R_INTERNAL_ERROR); 3318656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 0; 3319656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3321656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 3322656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTRL, SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE); 3324656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 0; 3325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3326656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3327656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TLSEXT_DEBUG_ARG: 3328656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->tlsext_debug_arg=parg; 3329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret = 1; 3330656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3331221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 3332221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifdef TLSEXT_TYPE_opaque_prf_input 3333221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT: 3334221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (larg > 12288) /* actual internal limit is 2^16 for the complete hello message 3335221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * (including the cert chain and everything) */ 3336221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 3337221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSLerr(SSL_F_SSL3_CTRL, SSL_R_OPAQUE_PRF_INPUT_TOO_LONG); 3338221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom break; 3339221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 3340221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->tlsext_opaque_prf_input != NULL) 3341221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom OPENSSL_free(s->tlsext_opaque_prf_input); 3342221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ((size_t)larg == 0) 3343221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom s->tlsext_opaque_prf_input = OPENSSL_malloc(1); /* dummy byte just to get non-NULL */ 3344221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom else 3345221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom s->tlsext_opaque_prf_input = BUF_memdup(parg, (size_t)larg); 3346221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->tlsext_opaque_prf_input != NULL) 3347221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 3348221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom s->tlsext_opaque_prf_input_len = (size_t)larg; 3349221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ret = 1; 3350221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 3351221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom else 3352221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom s->tlsext_opaque_prf_input_len = 0; 3353221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom break; 3354221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif 3355221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 3356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE: 3357656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->tlsext_status_type=larg; 3358656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret = 1; 3359656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3360656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3361656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS: 3362656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *(STACK_OF(X509_EXTENSION) **)parg = s->tlsext_ocsp_exts; 3363656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret = 1; 3364656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3365656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3366656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS: 3367656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->tlsext_ocsp_exts = parg; 3368656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret = 1; 3369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3370656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS: 3372656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *(STACK_OF(OCSP_RESPID) **)parg = s->tlsext_ocsp_ids; 3373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret = 1; 3374656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3375656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3376656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS: 3377656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->tlsext_ocsp_ids = parg; 3378656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret = 1; 3379656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3380656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3381656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP: 3382656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *(unsigned char **)parg = s->tlsext_ocsp_resp; 3383656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return s->tlsext_ocsp_resplen; 3384656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3385656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP: 3386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->tlsext_ocsp_resp) 3387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_free(s->tlsext_ocsp_resp); 3388656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->tlsext_ocsp_resp = parg; 3389656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->tlsext_ocsp_resplen = larg; 3390656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret = 1; 3391656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3392656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3393392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifndef OPENSSL_NO_HEARTBEATS 3394392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom case SSL_CTRL_TLS_EXT_SEND_HEARTBEAT: 3395392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom if (SSL_version(s) == DTLS1_VERSION || SSL_version(s) == DTLS1_BAD_VER) 3396392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ret = dtls1_heartbeat(s); 3397392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom else 3398392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ret = tls1_heartbeat(s); 3399392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom break; 3400392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 3401392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom case SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING: 3402392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ret = s->tlsext_hb_pending; 3403392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom break; 3404392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 3405392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom case SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS: 3406392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom if (larg) 3407392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom s->tlsext_heartbeat |= SSL_TLSEXT_HB_DONT_RECV_REQUESTS; 3408392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom else 3409392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom s->tlsext_heartbeat &= ~SSL_TLSEXT_HB_DONT_RECV_REQUESTS; 3410392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ret = 1; 3411392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom break; 3412392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 341345bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley case SSL_CTRL_CHANNEL_ID: 341445bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley s->tlsext_channel_id_enabled = 1; 341545bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley ret = 1; 341645bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley break; 341745bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley 341845bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley case SSL_CTRL_SET_CHANNEL_ID: 341945bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley if (s->server) 342045bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley break; 342145bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley s->tlsext_channel_id_enabled = 1; 342245bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley if (EVP_PKEY_bits(parg) != 256) 342345bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley { 342445bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley SSLerr(SSL_F_SSL3_CTRL,SSL_R_CHANNEL_ID_NOT_P256); 342545bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley break; 342645bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley } 342745bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley if (s->tlsext_channel_id_private) 342845bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley EVP_PKEY_free(s->tlsext_channel_id_private); 342977c6be7176c48d2ce4d5979a84876d34204eedafKenny Root s->tlsext_channel_id_private = EVP_PKEY_dup((EVP_PKEY*) parg); 343045bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley ret = 1; 343145bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley break; 343245bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley 343345bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley case SSL_CTRL_GET_CHANNEL_ID: 343445bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley if (!s->server) 343545bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley break; 343645bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley if (!s->s3->tlsext_channel_id_valid) 343745bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley break; 343845bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley memcpy(parg, s->s3->tlsext_channel_id, larg < 64 ? larg : 64); 343945bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley return 64; 3440392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 3441656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* !OPENSSL_NO_TLSEXT */ 34429a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller 34439a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller case SSL_CTRL_CHECK_PROTO_VERSION: 34449a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller /* For library-internal use; checks that the current protocol 34459a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller * is the highest enabled version (according to s->ctx->method, 34469a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller * as version negotiation may have changed s->method). */ 34479a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller if (s->version == s->ctx->method->version) 34489a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller return 1; 34499a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller /* Apparently we're using a version-flexible SSL_METHOD 34509a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller * (not at its highest protocol version). */ 34519a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller if (s->ctx->method->version == SSLv23_method()->version) 34529a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller { 34539a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller#if TLS_MAX_VERSION != TLS1_2_VERSION 34549a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller# error Code needs update for SSLv23_method() support beyond TLS1_2_VERSION. 34559a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller#endif 34569a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller if (!(s->options & SSL_OP_NO_TLSv1_2)) 34579a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller return s->version == TLS1_2_VERSION; 34589a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller if (!(s->options & SSL_OP_NO_TLSv1_1)) 34599a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller return s->version == TLS1_1_VERSION; 34609a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller if (!(s->options & SSL_OP_NO_TLSv1)) 34619a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller return s->version == TLS1_VERSION; 34629a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller if (!(s->options & SSL_OP_NO_SSLv3)) 34639a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller return s->version == SSL3_VERSION; 34649a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller if (!(s->options & SSL_OP_NO_SSLv2)) 34659a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller return s->version == SSL2_VERSION; 34669a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller } 34679a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller return 0; /* Unexpected state; fail closed. */ 34689a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller 3469656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project default: 3470656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3471656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3472656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 3473656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3474656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3475656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectlong ssl3_callback_ctrl(SSL *s, int cmd, void (*fp)(void)) 3476656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3477656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int ret=0; 3478656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3479656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if !defined(OPENSSL_NO_DSA) || !defined(OPENSSL_NO_RSA) 3480656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ( 3481656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_RSA 3482656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cmd == SSL_CTRL_SET_TMP_RSA_CB || 3483656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3484656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DSA 3485656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cmd == SSL_CTRL_SET_TMP_DH_CB || 3486656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3487656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 0) 3488656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3489656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!ssl_cert_inst(&s->cert)) 3490656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3491656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CALLBACK_CTRL, ERR_R_MALLOC_FAILURE); 3492656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 3493656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3494656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3495656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3496656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3497656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project switch (cmd) 3498656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3499656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_RSA 3500656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_RSA_CB: 3501656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3502656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->cert->rsa_tmp_cb = (RSA *(*)(SSL *, int, int))fp; 3503656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3504656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3505656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3506656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DH 3507656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_DH_CB: 3508656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3509656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->cert->dh_tmp_cb = (DH *(*)(SSL *, int, int))fp; 3510656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3511656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3512656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3513656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_ECDH 3514656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_ECDH_CB: 3515656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3516656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->cert->ecdh_tmp_cb = (EC_KEY *(*)(SSL *, int, int))fp; 3517656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3518656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3519656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3520656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_TLSEXT 3521656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TLSEXT_DEBUG_CB: 3522656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->tlsext_debug_cb=(void (*)(SSL *,int ,int, 3523656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *, int, void *))fp; 3524656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3525656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3526656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project default: 3527656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3528656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3529656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 3530656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3531656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3532656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectlong ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) 3533656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3534656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CERT *cert; 3535656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3536656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cert=ctx->cert; 3537656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3538656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project switch (cmd) 3539656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3540656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_RSA 3541656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_NEED_TMP_RSA: 3542656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ( (cert->rsa_tmp == NULL) && 3543656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ((cert->pkeys[SSL_PKEY_RSA_ENC].privatekey == NULL) || 3544656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (EVP_PKEY_size(cert->pkeys[SSL_PKEY_RSA_ENC].privatekey) > (512/8))) 3545656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ) 3546656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(1); 3547656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 3548656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 3549656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* break; */ 3550656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_RSA: 3551656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3552656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project RSA *rsa; 3553656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int i; 3554656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3555656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rsa=(RSA *)parg; 3556656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project i=1; 3557656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (rsa == NULL) 3558656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project i=0; 3559656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 3560656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3561656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((rsa=RSAPrivateKey_dup(rsa)) == NULL) 3562656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project i=0; 3563656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3564656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!i) 3565656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3566656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTX_CTRL,ERR_R_RSA_LIB); 3567656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 3568656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3569656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 3570656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3571656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (cert->rsa_tmp != NULL) 3572656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project RSA_free(cert->rsa_tmp); 3573656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cert->rsa_tmp=rsa; 3574656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(1); 3575656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3576656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3577656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* break; */ 3578656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_RSA_CB: 3579656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3580656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTX_CTRL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); 3581656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 3582656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3583656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3584656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3585656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DH 3586656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_DH: 3587656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3588656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DH *new=NULL,*dh; 3589656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3590656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project dh=(DH *)parg; 3591656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((new=DHparams_dup(dh)) == NULL) 3592656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3593656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTX_CTRL,ERR_R_DH_LIB); 3594656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 0; 3595656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3596656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!(ctx->options & SSL_OP_SINGLE_DH_USE)) 3597656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3598656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!DH_generate_key(new)) 3599656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3600656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTX_CTRL,ERR_R_DH_LIB); 3601656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DH_free(new); 3602656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 0; 3603656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3604656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3605656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (cert->dh_tmp != NULL) 3606656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DH_free(cert->dh_tmp); 3607656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cert->dh_tmp=new; 3608656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 1; 3609656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3610656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /*break; */ 3611656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_DH_CB: 3612656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3613656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTX_CTRL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); 3614656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 3615656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3616656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3617656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3618656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_ECDH 3619656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_ECDH: 3620656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3621656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EC_KEY *ecdh = NULL; 3622656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3623656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (parg == NULL) 3624656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3625656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTX_CTRL,ERR_R_ECDH_LIB); 3626656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 0; 3627656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3628656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ecdh = EC_KEY_dup((EC_KEY *)parg); 3629656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (ecdh == NULL) 3630656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3631656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTX_CTRL,ERR_R_EC_LIB); 3632656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 0; 3633656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3634656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!(ctx->options & SSL_OP_SINGLE_ECDH_USE)) 3635656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3636656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!EC_KEY_generate_key(ecdh)) 3637656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3638656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EC_KEY_free(ecdh); 3639656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTX_CTRL,ERR_R_ECDH_LIB); 3640656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 0; 3641656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3642656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3643656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3644656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (cert->ecdh_tmp != NULL) 3645656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3646656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EC_KEY_free(cert->ecdh_tmp); 3647656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3648656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cert->ecdh_tmp = ecdh; 3649656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 1; 3650656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3651656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* break; */ 3652656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_ECDH_CB: 3653656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3654656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTX_CTRL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); 3655656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 3656656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3657656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3658656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* !OPENSSL_NO_ECDH */ 3659656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_TLSEXT 3660656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG: 3661656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ctx->tlsext_servername_arg=parg; 3662656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3663656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TLSEXT_TICKET_KEYS: 3664656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_GET_TLSEXT_TICKET_KEYS: 3665656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3666656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *keys = parg; 3667656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!keys) 3668656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 48; 3669656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (larg != 48) 3670656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3671656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL3_CTX_CTRL, SSL_R_INVALID_TICKET_KEYS_LENGTH); 3672656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 0; 3673656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3674656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (cmd == SSL_CTRL_SET_TLSEXT_TICKET_KEYS) 3675656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3676656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project memcpy(ctx->tlsext_tick_key_name, keys, 16); 3677656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project memcpy(ctx->tlsext_tick_hmac_key, keys + 16, 16); 3678656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project memcpy(ctx->tlsext_tick_aes_key, keys + 32, 16); 3679656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3680656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 3681656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3682656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project memcpy(keys, ctx->tlsext_tick_key_name, 16); 3683656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project memcpy(keys + 16, ctx->tlsext_tick_hmac_key, 16); 3684656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project memcpy(keys + 32, ctx->tlsext_tick_aes_key, 16); 3685656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3686656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 1; 3687656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 368845bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley case SSL_CTRL_CHANNEL_ID: 368945bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley /* must be called on a server */ 369045bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley if (ctx->method->ssl_accept == ssl_undefined_function) 369145bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley return 0; 369245bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley ctx->tlsext_channel_id_enabled=1; 369345bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley return 1; 3694221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 3695221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifdef TLSEXT_TYPE_opaque_prf_input 3696221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG: 3697221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ctx->tlsext_opaque_prf_input_callback_arg = parg; 3698221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom return 1; 3699221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif 3700221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 3701656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG: 3702656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ctx->tlsext_status_arg=parg; 3703656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return 1; 3704656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3705656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3706392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifndef OPENSSL_NO_SRP 3707392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom case SSL_CTRL_SET_TLS_EXT_SRP_USERNAME: 3708392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->srp_ctx.srp_Mask|=SSL_kSRP; 3709392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom if (ctx->srp_ctx.login != NULL) 3710392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom OPENSSL_free(ctx->srp_ctx.login); 3711392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->srp_ctx.login = NULL; 3712392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom if (parg == NULL) 3713392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom break; 3714392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom if (strlen((const char *)parg) > 255 || strlen((const char *)parg) < 1) 3715392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 3716392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSLerr(SSL_F_SSL3_CTX_CTRL, SSL_R_INVALID_SRP_USERNAME); 3717392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom return 0; 3718392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom } 3719392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom if ((ctx->srp_ctx.login = BUF_strdup((char *)parg)) == NULL) 3720392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 3721392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom SSLerr(SSL_F_SSL3_CTX_CTRL, ERR_R_INTERNAL_ERROR); 3722392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom return 0; 3723392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom } 3724392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom break; 3725392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom case SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD: 3726392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->srp_ctx.SRP_give_srp_client_pwd_callback=srp_password_from_info_cb; 3727392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->srp_ctx.info=parg; 3728392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom break; 3729392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom case SSL_CTRL_SET_SRP_ARG: 3730392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->srp_ctx.srp_Mask|=SSL_kSRP; 3731392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->srp_ctx.SRP_cb_arg=parg; 3732392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom break; 3733392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 3734392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom case SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH: 3735392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->srp_ctx.strength=larg; 3736392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom break; 3737392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 3738656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* !OPENSSL_NO_TLSEXT */ 3739221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 3740656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* A Thawte special :-) */ 3741656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_EXTRA_CHAIN_CERT: 3742656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (ctx->extra_certs == NULL) 3743656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3744656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((ctx->extra_certs=sk_X509_new_null()) == NULL) 3745656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 3746656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3747656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sk_X509_push(ctx->extra_certs,(X509 *)parg); 3748656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3749656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3750392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom case SSL_CTRL_GET_EXTRA_CHAIN_CERTS: 3751392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *(STACK_OF(X509) **)parg = ctx->extra_certs; 3752392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom break; 3753392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 3754392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom case SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS: 3755392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom if (ctx->extra_certs) 3756392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 3757392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom sk_X509_pop_free(ctx->extra_certs, X509_free); 3758392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->extra_certs = NULL; 3759392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom } 3760392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom break; 3761392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 376245bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley case SSL_CTRL_SET_CHANNEL_ID: 376345bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley ctx->tlsext_channel_id_enabled = 1; 376445bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley if (EVP_PKEY_bits(parg) != 256) 376545bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley { 376645bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley SSLerr(SSL_F_SSL3_CTX_CTRL,SSL_R_CHANNEL_ID_NOT_P256); 376745bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley break; 376845bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley } 376945bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley if (ctx->tlsext_channel_id_private) 377045bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley EVP_PKEY_free(ctx->tlsext_channel_id_private); 377177c6be7176c48d2ce4d5979a84876d34204eedafKenny Root ctx->tlsext_channel_id_private = EVP_PKEY_dup((EVP_PKEY*) parg); 377245bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley break; 377345bcfbcc39acc2213abd00ebcc794dcc40be39f7Adam Langley 3774656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project default: 3775656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 3776656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3777656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(1); 3778656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3779656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3780656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectlong ssl3_ctx_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp)(void)) 3781656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3782656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CERT *cert; 3783656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3784656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cert=ctx->cert; 3785656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3786656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project switch (cmd) 3787656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3788656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_RSA 3789656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_RSA_CB: 3790656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3791656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cert->rsa_tmp_cb = (RSA *(*)(SSL *, int, int))fp; 3792656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3793656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3794656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3795656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DH 3796656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_DH_CB: 3797656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3798656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cert->dh_tmp_cb = (DH *(*)(SSL *, int, int))fp; 3799656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3800656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3801656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3802656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_ECDH 3803656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TMP_ECDH_CB: 3804656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3805656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cert->ecdh_tmp_cb = (EC_KEY *(*)(SSL *, int, int))fp; 3806656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3807656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3808656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3809656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_TLSEXT 3810656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TLSEXT_SERVERNAME_CB: 3811656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ctx->tlsext_servername_callback=(int (*)(SSL *,int *,void *))fp; 3812656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3813221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 3814221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifdef TLSEXT_TYPE_opaque_prf_input 3815221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB: 3816221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ctx->tlsext_opaque_prf_input_callback = (int (*)(SSL *,void *, size_t, void *))fp; 3817221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom break; 3818221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif 3819221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 3820656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB: 3821656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ctx->tlsext_status_cb=(int (*)(SSL *,void *))fp; 3822656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3823656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3824656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB: 3825656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ctx->tlsext_ticket_key_cb=(int (*)(SSL *,unsigned char *, 3826656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *, 3827656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_CIPHER_CTX *, 3828656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project HMAC_CTX *, int))fp; 3829656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 3830656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3831392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifndef OPENSSL_NO_SRP 3832392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom case SSL_CTRL_SET_SRP_VERIFY_PARAM_CB: 3833392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->srp_ctx.srp_Mask|=SSL_kSRP; 3834392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->srp_ctx.SRP_verify_param_callback=(int (*)(SSL *,void *))fp; 3835392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom break; 3836392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom case SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB: 3837392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->srp_ctx.srp_Mask|=SSL_kSRP; 3838392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->srp_ctx.TLS_ext_srp_username_callback=(int (*)(SSL *,int *,void *))fp; 3839392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom break; 3840392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom case SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB: 3841392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->srp_ctx.srp_Mask|=SSL_kSRP; 3842392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ctx->srp_ctx.SRP_give_srp_client_pwd_callback=(char *(*)(SSL *,void *))fp; 3843392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom break; 3844392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 3845656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 38469a68a8fb86e7440763286e3ea8578099abd598e7Bodo Moeller 3847656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project default: 3848656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 3849656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3850656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(1); 3851656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3852656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3853656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* This function needs to check if the ciphers required are actually 3854656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * available */ 3855221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromconst SSL_CIPHER *ssl3_get_cipher_by_char(const unsigned char *p) 3856656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3857221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom SSL_CIPHER c; 3858221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom const SSL_CIPHER *cp; 3859656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned long id; 3860656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3861656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project id=0x03000000L|((unsigned long)p[0]<<8L)|(unsigned long)p[1]; 3862656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project c.id=id; 3863221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom cp = OBJ_bsearch_ssl_cipher_id(&c, ssl3_ciphers, SSL3_NUM_CIPHERS); 3864392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifdef DEBUG_PRINT_UNKNOWN_CIPHERSUITES 3865392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstromif (cp == NULL) fprintf(stderr, "Unknown cipher ID %x\n", (p[0] << 8) | p[1]); 3866392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 3867656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (cp == NULL || cp->valid == 0) 3868656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return NULL; 3869656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 3870656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return cp; 3871656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3872656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3873656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint ssl3_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p) 3874656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3875656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project long l; 3876656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3877656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (p != NULL) 3878656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3879656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project l=c->id; 3880656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((l & 0xff000000) != 0x03000000) return(0); 3881656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project p[0]=((unsigned char)(l>> 8L))&0xFF; 3882656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project p[1]=((unsigned char)(l ))&0xFF; 3883656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3884656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(2); 3885656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3886656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3887656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt, 3888656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK_OF(SSL_CIPHER) *srvr) 3889656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3890656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_CIPHER *c,*ret=NULL; 3891656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK_OF(SSL_CIPHER) *prio, *allow; 3892221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom int i,ii,ok; 3893221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_EC) 3894221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom unsigned int j; 3895221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom int ec_ok, ec_nid; 3896221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom unsigned char ec_search1 = 0, ec_search2 = 0; 3897221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif 3898656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CERT *cert; 3899221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom unsigned long alg_k,alg_a,mask_k,mask_a,emask_k,emask_a; 3900656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3901656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Let's see which ciphers we can support */ 3902656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cert=s->cert; 3903656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3904656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if 0 3905656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Do not set the compare functions, because this may lead to a 3906656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * reordering by "id". We want to keep the original ordering. 3907656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * We may pay a price in performance during sk_SSL_CIPHER_find(), 3908656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * but would have to pay with the price of sk_SSL_CIPHER_dup(). 3909656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 3910656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sk_SSL_CIPHER_set_cmp_func(srvr, ssl_cipher_ptr_id_cmp); 3911656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sk_SSL_CIPHER_set_cmp_func(clnt, ssl_cipher_ptr_id_cmp); 3912656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3913656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3914656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef CIPHER_DEBUG 3915221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom printf("Server has %d from %p:\n", sk_SSL_CIPHER_num(srvr), (void *)srvr); 3916221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom for(i=0 ; i < sk_SSL_CIPHER_num(srvr) ; ++i) 3917221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 3918221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom c=sk_SSL_CIPHER_value(srvr,i); 3919221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom printf("%p:%s\n",(void *)c,c->name); 3920221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 3921221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom printf("Client sent %d from %p:\n", sk_SSL_CIPHER_num(clnt), (void *)clnt); 3922221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom for(i=0 ; i < sk_SSL_CIPHER_num(clnt) ; ++i) 3923656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3924656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project c=sk_SSL_CIPHER_value(clnt,i); 3925221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom printf("%p:%s\n",(void *)c,c->name); 3926656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3927656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3928656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3929656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->options & SSL_OP_CIPHER_SERVER_PREFERENCE) 3930221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 3931221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom prio = srvr; 3932221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom allow = clnt; 3933221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 3934656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 3935221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 3936221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom prio = clnt; 3937221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom allow = srvr; 3938221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 3939656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3940656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project for (i=0; i<sk_SSL_CIPHER_num(prio); i++) 3941656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3942656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project c=sk_SSL_CIPHER_value(prio,i); 3943656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3944392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom /* Skip TLS v1.2 only ciphersuites if lower than v1.2 */ 3945392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom if ((c->algorithm_ssl & SSL_TLSV1_2) && 3946392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom (TLS1_get_version(s) < TLS1_2_VERSION)) 3947392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom continue; 3948392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 3949656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ssl_set_cert_masks(cert,c); 3950221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom mask_k = cert->mask_k; 3951221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom mask_a = cert->mask_a; 3952221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom emask_k = cert->export_mask_k; 3953221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom emask_a = cert->export_mask_a; 3954392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifndef OPENSSL_NO_SRP 3955c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root if (s->srp_ctx.srp_Mask & SSL_kSRP) 3956c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root { 3957c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root mask_k |= SSL_kSRP; 3958c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root emask_k |= SSL_kSRP; 3959c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root mask_a |= SSL_aSRP; 3960c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root emask_a |= SSL_aSRP; 3961c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root } 3962392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 3963c64f6fe2be99cb3fa8e491b5bede9a217de87a4cKenny Root 3964656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef KSSL_DEBUG 3965221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom/* printf("ssl3_choose_cipher %d alg= %lx\n", i,c->algorithms);*/ 3966656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* KSSL_DEBUG */ 3967656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 3968221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom alg_k=c->algorithm_mkey; 3969221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom alg_a=c->algorithm_auth; 3970221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 3971656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_KRB5 3972221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (alg_k & SSL_kKRB5) 3973221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 3974221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ( !kssl_keytab_is_available(s->kssl_ctx) ) 3975221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom continue; 3976221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 3977656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* OPENSSL_NO_KRB5 */ 3978221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifndef OPENSSL_NO_PSK 3979221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* with PSK there must be server callback set */ 3980de9675dad342fcf6fe0ed86d083c027e88e44b6bAlex Klyubin if ((alg_a & SSL_aPSK) && s->psk_server_callback == NULL) 3981221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom continue; 3982221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif /* OPENSSL_NO_PSK */ 3983221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 3984656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (SSL_C_IS_EXPORT(c)) 3985656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3986221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ok = (alg_k & emask_k) && (alg_a & emask_a); 3987656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef CIPHER_DEBUG 3988221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom printf("%d:[%08lX:%08lX:%08lX:%08lX]%p:%s (export)\n",ok,alg_k,alg_a,emask_k,emask_a, 3989221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom (void *)c,c->name); 3990656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3991656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 3992656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 3993656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 3994221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ok = (alg_k & mask_k) && (alg_a & mask_a); 3995656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef CIPHER_DEBUG 3996221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom printf("%d:[%08lX:%08lX:%08lX:%08lX]%p:%s\n",ok,alg_k,alg_a,mask_k,mask_a,(void *)c, 3997656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project c->name); 3998656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 3999656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4000656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4001221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifndef OPENSSL_NO_TLSEXT 4002221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifndef OPENSSL_NO_EC 4003221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ( 4004221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* if we are considering an ECC cipher suite that uses our certificate */ 4005221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom (alg_a & SSL_aECDSA || alg_a & SSL_aECDH) 4006221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* and we have an ECC certificate */ 4007221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && (s->cert->pkeys[SSL_PKEY_ECC].x509 != NULL) 4008221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* and the client specified a Supported Point Formats extension */ 4009221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && ((s->session->tlsext_ecpointformatlist_length > 0) && (s->session->tlsext_ecpointformatlist != NULL)) 4010221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* and our certificate's point is compressed */ 4011221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && ( 4012221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom (s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info != NULL) 4013221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && (s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info->key != NULL) 4014221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && (s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info->key->public_key != NULL) 4015221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && (s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info->key->public_key->data != NULL) 4016221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && ( 4017221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom (*(s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info->key->public_key->data) == POINT_CONVERSION_COMPRESSED) 4018221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom || (*(s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info->key->public_key->data) == POINT_CONVERSION_COMPRESSED + 1) 4019221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ) 4020221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ) 4021221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ) 4022221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4023221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_ok = 0; 4024221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* if our certificate's curve is over a field type that the client does not support 4025221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * then do not allow this cipher suite to be negotiated */ 4026221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ( 4027221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec != NULL) 4028221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group != NULL) 4029221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group->meth != NULL) 4030221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && (EC_METHOD_get_field_type(s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group->meth) == NID_X9_62_prime_field) 4031221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ) 4032221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4033221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom for (j = 0; j < s->session->tlsext_ecpointformatlist_length; j++) 4034221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4035221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->session->tlsext_ecpointformatlist[j] == TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime) 4036221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4037221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_ok = 1; 4038221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom break; 4039221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4040221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4041221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4042221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom else if (EC_METHOD_get_field_type(s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group->meth) == NID_X9_62_characteristic_two_field) 4043221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4044221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom for (j = 0; j < s->session->tlsext_ecpointformatlist_length; j++) 4045221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4046221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->session->tlsext_ecpointformatlist[j] == TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2) 4047221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4048221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_ok = 1; 4049221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom break; 4050221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4051221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4052221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4053221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ok = ok && ec_ok; 4054221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4055221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ( 4056221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* if we are considering an ECC cipher suite that uses our certificate */ 4057221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom (alg_a & SSL_aECDSA || alg_a & SSL_aECDH) 4058221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* and we have an ECC certificate */ 4059221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && (s->cert->pkeys[SSL_PKEY_ECC].x509 != NULL) 4060221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* and the client specified an EllipticCurves extension */ 4061221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && ((s->session->tlsext_ellipticcurvelist_length > 0) && (s->session->tlsext_ellipticcurvelist != NULL)) 4062221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ) 4063221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4064221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_ok = 0; 4065221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ( 4066221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec != NULL) 4067221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group != NULL) 4068221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ) 4069221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4070221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_nid = EC_GROUP_get_curve_name(s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group); 4071221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ((ec_nid == 0) 4072221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group->meth != NULL) 4073221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ) 4074221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4075221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (EC_METHOD_get_field_type(s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group->meth) == NID_X9_62_prime_field) 4076221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4077221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_search1 = 0xFF; 4078221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_search2 = 0x01; 4079221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4080221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom else if (EC_METHOD_get_field_type(s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group->meth) == NID_X9_62_characteristic_two_field) 4081221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4082221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_search1 = 0xFF; 4083221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_search2 = 0x02; 4084221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4085221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4086221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom else 4087221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4088221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_search1 = 0x00; 4089221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_search2 = tls1_ec_nid2curve_id(ec_nid); 4090221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4091221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ((ec_search1 != 0) || (ec_search2 != 0)) 4092221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4093221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom for (j = 0; j < s->session->tlsext_ellipticcurvelist_length / 2; j++) 4094221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4095221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ((s->session->tlsext_ellipticcurvelist[2*j] == ec_search1) && (s->session->tlsext_ellipticcurvelist[2*j+1] == ec_search2)) 4096221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4097221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_ok = 1; 4098221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom break; 4099221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4100221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4101221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4102221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4103221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ok = ok && ec_ok; 4104221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4105221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ( 4106221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* if we are considering an ECC cipher suite that uses an ephemeral EC key */ 4107221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom (alg_k & SSL_kEECDH) 4108221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* and we have an ephemeral EC key */ 4109221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && (s->cert->ecdh_tmp != NULL) 4110221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* and the client specified an EllipticCurves extension */ 4111221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && ((s->session->tlsext_ellipticcurvelist_length > 0) && (s->session->tlsext_ellipticcurvelist != NULL)) 4112221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ) 4113221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4114221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_ok = 0; 4115221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->cert->ecdh_tmp->group != NULL) 4116221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4117221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_nid = EC_GROUP_get_curve_name(s->cert->ecdh_tmp->group); 4118221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ((ec_nid == 0) 4119221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom && (s->cert->ecdh_tmp->group->meth != NULL) 4120221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ) 4121221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4122221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (EC_METHOD_get_field_type(s->cert->ecdh_tmp->group->meth) == NID_X9_62_prime_field) 4123221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4124221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_search1 = 0xFF; 4125221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_search2 = 0x01; 4126221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4127221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom else if (EC_METHOD_get_field_type(s->cert->ecdh_tmp->group->meth) == NID_X9_62_characteristic_two_field) 4128221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4129221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_search1 = 0xFF; 4130221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_search2 = 0x02; 4131221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4132221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4133221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom else 4134221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4135221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_search1 = 0x00; 4136221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_search2 = tls1_ec_nid2curve_id(ec_nid); 4137221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4138221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ((ec_search1 != 0) || (ec_search2 != 0)) 4139221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4140221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom for (j = 0; j < s->session->tlsext_ellipticcurvelist_length / 2; j++) 4141221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4142221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ((s->session->tlsext_ellipticcurvelist[2*j] == ec_search1) && (s->session->tlsext_ellipticcurvelist[2*j+1] == ec_search2)) 4143221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4144221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ec_ok = 1; 4145221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom break; 4146221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4147221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4148221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4149221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4150221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ok = ok && ec_ok; 4151221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4152221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif /* OPENSSL_NO_EC */ 4153221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif /* OPENSSL_NO_TLSEXT */ 4154221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 4155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!ok) continue; 4156221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ii=sk_SSL_CIPHER_find(allow,c); 4157221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (ii >= 0) 4158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4159ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root#if !defined(OPENSSL_NO_EC) && !defined(OPENSSL_NO_TLSEXT) 4160ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root if ((alg_k & SSL_kEECDH) && (alg_a & SSL_aECDSA) && s->s3->is_probably_safari) 4161ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root { 4162ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root if (!ret) ret=sk_SSL_CIPHER_value(allow,ii); 4163ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root continue; 4164ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root } 4165ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root#endif 4166221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ret=sk_SSL_CIPHER_value(allow,ii); 4167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 4168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 4171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint ssl3_get_req_cert_type(SSL *s, unsigned char *p) 4174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int ret=0; 4176221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom unsigned long alg_k; 4177221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 4178221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom alg_k = s->s3->tmp.new_cipher->algorithm_mkey; 4179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4180221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifndef OPENSSL_NO_GOST 4181221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (s->version >= TLS1_VERSION) 4182221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4183221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (alg_k & SSL_kGOST) 4184221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { 4185221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom p[ret++]=TLS_CT_GOST94_SIGN; 4186221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom p[ret++]=TLS_CT_GOST01_SIGN; 4187221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom return(ret); 4188221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4189221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom } 4190221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif 4191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DH 4193221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (alg_k & (SSL_kDHr|SSL_kEDH)) 4194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifndef OPENSSL_NO_RSA 4196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project p[ret++]=SSL3_CT_RSA_FIXED_DH; 4197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 4198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifndef OPENSSL_NO_DSA 4199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project p[ret++]=SSL3_CT_DSS_FIXED_DH; 4200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 4201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((s->version == SSL3_VERSION) && 4203221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom (alg_k & (SSL_kEDH|SSL_kDHd|SSL_kDHr))) 4204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifndef OPENSSL_NO_RSA 4206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project p[ret++]=SSL3_CT_RSA_EPHEMERAL_DH; 4207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 4208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifndef OPENSSL_NO_DSA 4209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project p[ret++]=SSL3_CT_DSS_EPHEMERAL_DH; 4210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 4211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* !OPENSSL_NO_DH */ 4213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_RSA 4214656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project p[ret++]=SSL3_CT_RSA_SIGN; 4215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 4216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DSA 4217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project p[ret++]=SSL3_CT_DSS_SIGN; 4218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 4219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_ECDH 4220221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if ((alg_k & (SSL_kECDHr|SSL_kECDHe)) && (s->version >= TLS1_VERSION)) 4221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project p[ret++]=TLS_CT_RSA_FIXED_ECDH; 4223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project p[ret++]=TLS_CT_ECDSA_FIXED_ECDH; 4224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 4226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_ECDSA 4228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* ECDSA certs can be used with RSA cipher suites as well 4229221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * so we don't need to check for SSL_kECDH or SSL_kEECDH 4230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 4231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->version >= TLS1_VERSION) 4232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project p[ret++]=TLS_CT_ECDSA_SIGN; 4234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 4236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 4237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint ssl3_shutdown(SSL *s) 4240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 424198d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom int ret; 4242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Don't do anything much if we have not done the handshake or 4244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * we don't want to send messages :-) */ 4245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((s->quiet_shutdown) || (s->state == SSL_ST_BEFORE)) 4246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->shutdown=(SSL_SENT_SHUTDOWN|SSL_RECEIVED_SHUTDOWN); 4248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(1); 4249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (!(s->shutdown & SSL_SENT_SHUTDOWN)) 4252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->shutdown|=SSL_SENT_SHUTDOWN; 4254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if 1 4255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ssl3_send_alert(s,SSL3_AL_WARNING,SSL_AD_CLOSE_NOTIFY); 4256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 4257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* our shutdown alert has been sent now, and if it still needs 4258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * to be written, s->s3->alert_dispatch will be true */ 425998d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom if (s->s3->alert_dispatch) 426098d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom return(-1); /* return WANT_WRITE */ 4261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else if (s->s3->alert_dispatch) 4263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* resend it if not sent */ 4265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if 1 426698d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom ret=s->method->ssl_dispatch_alert(s); 426798d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom if(ret == -1) 426898d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom { 426998d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom /* we only get to return -1 here the 2nd/Nth 427098d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom * invocation, we must have already signalled 427198d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom * return 0 upon a previous invoation, 427298d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom * return WANT_WRITE */ 427398d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom return(ret); 427498d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom } 4275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 4276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else if (!(s->shutdown & SSL_RECEIVED_SHUTDOWN)) 4278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* If we are waiting for a close from our peer, we are closed */ 4280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->method->ssl_read_bytes(s,0,NULL,0,0); 428198d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom if(!(s->shutdown & SSL_RECEIVED_SHUTDOWN)) 428298d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom { 428398d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom return(-1); /* return WANT_READ */ 428498d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom } 4285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((s->shutdown == (SSL_SENT_SHUTDOWN|SSL_RECEIVED_SHUTDOWN)) && 4288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project !s->s3->alert_dispatch) 4289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(1); 4290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 4291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 4292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4293656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint ssl3_write(SSL *s, const void *buf, int len) 4295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4296656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int ret,n; 4297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if 0 4299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->shutdown & SSL_SEND_SHUTDOWN) 4300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4301656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->rwstate=SSL_NOTHING; 4302656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 4303656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 4305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clear_sys_error(); 4306656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->renegotiate) ssl3_renegotiate_check(s); 4307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4308656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* This is an experimental flag that sends the 4309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * last handshake message in the same packet as the first 4310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * use data - used to see if it helps the TCP protocol during 4311656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * session-id reuse */ 4312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* The second test is because the buffer may have been removed */ 4313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((s->s3->flags & SSL3_FLAGS_POP_BUFFER) && (s->wbio == s->bbio)) 4314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* First time through, we write into the buffer */ 4316656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->delay_buf_pop_ret == 0) 4317656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4318656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=ssl3_write_bytes(s,SSL3_RT_APPLICATION_DATA, 4319656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project buf,len); 4320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (ret <= 0) return(ret); 4321656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4322656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->delay_buf_pop_ret=ret; 4323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4324656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->rwstate=SSL_WRITING; 4326656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project n=BIO_flush(s->wbio); 4327656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (n <= 0) return(n); 4328656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->rwstate=SSL_NOTHING; 4329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4330656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* We have flushed the buffer, so remove it */ 4331656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ssl_free_wbio_buffer(s); 4332656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->flags&= ~SSL3_FLAGS_POP_BUFFER; 4333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4334656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=s->s3->delay_buf_pop_ret; 4335656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->delay_buf_pop_ret=0; 4336656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4337656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 4338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=s->method->ssl_write_bytes(s,SSL3_RT_APPLICATION_DATA, 4340656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project buf,len); 4341656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (ret <= 0) return(ret); 4342656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4343656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4344656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 4345656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4346656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4347656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectstatic int ssl3_read_internal(SSL *s, void *buf, int len, int peek) 4348656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4349ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu int n,ret; 4350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4351656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clear_sys_error(); 4352ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu if ((s->s3->flags & SSL3_FLAGS_POP_BUFFER) && (s->wbio == s->bbio)) 4353ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu { 4354ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu /* Deal with an application that calls SSL_read() when handshake data 4355ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu * is yet to be written. 4356ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu */ 4357ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu if (BIO_wpending(s->wbio) > 0) 4358ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu { 4359ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu s->rwstate=SSL_WRITING; 4360ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu n=BIO_flush(s->wbio); 4361ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu if (n <= 0) return(n); 4362ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu s->rwstate=SSL_NOTHING; 4363ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu } 4364ef1d181713d602df2075f0bf367788fd8b15100dHuahui Wu } 4365656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->renegotiate) ssl3_renegotiate_check(s); 4366656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->in_read_app_data=1; 4367656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=s->method->ssl_read_bytes(s,SSL3_RT_APPLICATION_DATA,buf,len,peek); 4368656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((ret == -1) && (s->s3->in_read_app_data == 2)) 4369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4370656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* ssl3_read_bytes decided to call s->handshake_func, which 4371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * called ssl3_read_bytes to read handshake data. 4372656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * However, ssl3_read_bytes actually found application data 4373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * and thinks that application data makes sense here; so disable 4374656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * handshake processing and try to read application data again. */ 4375656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->in_handshake++; 4376656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=s->method->ssl_read_bytes(s,SSL3_RT_APPLICATION_DATA,buf,len,peek); 4377656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->in_handshake--; 4378656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4379656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 4380656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->in_read_app_data=0; 4381656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4382656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 4383656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4384656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4385656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint ssl3_read(SSL *s, void *buf, int len) 4386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return ssl3_read_internal(s, buf, len, 0); 4388656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4389656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4390656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint ssl3_peek(SSL *s, void *buf, int len) 4391656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4392656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return ssl3_read_internal(s, buf, len, 1); 4393656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4394656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4395656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint ssl3_renegotiate(SSL *s) 4396656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4397656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->handshake_func == NULL) 4398656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(1); 4399656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4400656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->flags & SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS) 4401656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 4402656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4403656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->renegotiate=1; 4404656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(1); 4405656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4406656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4407656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint ssl3_renegotiate_check(SSL *s) 4408656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4409656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int ret=0; 4410656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4411656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s->s3->renegotiate) 4412656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4413656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ( (s->s3->rbuf.left == 0) && 4414656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (s->s3->wbuf.left == 0) && 4415656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project !SSL_in_init(s)) 4416656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 4417656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 4418656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectif we are the server, and we have sent a 'RENEGOTIATE' message, we 4419656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectneed to go to SSL_ST_ACCEPT. 4420656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project*/ 4421656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* SSL_ST_ACCEPT */ 4422656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->state=SSL_ST_RENEGOTIATE; 4423656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->renegotiate=0; 4424656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->num_renegotiations++; 4425656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s->s3->total_renegotiations++; 4426656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=1; 4427656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4428656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4429656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 4430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 4431392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom/* If we are using TLS v1.2 or later and default SHA1+MD5 algorithms switch 4432392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * to new SHA256 PRF and handshake macs 4433392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom */ 4434392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstromlong ssl_get_algorithm2(SSL *s) 4435392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom { 4436392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom long alg2 = s->s3->tmp.new_cipher->algorithm2; 4437ff41a4bc41ae1e1391f9b05117623ff70b985983Kenny Root if (s->method->version == TLS1_2_VERSION && 4438392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom alg2 == (SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF)) 4439392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom return SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256; 4440392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom return alg2; 4441392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom } 4442