1 /* 2 * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. 3 * Copyright 2005 Nokia. All rights reserved. 4 * 5 * Licensed under the OpenSSL license (the "License"). You may not use 6 * this file except in compliance with the License. You can obtain a copy 7 * in the file LICENSE in the source distribution or at 8 * https://www.openssl.org/source/license.html 9 */ 10 11 #include <openssl/ssl.h> 12 13 #include <assert.h> 14 15 #include "internal.h" 16 17 SSL_state_string_long(const SSL * ssl)18const char *SSL_state_string_long(const SSL *ssl) { 19 if (ssl->s3->hs == nullptr) { 20 return "SSL negotiation finished successfully"; 21 } 22 23 return ssl->server ? ssl_server_handshake_state(ssl->s3->hs.get()) 24 : ssl_client_handshake_state(ssl->s3->hs.get()); 25 } 26 SSL_state_string(const SSL * ssl)27const char *SSL_state_string(const SSL *ssl) { return "!!!!!!"; } 28 SSL_alert_type_string_long(int value)29const char *SSL_alert_type_string_long(int value) { 30 value >>= 8; 31 if (value == SSL3_AL_WARNING) { 32 return "warning"; 33 } else if (value == SSL3_AL_FATAL) { 34 return "fatal"; 35 } 36 37 return "unknown"; 38 } 39 SSL_alert_type_string(int value)40const char *SSL_alert_type_string(int value) { return "!"; } 41 SSL_alert_desc_string(int value)42const char *SSL_alert_desc_string(int value) { return "!!"; } 43 SSL_alert_desc_string_long(int value)44const char *SSL_alert_desc_string_long(int value) { 45 switch (value & 0xff) { 46 case SSL3_AD_CLOSE_NOTIFY: 47 return "close notify"; 48 49 case SSL3_AD_UNEXPECTED_MESSAGE: 50 return "unexpected_message"; 51 52 case SSL3_AD_BAD_RECORD_MAC: 53 return "bad record mac"; 54 55 case SSL3_AD_DECOMPRESSION_FAILURE: 56 return "decompression failure"; 57 58 case SSL3_AD_HANDSHAKE_FAILURE: 59 return "handshake failure"; 60 61 case SSL3_AD_NO_CERTIFICATE: 62 return "no certificate"; 63 64 case SSL3_AD_BAD_CERTIFICATE: 65 return "bad certificate"; 66 67 case SSL3_AD_UNSUPPORTED_CERTIFICATE: 68 return "unsupported certificate"; 69 70 case SSL3_AD_CERTIFICATE_REVOKED: 71 return "certificate revoked"; 72 73 case SSL3_AD_CERTIFICATE_EXPIRED: 74 return "certificate expired"; 75 76 case SSL3_AD_CERTIFICATE_UNKNOWN: 77 return "certificate unknown"; 78 79 case SSL3_AD_ILLEGAL_PARAMETER: 80 return "illegal parameter"; 81 82 case TLS1_AD_DECRYPTION_FAILED: 83 return "decryption failed"; 84 85 case TLS1_AD_RECORD_OVERFLOW: 86 return "record overflow"; 87 88 case TLS1_AD_UNKNOWN_CA: 89 return "unknown CA"; 90 91 case TLS1_AD_ACCESS_DENIED: 92 return "access denied"; 93 94 case TLS1_AD_DECODE_ERROR: 95 return "decode error"; 96 97 case TLS1_AD_DECRYPT_ERROR: 98 return "decrypt error"; 99 100 case TLS1_AD_EXPORT_RESTRICTION: 101 return "export restriction"; 102 103 case TLS1_AD_PROTOCOL_VERSION: 104 return "protocol version"; 105 106 case TLS1_AD_INSUFFICIENT_SECURITY: 107 return "insufficient security"; 108 109 case TLS1_AD_INTERNAL_ERROR: 110 return "internal error"; 111 112 case SSL3_AD_INAPPROPRIATE_FALLBACK: 113 return "inappropriate fallback"; 114 115 case TLS1_AD_USER_CANCELLED: 116 return "user canceled"; 117 118 case TLS1_AD_NO_RENEGOTIATION: 119 return "no renegotiation"; 120 121 case TLS1_AD_MISSING_EXTENSION: 122 return "missing extension"; 123 124 case TLS1_AD_UNSUPPORTED_EXTENSION: 125 return "unsupported extension"; 126 127 case TLS1_AD_CERTIFICATE_UNOBTAINABLE: 128 return "certificate unobtainable"; 129 130 case TLS1_AD_UNRECOGNIZED_NAME: 131 return "unrecognized name"; 132 133 case TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE: 134 return "bad certificate status response"; 135 136 case TLS1_AD_BAD_CERTIFICATE_HASH_VALUE: 137 return "bad certificate hash value"; 138 139 case TLS1_AD_UNKNOWN_PSK_IDENTITY: 140 return "unknown PSK identity"; 141 142 case TLS1_AD_CERTIFICATE_REQUIRED: 143 return "certificate required"; 144 145 case TLS1_AD_NO_APPLICATION_PROTOCOL: 146 return "no application protocol"; 147 148 case TLS1_AD_ECH_REQUIRED: 149 return "ECH required"; 150 151 default: 152 return "unknown"; 153 } 154 } 155