1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ssl/ssl_txt.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 <openssl/buffer.h> 87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "ssl_locl.h" 88656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_FP_API 90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *x) 91656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project BIO *b; 93656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int ret; 94656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 95656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if ((b=BIO_new(BIO_s_file_internal())) == NULL) 96656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 97656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSLerr(SSL_F_SSL_SESSION_PRINT_FP,ERR_R_BUF_LIB); 98656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 99656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project BIO_set_fp(b,fp,BIO_NOCLOSE); 101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=SSL_SESSION_print(b,x); 102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project BIO_free(b); 103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(ret); 104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint SSL_SESSION_print(BIO *bp, const SSL_SESSION *x) 108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned int i; 110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const char *s; 111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (x == NULL) goto err; 113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_puts(bp,"SSL-Session:\n") <= 0) goto err; 114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (x->ssl_version == SSL2_VERSION) 115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s="SSLv2"; 116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else if (x->ssl_version == SSL3_VERSION) 117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s="SSLv3"; 118392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom else if (x->ssl_version == TLS1_2_VERSION) 119392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom s="TLSv1.2"; 120392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom else if (x->ssl_version == TLS1_1_VERSION) 121392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom s="TLSv1.1"; 122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else if (x->ssl_version == TLS1_VERSION) 123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s="TLSv1"; 12498d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom else if (x->ssl_version == DTLS1_VERSION) 12598d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom s="DTLSv1"; 12698d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom else if (x->ssl_version == DTLS1_BAD_VER) 12798d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom s="DTLSv1-bad"; 128656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project s="unknown"; 130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_printf(bp," Protocol : %s\n",s) <= 0) goto err; 131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (x->cipher == NULL) 133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (((x->cipher_id) & 0xff000000) == 0x02000000) 135656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_printf(bp," Cipher : %06lX\n",x->cipher_id&0xffffff) <= 0) 137656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project goto err; 138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 141656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_printf(bp," Cipher : %04lX\n",x->cipher_id&0xffff) <= 0) 142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project goto err; 143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_printf(bp," Cipher : %s\n",((x->cipher == NULL)?"unknown":x->cipher->name)) <= 0) 148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project goto err; 149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_puts(bp," Session-ID: ") <= 0) goto err; 151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project for (i=0; i<x->session_id_length; i++) 152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_printf(bp,"%02X",x->session_id[i]) <= 0) goto err; 154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_puts(bp,"\n Session-ID-ctx: ") <= 0) goto err; 156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project for (i=0; i<x->sid_ctx_length; i++) 157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_printf(bp,"%02X",x->sid_ctx[i]) <= 0) 159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project goto err; 160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_puts(bp,"\n Master-Key: ") <= 0) goto err; 162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project for (i=0; i<(unsigned int)x->master_key_length; i++) 163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_printf(bp,"%02X",x->master_key[i]) <= 0) goto err; 165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_puts(bp,"\n Key-Arg : ") <= 0) goto err; 167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (x->key_arg_length == 0) 168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_puts(bp,"None") <= 0) goto err; 170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project for (i=0; i<x->key_arg_length; i++) 173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_printf(bp,"%02X",x->key_arg[i]) <= 0) goto err; 175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_KRB5 177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_puts(bp,"\n Krb5 Principal: ") <= 0) goto err; 178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (x->krb5_client_princ_len == 0) 179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_puts(bp,"None") <= 0) goto err; 181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project for (i=0; i<x->krb5_client_princ_len; i++) 184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_printf(bp,"%02X",x->krb5_client_princ[i]) <= 0) goto err; 186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* OPENSSL_NO_KRB5 */ 188221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifndef OPENSSL_NO_PSK 189221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (BIO_puts(bp,"\n PSK identity: ") <= 0) goto err; 190221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (BIO_printf(bp, "%s", x->psk_identity ? x->psk_identity : "None") <= 0) goto err; 191221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (BIO_puts(bp,"\n PSK identity hint: ") <= 0) goto err; 192221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom if (BIO_printf(bp, "%s", x->psk_identity_hint ? x->psk_identity_hint : "None") <= 0) goto err; 193221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif 194392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifndef OPENSSL_NO_SRP 195392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom if (BIO_puts(bp,"\n SRP username: ") <= 0) goto err; 196392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom if (BIO_printf(bp, "%s", x->srp_username ? x->srp_username : "None") <= 0) goto err; 197392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_TLSEXT 199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (x->tlsext_tick_lifetime_hint) 200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_printf(bp, 202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project "\n TLS session ticket lifetime hint: %ld (seconds)", 203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project x->tlsext_tick_lifetime_hint) <=0) 204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project goto err; 205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (x->tlsext_tick) 207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_puts(bp, "\n TLS session ticket:\n") <= 0) goto err; 209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_dump_indent(bp, (char *)x->tlsext_tick, x->tlsext_ticklen, 4) <= 0) 210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project goto err; 211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 213221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 214656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_COMP 215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (x->compress_meth != 0) 216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project SSL_COMP *comp = NULL; 218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 219221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ssl_cipher_get_evp(x,NULL,NULL,NULL,NULL,&comp); 220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (comp == NULL) 221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 22298d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom if (BIO_printf(bp,"\n Compression: %d",x->compress_meth) <= 0) goto err; 223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 22698d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom if (BIO_printf(bp,"\n Compression: %d (%s)", comp->id,comp->method->name) <= 0) goto err; 227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 229656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (x->time != 0L) 231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_printf(bp, "\n Start Time: %ld",x->time) <= 0) goto err; 233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (x->timeout != 0L) 235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_printf(bp, "\n Timeout : %ld (sec)",x->timeout) <= 0) goto err; 237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_puts(bp,"\n") <= 0) goto err; 239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_puts(bp, " Verify return code: ") <= 0) goto err; 241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (BIO_printf(bp, "%ld (%s)\n", x->verify_result, 242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509_verify_cert_error_string(x->verify_result)) <= 0) goto err; 243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(1); 245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecterr: 246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 249