1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
|
.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
. if \nF \{
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "SSL_alert_type_string 3"
.TH SSL_alert_type_string 3 "2016-09-26" "1.0.2j" "OpenSSL"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
SSL_alert_type_string, SSL_alert_type_string_long, SSL_alert_desc_string, SSL_alert_desc_string_long \- get textual description of alert information
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& #include <openssl/ssl.h>
\&
\& const char *SSL_alert_type_string(int value);
\& const char *SSL_alert_type_string_long(int value);
\&
\& const char *SSL_alert_desc_string(int value);
\& const char *SSL_alert_desc_string_long(int value);
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fISSL_alert_type_string()\fR returns a one letter string indicating the
type of the alert specified by \fBvalue\fR.
.PP
\&\fISSL_alert_type_string_long()\fR returns a string indicating the type of the alert
specified by \fBvalue\fR.
.PP
\&\fISSL_alert_desc_string()\fR returns a two letter string as a short form
describing the reason of the alert specified by \fBvalue\fR.
.PP
\&\fISSL_alert_desc_string_long()\fR returns a string describing the reason
of the alert specified by \fBvalue\fR.
.SH "NOTES"
.IX Header "NOTES"
When one side of an \s-1SSL/TLS\s0 communication wants to inform the peer about
a special situation, it sends an alert. The alert is sent as a special message
and does not influence the normal data stream (unless its contents results
in the communication being canceled).
.PP
A warning alert is sent, when a non-fatal error condition occurs. The
\&\*(L"close notify\*(R" alert is sent as a warning alert. Other examples for
non-fatal errors are certificate errors (\*(L"certificate expired\*(R",
\&\*(L"unsupported certificate\*(R"), for which a warning alert may be sent.
(The sending party may however decide to send a fatal error.) The
receiving side may cancel the connection on reception of a warning
alert on it discretion.
.PP
Several alert messages must be sent as fatal alert messages as specified
by the \s-1TLS RFC. A\s0 fatal alert always leads to a connection abort.
.SH "RETURN VALUES"
.IX Header "RETURN VALUES"
The following strings can occur for \fISSL_alert_type_string()\fR or
\&\fISSL_alert_type_string_long()\fR:
.ie n .IP """W""/""warning""" 4
.el .IP "``W''/``warning''" 4
.IX Item "W/warning"
.PD 0
.ie n .IP """F""/""fatal""" 4
.el .IP "``F''/``fatal''" 4
.IX Item "F/fatal"
.ie n .IP """U""/""unknown""" 4
.el .IP "``U''/``unknown''" 4
.IX Item "U/unknown"
.PD
This indicates that no support is available for this alert type.
Probably \fBvalue\fR does not contain a correct alert message.
.PP
The following strings can occur for \fISSL_alert_desc_string()\fR or
\&\fISSL_alert_desc_string_long()\fR:
.ie n .IP """\s-1CN""/\s0""close notify""" 4
.el .IP "``\s-1CN''/\s0``close notify''" 4
.IX Item "CN/close notify"
The connection shall be closed. This is a warning alert.
.ie n .IP """\s-1UM""/\s0""unexpected message""" 4
.el .IP "``\s-1UM''/\s0``unexpected message''" 4
.IX Item "UM/unexpected message"
An inappropriate message was received. This alert is always fatal
and should never be observed in communication between proper
implementations.
.ie n .IP """\s-1BM""/\s0""bad record mac""" 4
.el .IP "``\s-1BM''/\s0``bad record mac''" 4
.IX Item "BM/bad record mac"
This alert is returned if a record is received with an incorrect
\&\s-1MAC.\s0 This message is always fatal.
.ie n .IP """\s-1DF""/\s0""decompression failure""" 4
.el .IP "``\s-1DF''/\s0``decompression failure''" 4
.IX Item "DF/decompression failure"
The decompression function received improper input (e.g. data
that would expand to excessive length). This message is always
fatal.
.ie n .IP """\s-1HF""/\s0""handshake failure""" 4
.el .IP "``\s-1HF''/\s0``handshake failure''" 4
.IX Item "HF/handshake failure"
Reception of a handshake_failure alert message indicates that the
sender was unable to negotiate an acceptable set of security
parameters given the options available. This is a fatal error.
.ie n .IP """\s-1NC""/\s0""no certificate""" 4
.el .IP "``\s-1NC''/\s0``no certificate''" 4
.IX Item "NC/no certificate"
A client, that was asked to send a certificate, does not send a certificate
(SSLv3 only).
.ie n .IP """\s-1BC""/\s0""bad certificate""" 4
.el .IP "``\s-1BC''/\s0``bad certificate''" 4
.IX Item "BC/bad certificate"
A certificate was corrupt, contained signatures that did not
verify correctly, etc
.ie n .IP """\s-1UC""/\s0""unsupported certificate""" 4
.el .IP "``\s-1UC''/\s0``unsupported certificate''" 4
.IX Item "UC/unsupported certificate"
A certificate was of an unsupported type.
.ie n .IP """\s-1CR""/\s0""certificate revoked""" 4
.el .IP "``\s-1CR''/\s0``certificate revoked''" 4
.IX Item "CR/certificate revoked"
A certificate was revoked by its signer.
.ie n .IP """\s-1CE""/\s0""certificate expired""" 4
.el .IP "``\s-1CE''/\s0``certificate expired''" 4
.IX Item "CE/certificate expired"
A certificate has expired or is not currently valid.
.ie n .IP """\s-1CU""/\s0""certificate unknown""" 4
.el .IP "``\s-1CU''/\s0``certificate unknown''" 4
.IX Item "CU/certificate unknown"
Some other (unspecified) issue arose in processing the
certificate, rendering it unacceptable.
.ie n .IP """\s-1IP""/\s0""illegal parameter""" 4
.el .IP "``\s-1IP''/\s0``illegal parameter''" 4
.IX Item "IP/illegal parameter"
A field in the handshake was out of range or inconsistent with
other fields. This is always fatal.
.ie n .IP """\s-1DC""/\s0""decryption failed""" 4
.el .IP "``\s-1DC''/\s0``decryption failed''" 4
.IX Item "DC/decryption failed"
A TLSCiphertext decrypted in an invalid way: either it wasn't an
even multiple of the block length or its padding values, when
checked, weren't correct. This message is always fatal.
.ie n .IP """\s-1RO""/\s0""record overflow""" 4
.el .IP "``\s-1RO''/\s0``record overflow''" 4
.IX Item "RO/record overflow"
A TLSCiphertext record was received which had a length more than
2^14+2048 bytes, or a record decrypted to a TLSCompressed record
with more than 2^14+1024 bytes. This message is always fatal.
.ie n .IP """\s-1CA""/\s0""unknown \s-1CA""\s0" 4
.el .IP "``\s-1CA''/\s0``unknown \s-1CA''\s0" 4
.IX Item "CA/unknown CA"
A valid certificate chain or partial chain was received, but the
certificate was not accepted because the \s-1CA\s0 certificate could not
be located or couldn't be matched with a known, trusted \s-1CA. \s0 This
message is always fatal.
.ie n .IP """\s-1AD""/\s0""access denied""" 4
.el .IP "``\s-1AD''/\s0``access denied''" 4
.IX Item "AD/access denied"
A valid certificate was received, but when access control was
applied, the sender decided not to proceed with negotiation.
This message is always fatal.
.ie n .IP """\s-1DE""/\s0""decode error""" 4
.el .IP "``\s-1DE''/\s0``decode error''" 4
.IX Item "DE/decode error"
A message could not be decoded because some field was out of the
specified range or the length of the message was incorrect. This
message is always fatal.
.ie n .IP """\s-1CY""/\s0""decrypt error""" 4
.el .IP "``\s-1CY''/\s0``decrypt error''" 4
.IX Item "CY/decrypt error"
A handshake cryptographic operation failed, including being
unable to correctly verify a signature, decrypt a key exchange,
or validate a finished message.
.ie n .IP """\s-1ER""/\s0""export restriction""" 4
.el .IP "``\s-1ER''/\s0``export restriction''" 4
.IX Item "ER/export restriction"
A negotiation not in compliance with export restrictions was
detected; for example, attempting to transfer a 1024 bit
ephemeral \s-1RSA\s0 key for the \s-1RSA_EXPORT\s0 handshake method. This
message is always fatal.
.ie n .IP """\s-1PV""/\s0""protocol version""" 4
.el .IP "``\s-1PV''/\s0``protocol version''" 4
.IX Item "PV/protocol version"
The protocol version the client has attempted to negotiate is
recognized, but not supported. (For example, old protocol
versions might be avoided for security reasons). This message is
always fatal.
.ie n .IP """\s-1IS""/\s0""insufficient security""" 4
.el .IP "``\s-1IS''/\s0``insufficient security''" 4
.IX Item "IS/insufficient security"
Returned instead of handshake_failure when a negotiation has
failed specifically because the server requires ciphers more
secure than those supported by the client. This message is always
fatal.
.ie n .IP """\s-1IE""/\s0""internal error""" 4
.el .IP "``\s-1IE''/\s0``internal error''" 4
.IX Item "IE/internal error"
An internal error unrelated to the peer or the correctness of the
protocol makes it impossible to continue (such as a memory
allocation failure). This message is always fatal.
.ie n .IP """\s-1US""/\s0""user canceled""" 4
.el .IP "``\s-1US''/\s0``user canceled''" 4
.IX Item "US/user canceled"
This handshake is being canceled for some reason unrelated to a
protocol failure. If the user cancels an operation after the
handshake is complete, just closing the connection by sending a
close_notify is more appropriate. This alert should be followed
by a close_notify. This message is generally a warning.
.ie n .IP """\s-1NR""/\s0""no renegotiation""" 4
.el .IP "``\s-1NR''/\s0``no renegotiation''" 4
.IX Item "NR/no renegotiation"
Sent by the client in response to a hello request or by the
server in response to a client hello after initial handshaking.
Either of these would normally lead to renegotiation; when that
is not appropriate, the recipient should respond with this alert;
at that point, the original requester can decide whether to
proceed with the connection. One case where this would be
appropriate would be where a server has spawned a process to
satisfy a request; the process might receive security parameters
(key length, authentication, etc.) at startup and it might be
difficult to communicate changes to these parameters after that
point. This message is always a warning.
.ie n .IP """\s-1UP""/\s0""unknown \s-1PSK\s0 identity""" 4
.el .IP "``\s-1UP''/\s0``unknown \s-1PSK\s0 identity''" 4
.IX Item "UP/unknown PSK identity"
Sent by the server to indicate that it does not recognize a \s-1PSK\s0
identity or an \s-1SRP\s0 identity.
.ie n .IP """\s-1UK""/\s0""unknown""" 4
.el .IP "``\s-1UK''/\s0``unknown''" 4
.IX Item "UK/unknown"
This indicates that no description is available for this alert type.
Probably \fBvalue\fR does not contain a correct alert message.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIssl\fR\|(3), \fISSL_CTX_set_info_callback\fR\|(3)
|