]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/man/SSL_get_shared_sigalgs.3
MFV: r344395
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / man / SSL_get_shared_sigalgs.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_SHARED_SIGALGS 3"
132 .TH SSL_GET_SHARED_SIGALGS 3 "2018-11-20" "1.1.1a" "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_shared_sigalgs, SSL_get_sigalgs \- get supported signature algorithms
139 .SH "SYNOPSIS"
140 .IX Header "SYNOPSIS"
141 .Vb 1
142 \& #include <openssl/ssl.h>
143 \&
144 \& int SSL_get_shared_sigalgs(SSL *s, int idx,
145 \&                            int *psign, int *phash, int *psignhash,
146 \&                            unsigned char *rsig, unsigned char *rhash);
147 \&
148 \& int SSL_get_sigalgs(SSL *s, int idx,
149 \&                     int *psign, int *phash, int *psignhash,
150 \&                     unsigned char *rsig, unsigned char *rhash);
151 .Ve
152 .SH "DESCRIPTION"
153 .IX Header "DESCRIPTION"
154 \&\fISSL_get_shared_sigalgs()\fR returns information about the shared signature
155 algorithms supported by peer \fBs\fR. The parameter \fBidx\fR indicates the index
156 of the shared signature algorithm to return starting from zero. The signature
157 algorithm \s-1NID\s0 is written to \fB*psign\fR, the hash \s-1NID\s0 to \fB*phash\fR and the
158 sign and hash \s-1NID\s0 to \fB*psignhash\fR. The raw signature and hash values
159 are written to \fB*rsig\fR and \fB*rhash\fR.
160 .PP
161 \&\fISSL_get_sigalgs()\fR is similar to \fISSL_get_shared_sigalgs()\fR except it returns
162 information about all signature algorithms supported by \fBs\fR in the order
163 they were sent by the peer.
164 .SH "RETURN VALUES"
165 .IX Header "RETURN VALUES"
166 \&\fISSL_get_shared_sigalgs()\fR and \fISSL_get_sigalgs()\fR return the number of
167 signature algorithms or \fB0\fR if the \fBidx\fR parameter is out of range.
168 .SH "NOTES"
169 .IX Header "NOTES"
170 These functions are typically called for debugging purposes (to report
171 the peer's preferences) or where an application wants finer control over
172 certificate selection. Most applications will rely on internal handling
173 and will not need to call them.
174 .PP
175 If an application is only interested in the highest preference shared
176 signature algorithm it can just set \fBidx\fR to zero.
177 .PP
178 Any or all of the parameters \fBpsign\fR, \fBphash\fR, \fBpsignhash\fR, \fBrsig\fR or
179 \&\fBrhash\fR can be set to \fB\s-1NULL\s0\fR if the value is not required. By setting
180 them all to \fB\s-1NULL\s0\fR and setting \fBidx\fR to zero the total number of
181 signature algorithms can be determined: which can be zero.
182 .PP
183 These functions must be called after the peer has sent a list of supported
184 signature algorithms: after a client hello (for servers) or a certificate
185 request (for clients). They can (for example) be called in the certificate
186 callback.
187 .PP
188 Only \s-1TLS 1.2, TLS 1.3\s0 and \s-1DTLS 1.2\s0 currently support signature algorithms.
189 If these
190 functions are called on an earlier version of \s-1TLS\s0 or \s-1DTLS\s0 zero is returned.
191 .PP
192 The shared signature algorithms returned by \fISSL_get_shared_sigalgs()\fR are
193 ordered according to configuration and peer preferences.
194 .PP
195 The raw values correspond to the on the wire form as defined by \s-1RFC5246\s0 et al.
196 The NIDs are OpenSSL equivalents. For example if the peer sent \fIsha256\fR\|(4) and
197 \&\fIrsa\fR\|(1) then \fB*rhash\fR would be 4, \fB*rsign\fR 1, \fB*phash\fR NID_sha256, \fB*psig\fR
198 NID_rsaEncryption and \fB*psighash\fR NID_sha256WithRSAEncryption.
199 .PP
200 If a signature algorithm is not recognised the corresponding NIDs
201 will be set to \fBNID_undef\fR. This may be because the value is not supported,
202 is not an appropriate combination (for example \s-1MD5\s0 and \s-1DSA\s0) or the
203 signature algorithm does not use a hash (for example Ed25519).
204 .SH "SEE ALSO"
205 .IX Header "SEE ALSO"
206 \&\fISSL_CTX_set_cert_cb\fR\|(3),
207 \&\fIssl\fR\|(7)
208 .SH "COPYRIGHT"
209 .IX Header "COPYRIGHT"
210 Copyright 2015\-2018 The OpenSSL Project Authors. All Rights Reserved.
211 .PP
212 Licensed under the OpenSSL license (the \*(L"License\*(R").  You may not use
213 this file except in compliance with the License.  You can obtain a copy
214 in the file \s-1LICENSE\s0 in the source distribution or at
215 <https://www.openssl.org/source/license.html>.