1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ssl/ssl_stat.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 */ 58221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom/* ==================================================================== 59221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * Copyright 2005 Nokia. All rights reserved. 60221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * 61221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * The portions of the attached software ("Contribution") is developed by 62221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * Nokia Corporation and is licensed pursuant to the OpenSSL open source 63221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * license. 64221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * 65221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * The Contribution, originally written by Mika Kousa and Pasi Eronen of 66221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites 67221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * support (see RFC 4279) to OpenSSL. 68221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * 69221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * No patent licenses or other rights except those expressly stated in 70221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * the OpenSSL open source license shall be deemed granted or received 71221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * expressly, by implication, estoppel, or otherwise. 72221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * 73221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * No assurances are provided by Nokia that the Contribution does not 74221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * infringe the patent or other intellectual property rights of any third 75221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * party or that the license provides you with all the necessary rights 76221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * to make use of the Contribution. 77221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * 78221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN 79221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA 80221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY 81221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR 82221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom * OTHERWISE. 83221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom */ 84656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 85656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <stdio.h> 86656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "ssl_locl.h" 87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 88656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst char *SSL_state_string_long(const SSL *s) 89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const char *str; 91656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project switch (s->state) 93656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 94656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL_ST_BEFORE: str="before SSL initialization"; break; 95656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL_ST_ACCEPT: str="before accept initialization"; break; 96656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL_ST_CONNECT: str="before connect initialization"; break; 97656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL_ST_OK: str="SSL negotiation finished successfully"; break; 98656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL_ST_RENEGOTIATE: str="SSL renegotiate ciphers"; break; 99656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL_ST_BEFORE|SSL_ST_CONNECT: str="before/connect initialization"; break; 100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL_ST_OK|SSL_ST_CONNECT: str="ok/connect SSL initialization"; break; 101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL_ST_BEFORE|SSL_ST_ACCEPT: str="before/accept initialization"; break; 102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL_ST_OK|SSL_ST_ACCEPT: str="ok/accept SSL initialization"; break; 103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_SSL2 104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_CLIENT_START_ENCRYPTION: str="SSLv2 client start encryption"; break; 105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SERVER_START_ENCRYPTION: str="SSLv2 server start encryption"; break; 106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_HELLO_A: str="SSLv2 write client hello A"; break; 107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_HELLO_B: str="SSLv2 write client hello B"; break; 108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_SERVER_HELLO_A: str="SSLv2 read server hello A"; break; 109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_SERVER_HELLO_B: str="SSLv2 read server hello B"; break; 110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_MASTER_KEY_A: str="SSLv2 write client master key A"; break; 111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_MASTER_KEY_B: str="SSLv2 write client master key B"; break; 112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_FINISHED_A: str="SSLv2 write client finished A"; break; 113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_FINISHED_B: str="SSLv2 write client finished B"; break; 114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_CERTIFICATE_A: str="SSLv2 write client certificate A"; break; 115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_CERTIFICATE_B: str="SSLv2 write client certificate B"; break; 116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_CERTIFICATE_C: str="SSLv2 write client certificate C"; break; 117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_CERTIFICATE_D: str="SSLv2 write client certificate D"; break; 118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_SERVER_VERIFY_A: str="SSLv2 read server verify A"; break; 119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_SERVER_VERIFY_B: str="SSLv2 read server verify B"; break; 120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_SERVER_FINISHED_A: str="SSLv2 read server finished A"; break; 121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_SERVER_FINISHED_B: str="SSLv2 read server finished B"; break; 122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_HELLO_A: str="SSLv2 read client hello A"; break; 123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_HELLO_B: str="SSLv2 read client hello B"; break; 124656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_HELLO_C: str="SSLv2 read client hello C"; break; 125656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_HELLO_A: str="SSLv2 write server hello A"; break; 126656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_HELLO_B: str="SSLv2 write server hello B"; break; 127656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_MASTER_KEY_A: str="SSLv2 read client master key A"; break; 128656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_MASTER_KEY_B: str="SSLv2 read client master key B"; break; 129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_VERIFY_A: str="SSLv2 write server verify A"; break; 130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_VERIFY_B: str="SSLv2 write server verify B"; break; 131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_VERIFY_C: str="SSLv2 write server verify C"; break; 132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_FINISHED_A: str="SSLv2 read client finished A"; break; 133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_FINISHED_B: str="SSLv2 read client finished B"; break; 134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_FINISHED_A: str="SSLv2 write server finished A"; break; 135656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_FINISHED_B: str="SSLv2 write server finished B"; break; 136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_REQUEST_CERTIFICATE_A: str="SSLv2 write request certificate A"; break; 137656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_REQUEST_CERTIFICATE_B: str="SSLv2 write request certificate B"; break; 138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_REQUEST_CERTIFICATE_C: str="SSLv2 write request certificate C"; break; 139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_REQUEST_CERTIFICATE_D: str="SSLv2 write request certificate D"; break; 140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_X509_GET_SERVER_CERTIFICATE: str="SSLv2 X509 read server certificate"; break; 141656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_X509_GET_CLIENT_CERTIFICATE: str="SSLv2 X509 read client certificate"; break; 142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_SSL3 145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* SSLv3 additions */ 146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CLNT_HELLO_A: str="SSLv3 write client hello A"; break; 147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CLNT_HELLO_B: str="SSLv3 write client hello B"; break; 148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_SRVR_HELLO_A: str="SSLv3 read server hello A"; break; 149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_SRVR_HELLO_B: str="SSLv3 read server hello B"; break; 150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_CERT_A: str="SSLv3 read server certificate A"; break; 151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_CERT_B: str="SSLv3 read server certificate B"; break; 152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_KEY_EXCH_A: str="SSLv3 read server key exchange A"; break; 153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_KEY_EXCH_B: str="SSLv3 read server key exchange B"; break; 154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_CERT_REQ_A: str="SSLv3 read server certificate request A"; break; 155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_CERT_REQ_B: str="SSLv3 read server certificate request B"; break; 156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_SESSION_TICKET_A: str="SSLv3 read server session ticket A";break; 157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_SESSION_TICKET_B: str="SSLv3 read server session ticket B";break; 158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_SRVR_DONE_A: str="SSLv3 read server done A"; break; 159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_SRVR_DONE_B: str="SSLv3 read server done B"; break; 160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CERT_A: str="SSLv3 write client certificate A"; break; 161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CERT_B: str="SSLv3 write client certificate B"; break; 162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CERT_C: str="SSLv3 write client certificate C"; break; 163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CERT_D: str="SSLv3 write client certificate D"; break; 164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_KEY_EXCH_A: str="SSLv3 write client key exchange A"; break; 165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_KEY_EXCH_B: str="SSLv3 write client key exchange B"; break; 166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CERT_VRFY_A: str="SSLv3 write certificate verify A"; break; 167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CERT_VRFY_B: str="SSLv3 write certificate verify B"; break; 168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CHANGE_A: 170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_CHANGE_A: str="SSLv3 write change cipher spec A"; break; 171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CHANGE_B: 172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_CHANGE_B: str="SSLv3 write change cipher spec B"; break; 173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_FINISHED_A: 174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_FINISHED_A: str="SSLv3 write finished A"; break; 175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_FINISHED_B: 176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_FINISHED_B: str="SSLv3 write finished B"; break; 177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_CHANGE_A: 178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CHANGE_A: str="SSLv3 read change cipher spec A"; break; 179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_CHANGE_B: 180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CHANGE_B: str="SSLv3 read change cipher spec B"; break; 181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_FINISHED_A: 182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_FINISHED_A: str="SSLv3 read finished A"; break; 183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_FINISHED_B: 184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_FINISHED_B: str="SSLv3 read finished B"; break; 185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_FLUSH: 187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_FLUSH: str="SSLv3 flush data"; break; 188656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CLNT_HELLO_A: str="SSLv3 read client hello A"; break; 190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CLNT_HELLO_B: str="SSLv3 read client hello B"; break; 191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CLNT_HELLO_C: str="SSLv3 read client hello C"; break; 192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_HELLO_REQ_A: str="SSLv3 write hello request A"; break; 193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_HELLO_REQ_B: str="SSLv3 write hello request B"; break; 194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_HELLO_REQ_C: str="SSLv3 write hello request C"; break; 195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_SRVR_HELLO_A: str="SSLv3 write server hello A"; break; 196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_SRVR_HELLO_B: str="SSLv3 write server hello B"; break; 197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_CERT_A: str="SSLv3 write certificate A"; break; 198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_CERT_B: str="SSLv3 write certificate B"; break; 199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_KEY_EXCH_A: str="SSLv3 write key exchange A"; break; 200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_KEY_EXCH_B: str="SSLv3 write key exchange B"; break; 201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_CERT_REQ_A: str="SSLv3 write certificate request A"; break; 202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_CERT_REQ_B: str="SSLv3 write certificate request B"; break; 203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_SESSION_TICKET_A: str="SSLv3 write session ticket A"; break; 204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_SESSION_TICKET_B: str="SSLv3 write session ticket B"; break; 205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_SRVR_DONE_A: str="SSLv3 write server done A"; break; 206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_SRVR_DONE_B: str="SSLv3 write server done B"; break; 207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CERT_A: str="SSLv3 read client certificate A"; break; 208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CERT_B: str="SSLv3 read client certificate B"; break; 209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_KEY_EXCH_A: str="SSLv3 read client key exchange A"; break; 210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_KEY_EXCH_B: str="SSLv3 read client key exchange B"; break; 211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CERT_VRFY_A: str="SSLv3 read certificate verify A"; break; 212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CERT_VRFY_B: str="SSLv3 read certificate verify B"; break; 213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 214656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3) 216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* SSLv2/v3 compatibility states */ 217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* client */ 218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL23_ST_CW_CLNT_HELLO_A: str="SSLv2/v3 write client hello A"; break; 219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL23_ST_CW_CLNT_HELLO_B: str="SSLv2/v3 write client hello B"; break; 220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL23_ST_CR_SRVR_HELLO_A: str="SSLv2/v3 read server hello A"; break; 221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL23_ST_CR_SRVR_HELLO_B: str="SSLv2/v3 read server hello B"; break; 222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* server */ 223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL23_ST_SR_CLNT_HELLO_A: str="SSLv2/v3 read client hello A"; break; 224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL23_ST_SR_CLNT_HELLO_B: str="SSLv2/v3 read client hello B"; break; 225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 22798d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom/* DTLS */ 22898d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstromcase DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A: str="DTLS1 read hello verify request A"; break; 22998d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstromcase DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B: str="DTLS1 read hello verify request B"; break; 23098d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstromcase DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A: str="DTLS1 write hello verify request A"; break; 23198d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstromcase DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B: str="DTLS1 write hello verify request B"; break; 23298d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom 233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectdefault: str="unknown state"; break; 234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(str); 236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst char *SSL_rstate_string_long(const SSL *s) 239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const char *str; 241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project switch (s->rstate) 243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_ST_READ_HEADER: str="read header"; break; 245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_ST_READ_BODY: str="read body"; break; 246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_ST_READ_DONE: str="read done"; break; 247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project default: str="unknown"; break; 248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(str); 250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst char *SSL_state_string(const SSL *s) 253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const char *str; 255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project switch (s->state) 257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL_ST_BEFORE: str="PINIT "; break; 259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL_ST_ACCEPT: str="AINIT "; break; 260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL_ST_CONNECT: str="CINIT "; break; 261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL_ST_OK: str="SSLOK "; break; 262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_SSL2 263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_CLIENT_START_ENCRYPTION: str="2CSENC"; break; 264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SERVER_START_ENCRYPTION: str="2SSENC"; break; 265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_HELLO_A: str="2SCH_A"; break; 266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_HELLO_B: str="2SCH_B"; break; 267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_SERVER_HELLO_A: str="2GSH_A"; break; 268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_SERVER_HELLO_B: str="2GSH_B"; break; 269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_MASTER_KEY_A: str="2SCMKA"; break; 270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_MASTER_KEY_B: str="2SCMKB"; break; 271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_FINISHED_A: str="2SCF_A"; break; 272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_FINISHED_B: str="2SCF_B"; break; 273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_CERTIFICATE_A: str="2SCC_A"; break; 274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_CERTIFICATE_B: str="2SCC_B"; break; 275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_CERTIFICATE_C: str="2SCC_C"; break; 276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_CLIENT_CERTIFICATE_D: str="2SCC_D"; break; 277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_SERVER_VERIFY_A: str="2GSV_A"; break; 278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_SERVER_VERIFY_B: str="2GSV_B"; break; 279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_SERVER_FINISHED_A: str="2GSF_A"; break; 280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_SERVER_FINISHED_B: str="2GSF_B"; break; 281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_HELLO_A: str="2GCH_A"; break; 282656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_HELLO_B: str="2GCH_B"; break; 283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_HELLO_C: str="2GCH_C"; break; 284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_HELLO_A: str="2SSH_A"; break; 285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_HELLO_B: str="2SSH_B"; break; 286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_MASTER_KEY_A: str="2GCMKA"; break; 287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_MASTER_KEY_B: str="2GCMKA"; break; 288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_VERIFY_A: str="2SSV_A"; break; 289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_VERIFY_B: str="2SSV_B"; break; 290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_VERIFY_C: str="2SSV_C"; break; 291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_FINISHED_A: str="2GCF_A"; break; 292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_GET_CLIENT_FINISHED_B: str="2GCF_B"; break; 293656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_FINISHED_A: str="2SSF_A"; break; 294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_SERVER_FINISHED_B: str="2SSF_B"; break; 295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_REQUEST_CERTIFICATE_A: str="2SRC_A"; break; 296656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_REQUEST_CERTIFICATE_B: str="2SRC_B"; break; 297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_REQUEST_CERTIFICATE_C: str="2SRC_C"; break; 298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_SEND_REQUEST_CERTIFICATE_D: str="2SRC_D"; break; 299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_X509_GET_SERVER_CERTIFICATE: str="2X9GSC"; break; 300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL2_ST_X509_GET_CLIENT_CERTIFICATE: str="2X9GCC"; break; 301656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 302656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 303656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_SSL3 304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* SSLv3 additions */ 305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_FLUSH: 306656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_FLUSH: str="3FLUSH"; break; 307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CLNT_HELLO_A: str="3WCH_A"; break; 308656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CLNT_HELLO_B: str="3WCH_B"; break; 309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_SRVR_HELLO_A: str="3RSH_A"; break; 310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_SRVR_HELLO_B: str="3RSH_B"; break; 311656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_CERT_A: str="3RSC_A"; break; 312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_CERT_B: str="3RSC_B"; break; 313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_KEY_EXCH_A: str="3RSKEA"; break; 314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_KEY_EXCH_B: str="3RSKEB"; break; 315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_CERT_REQ_A: str="3RCR_A"; break; 316656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_CERT_REQ_B: str="3RCR_B"; break; 317656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_SRVR_DONE_A: str="3RSD_A"; break; 318656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_SRVR_DONE_B: str="3RSD_B"; break; 319656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CERT_A: str="3WCC_A"; break; 320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CERT_B: str="3WCC_B"; break; 321656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CERT_C: str="3WCC_C"; break; 322656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CERT_D: str="3WCC_D"; break; 323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_KEY_EXCH_A: str="3WCKEA"; break; 324656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_KEY_EXCH_B: str="3WCKEB"; break; 325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CERT_VRFY_A: str="3WCV_A"; break; 326656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CERT_VRFY_B: str="3WCV_B"; break; 327656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 328656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_CHANGE_A: 329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CHANGE_A: str="3WCCSA"; break; 330656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_CHANGE_B: 331656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_CHANGE_B: str="3WCCSB"; break; 332656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_FINISHED_A: 333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_FINISHED_A: str="3WFINA"; break; 334656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_FINISHED_B: 335656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CW_FINISHED_B: str="3WFINB"; break; 336656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CHANGE_A: 337656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_CHANGE_A: str="3RCCSA"; break; 338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CHANGE_B: 339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_CHANGE_B: str="3RCCSB"; break; 340656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_FINISHED_A: 341656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_FINISHED_A: str="3RFINA"; break; 342656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_FINISHED_B: 343656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_CR_FINISHED_B: str="3RFINB"; break; 344656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 345656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_HELLO_REQ_A: str="3WHR_A"; break; 346656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_HELLO_REQ_B: str="3WHR_B"; break; 347656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_HELLO_REQ_C: str="3WHR_C"; break; 348656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CLNT_HELLO_A: str="3RCH_A"; break; 349656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CLNT_HELLO_B: str="3RCH_B"; break; 350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CLNT_HELLO_C: str="3RCH_C"; break; 351656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_SRVR_HELLO_A: str="3WSH_A"; break; 352656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_SRVR_HELLO_B: str="3WSH_B"; break; 353656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_CERT_A: str="3WSC_A"; break; 354656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_CERT_B: str="3WSC_B"; break; 355656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_KEY_EXCH_A: str="3WSKEA"; break; 356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_KEY_EXCH_B: str="3WSKEB"; break; 357656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_CERT_REQ_A: str="3WCR_A"; break; 358656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_CERT_REQ_B: str="3WCR_B"; break; 359656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_SRVR_DONE_A: str="3WSD_A"; break; 360656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SW_SRVR_DONE_B: str="3WSD_B"; break; 361656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CERT_A: str="3RCC_A"; break; 362656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CERT_B: str="3RCC_B"; break; 363656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_KEY_EXCH_A: str="3RCKEA"; break; 364656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_KEY_EXCH_B: str="3RCKEB"; break; 365656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CERT_VRFY_A: str="3RCV_A"; break; 366656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL3_ST_SR_CERT_VRFY_B: str="3RCV_B"; break; 367656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 368656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3) 370656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* SSLv2/v3 compatibility states */ 371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* client */ 372656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL23_ST_CW_CLNT_HELLO_A: str="23WCHA"; break; 373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL23_ST_CW_CLNT_HELLO_B: str="23WCHB"; break; 374656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL23_ST_CR_SRVR_HELLO_A: str="23RSHA"; break; 375656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL23_ST_CR_SRVR_HELLO_B: str="23RSHA"; break; 376656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* server */ 377656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL23_ST_SR_CLNT_HELLO_A: str="23RCHA"; break; 378656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcase SSL23_ST_SR_CLNT_HELLO_B: str="23RCHB"; break; 379656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 38098d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom/* DTLS */ 38198d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstromcase DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A: str="DRCHVA"; break; 38298d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstromcase DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B: str="DRCHVB"; break; 38398d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstromcase DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A: str="DWCHVA"; break; 38498d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstromcase DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B: str="DWCHVB"; break; 385656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectdefault: str="UNKWN "; break; 387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 388656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(str); 389656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 390656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 391656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst char *SSL_alert_type_string_long(int value) 392656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 393656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project value>>=8; 394656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (value == SSL3_AL_WARNING) 395656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return("warning"); 396656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else if (value == SSL3_AL_FATAL) 397656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return("fatal"); 398656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 399656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return("unknown"); 400656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 401656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 402656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst char *SSL_alert_type_string(int value) 403656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 404656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project value>>=8; 405656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (value == SSL3_AL_WARNING) 406656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return("W"); 407656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else if (value == SSL3_AL_FATAL) 408656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return("F"); 409656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 410656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return("U"); 411656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 412656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 413656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst char *SSL_alert_desc_string(int value) 414656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 415656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const char *str; 416656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 417656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project switch (value & 0xff) 418656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 419656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_CLOSE_NOTIFY: str="CN"; break; 420656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_UNEXPECTED_MESSAGE: str="UM"; break; 421656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_BAD_RECORD_MAC: str="BM"; break; 422656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_DECOMPRESSION_FAILURE: str="DF"; break; 423656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_HANDSHAKE_FAILURE: str="HF"; break; 424656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_NO_CERTIFICATE: str="NC"; break; 425656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_BAD_CERTIFICATE: str="BC"; break; 426656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_UNSUPPORTED_CERTIFICATE: str="UC"; break; 427656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_CERTIFICATE_REVOKED: str="CR"; break; 428656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_CERTIFICATE_EXPIRED: str="CE"; break; 429656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_CERTIFICATE_UNKNOWN: str="CU"; break; 430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_ILLEGAL_PARAMETER: str="IP"; break; 431656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_DECRYPTION_FAILED: str="DC"; break; 432656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_RECORD_OVERFLOW: str="RO"; break; 433656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_UNKNOWN_CA: str="CA"; break; 434656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_ACCESS_DENIED: str="AD"; break; 435656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_DECODE_ERROR: str="DE"; break; 436656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_DECRYPT_ERROR: str="CY"; break; 437656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_EXPORT_RESTRICTION: str="ER"; break; 438656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_PROTOCOL_VERSION: str="PV"; break; 439656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_INSUFFICIENT_SECURITY: str="IS"; break; 440656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_INTERNAL_ERROR: str="IE"; break; 441656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_USER_CANCELLED: str="US"; break; 442656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_NO_RENEGOTIATION: str="NR"; break; 443221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case TLS1_AD_UNSUPPORTED_EXTENSION: str="UE"; break; 444221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case TLS1_AD_CERTIFICATE_UNOBTAINABLE: str="CO"; break; 445221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case TLS1_AD_UNRECOGNIZED_NAME: str="UN"; break; 446221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE: str="BR"; break; 447221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case TLS1_AD_BAD_CERTIFICATE_HASH_VALUE: str="BH"; break; 448221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case TLS1_AD_UNKNOWN_PSK_IDENTITY: str="UP"; break; 449656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project default: str="UK"; break; 450656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 451656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(str); 452656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 453656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 454656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst char *SSL_alert_desc_string_long(int value) 455656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 456656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const char *str; 457656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 458656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project switch (value & 0xff) 459656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 460656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_CLOSE_NOTIFY: 461656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="close notify"; 462656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 463656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_UNEXPECTED_MESSAGE: 464656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="unexpected_message"; 465656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 466656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_BAD_RECORD_MAC: 467656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="bad record mac"; 468656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 469656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_DECOMPRESSION_FAILURE: 470656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="decompression failure"; 471656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 472656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_HANDSHAKE_FAILURE: 473656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="handshake failure"; 474656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 475656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_NO_CERTIFICATE: 476656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="no certificate"; 477656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 478656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_BAD_CERTIFICATE: 479656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="bad certificate"; 480656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 481656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_UNSUPPORTED_CERTIFICATE: 482656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="unsupported certificate"; 483656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 484656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_CERTIFICATE_REVOKED: 485656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="certificate revoked"; 486656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 487656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_CERTIFICATE_EXPIRED: 488656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="certificate expired"; 489656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 490656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_CERTIFICATE_UNKNOWN: 491656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="certificate unknown"; 492656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 493656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL3_AD_ILLEGAL_PARAMETER: 494656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="illegal parameter"; 495656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 496656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_DECRYPTION_FAILED: 497656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="decryption failed"; 498656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 499656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_RECORD_OVERFLOW: 500656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="record overflow"; 501656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 502656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_UNKNOWN_CA: 503656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="unknown CA"; 504656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 505656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_ACCESS_DENIED: 506656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="access denied"; 507656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 508656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_DECODE_ERROR: 509656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="decode error"; 510656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 511656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_DECRYPT_ERROR: 512656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="decrypt error"; 513656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 514656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_EXPORT_RESTRICTION: 515656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="export restriction"; 516656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 517656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_PROTOCOL_VERSION: 518656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="protocol version"; 519656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 520656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_INSUFFICIENT_SECURITY: 521656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="insufficient security"; 522656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 523656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_INTERNAL_ERROR: 524656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="internal error"; 525656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 526656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_USER_CANCELLED: 527656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="user canceled"; 528656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 529656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case TLS1_AD_NO_RENEGOTIATION: 530656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str="no renegotiation"; 531656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 532221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case TLS1_AD_UNSUPPORTED_EXTENSION: 533221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom str="unsupported extension"; 534221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom break; 535221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case TLS1_AD_CERTIFICATE_UNOBTAINABLE: 536221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom str="certificate unobtainable"; 537221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom break; 538221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case TLS1_AD_UNRECOGNIZED_NAME: 539221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom str="unrecognized name"; 540221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom break; 541221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE: 542221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom str="bad certificate status response"; 543221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom break; 544221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case TLS1_AD_BAD_CERTIFICATE_HASH_VALUE: 545221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom str="bad certificate hash value"; 546221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom break; 547221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom case TLS1_AD_UNKNOWN_PSK_IDENTITY: 548221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom str="unknown PSK identity"; 549221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom break; 550656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project default: str="unknown"; break; 551656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 552656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(str); 553656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 554656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 555656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst char *SSL_rstate_string(const SSL *s) 556656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 557656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const char *str; 558656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 559656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project switch (s->rstate) 560656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 561656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_ST_READ_HEADER:str="RH"; break; 562656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_ST_READ_BODY: str="RB"; break; 563656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case SSL_ST_READ_DONE: str="RD"; break; 564656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project default: str="unknown"; break; 565656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 566656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(str); 567656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 568