• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)18 const 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)27 const char *SSL_state_string(const SSL *ssl) { return "!!!!!!"; }
28 
SSL_alert_type_string_long(int value)29 const 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)40 const char *SSL_alert_type_string(int value) { return "!"; }
41 
SSL_alert_desc_string(int value)42 const char *SSL_alert_desc_string(int value) { return "!!"; }
43 
SSL_alert_desc_string_long(int value)44 const 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