]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/man/SSL_get_client_random.3
Regen manual pages.
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / man / SSL_get_client_random.3
1 .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 .    ds C`
42 .    ds C'
43 'br\}
44 .\"
45 .\" Escape single quotes in literal strings from groff's Unicode transform.
46 .ie \n(.g .ds Aq \(aq
47 .el       .ds Aq '
48 .\"
49 .\" If the F register is >0, we'll generate index entries on stderr for
50 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
51 .\" entries marked with X<> in POD.  Of course, you'll have to process the
52 .\" output yourself in some meaningful fashion.
53 .\"
54 .\" Avoid warning from groff about undefined register 'F'.
55 .de IX
56 ..
57 .if !\nF .nr F 0
58 .if \nF>0 \{\
59 .    de IX
60 .    tm Index:\\$1\t\\n%\t"\\$2"
61 ..
62 .    if !\nF==2 \{\
63 .        nr % 0
64 .        nr F 2
65 .    \}
66 .\}
67 .\"
68 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
70 .    \" fudge factors for nroff and troff
71 .if n \{\
72 .    ds #H 0
73 .    ds #V .8m
74 .    ds #F .3m
75 .    ds #[ \f1
76 .    ds #] \fP
77 .\}
78 .if t \{\
79 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80 .    ds #V .6m
81 .    ds #F 0
82 .    ds #[ \&
83 .    ds #] \&
84 .\}
85 .    \" simple accents for nroff and troff
86 .if n \{\
87 .    ds ' \&
88 .    ds ` \&
89 .    ds ^ \&
90 .    ds , \&
91 .    ds ~ ~
92 .    ds /
93 .\}
94 .if t \{\
95 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101 .\}
102 .    \" troff and (daisy-wheel) nroff accents
103 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110 .ds ae a\h'-(\w'a'u*4/10)'e
111 .ds Ae A\h'-(\w'A'u*4/10)'E
112 .    \" corrections for vroff
113 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115 .    \" for low resolution devices (crt and lpr)
116 .if \n(.H>23 .if \n(.V>19 \
117 \{\
118 .    ds : e
119 .    ds 8 ss
120 .    ds o a
121 .    ds d- d\h'-1'\(ga
122 .    ds D- D\h'-1'\(hy
123 .    ds th \o'bp'
124 .    ds Th \o'LP'
125 .    ds ae ae
126 .    ds Ae AE
127 .\}
128 .rm #[ #] #H #V #F C
129 .\" ========================================================================
130 .\"
131 .IX Title "SSL_GET_CLIENT_RANDOM 3"
132 .TH SSL_GET_CLIENT_RANDOM 3 "2018-09-11" "1.1.1" "OpenSSL"
133 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
134 .\" way too many mistakes in technical documents.
135 .if n .ad l
136 .nh
137 .SH "NAME"
138 SSL_get_client_random, SSL_get_server_random, SSL_SESSION_get_master_key, SSL_SESSION_set1_master_key \&\- get internal TLS/SSL random values and get/set master key
139 .SH "SYNOPSIS"
140 .IX Header "SYNOPSIS"
141 .Vb 1
142 \& #include <openssl/ssl.h>
143 \&
144 \& size_t SSL_get_client_random(const SSL *ssl, unsigned char *out, size_t outlen);
145 \& size_t SSL_get_server_random(const SSL *ssl, unsigned char *out, size_t outlen);
146 \& size_t SSL_SESSION_get_master_key(const SSL_SESSION *session,
147 \&                                   unsigned char *out, size_t outlen);
148 \& int SSL_SESSION_set1_master_key(SSL_SESSION *sess, const unsigned char *in,
149 \&                                 size_t len);
150 .Ve
151 .SH "DESCRIPTION"
152 .IX Header "DESCRIPTION"
153 \&\fISSL_get_client_random()\fR extracts the random value sent from the client
154 to the server during the initial \s-1SSL/TLS\s0 handshake.  It copies as many
155 bytes as it can of this value into the buffer provided in \fBout\fR,
156 which must have at least \fBoutlen\fR bytes available. It returns the
157 total number of bytes that were actually copied.  If \fBoutlen\fR is
158 zero, \fISSL_get_client_random()\fR copies nothing, and returns the
159 total size of the client_random value.
160 .PP
161 \&\fISSL_get_server_random()\fR behaves the same, but extracts the random value
162 sent from the server to the client during the initial \s-1SSL/TLS\s0 handshake.
163 .PP
164 \&\fISSL_SESSION_get_master_key()\fR behaves the same, but extracts the master
165 secret used to guarantee the security of the \s-1SSL/TLS\s0 session.  This one
166 can be dangerous if misused; see \s-1NOTES\s0 below.
167 .PP
168 \&\fISSL_SESSION_set1_master_key()\fR sets the master key value associated with the
169 \&\s-1SSL_SESSION\s0 \fBsess\fR. For example, this could be used to set up a session based
170 \&\s-1PSK\s0 (see \fISSL_CTX_set_psk_use_session_callback\fR\|(3)). The master key of length
171 \&\fBlen\fR should be provided at \fBin\fR. The supplied master key is copied by the
172 function, so the caller is responsible for freeing and cleaning any memory
173 associated with \fBin\fR. The caller must ensure that the length of the key is
174 suitable for the ciphersuite associated with the \s-1SSL_SESSION.\s0
175 .SH "NOTES"
176 .IX Header "NOTES"
177 You probably shouldn't use these functions.
178 .PP
179 These functions expose internal values from the \s-1TLS\s0 handshake, for
180 use in low-level protocols.  You probably should not use them, unless
181 you are implementing something that needs access to the internal protocol
182 details.
183 .PP
184 Despite the names of \fISSL_get_client_random()\fR and \fISSL_get_server_random()\fR, they
185 \&\s-1ARE NOT\s0 random number generators.  Instead, they return the mostly-random values that
186 were already generated and used in the \s-1TLS\s0 protocol.  Using them
187 in place of \fIRAND_bytes()\fR would be grossly foolish.
188 .PP
189 The security of your \s-1TLS\s0 session depends on keeping the master key secret:
190 do not expose it, or any information about it, to anybody.
191 If you need to calculate another secret value that depends on the master
192 secret, you should probably use \fISSL_export_keying_material()\fR instead, and
193 forget that you ever saw these functions.
194 .PP
195 In current versions of the \s-1TLS\s0 protocols, the length of client_random
196 (and also server_random) is always \s-1SSL3_RANDOM_SIZE\s0 bytes. Support for
197 other outlen arguments to the SSL_get_*\fI_random()\fR functions is provided
198 in case of the unlikely event that a future version or variant of \s-1TLS\s0
199 uses some other length there.
200 .PP
201 Finally, though the \*(L"client_random\*(R" and \*(L"server_random\*(R" values are called
202 \&\*(L"random\*(R", many \s-1TLS\s0 implementations will generate four bytes of those
203 values based on their view of the current time.
204 .SH "RETURN VALUES"
205 .IX Header "RETURN VALUES"
206 \&\fISSL_SESSION_set1_master_key()\fR returns 1 on success or 0 on failure.
207 .PP
208 For the other functions, if \fBoutlen\fR is greater than 0 then these functions
209 return the number of bytes actually copied, which will be less than or equal to
210 \&\fBoutlen\fR. If \fBoutlen\fR is 0 then these functions return the maximum number
211 of bytes they would copy \*(-- that is, the length of the underlying field.
212 .SH "SEE ALSO"
213 .IX Header "SEE ALSO"
214 \&\fIssl\fR\|(7),
215 \&\fIRAND_bytes\fR\|(3),
216 \&\fISSL_export_keying_material\fR\|(3),
217 \&\fISSL_CTX_set_psk_use_session_callback\fR\|(3)
218 .SH "COPYRIGHT"
219 .IX Header "COPYRIGHT"
220 Copyright 2015\-2017 The OpenSSL Project Authors. All Rights Reserved.
221 .PP
222 Licensed under the OpenSSL license (the \*(L"License\*(R").  You may not use
223 this file except in compliance with the License.  You can obtain a copy
224 in the file \s-1LICENSE\s0 in the source distribution or at
225 <https://www.openssl.org/source/license.html>.