]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/man/man3/SSL_get_shared_sigalgs.3
OpenSSL: Regen manual pages for OpenSSL 1.1.1o
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / man / man3 / SSL_get_shared_sigalgs.3
1 .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
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 .nr rF 0
58 .if \n(.g .if rF .nr rF 1
59 .if (\n(rF:(\n(.g==0)) \{\
60 .    if \nF \{\
61 .        de IX
62 .        tm Index:\\$1\t\\n%\t"\\$2"
63 ..
64 .        if !\nF==2 \{\
65 .            nr % 0
66 .            nr F 2
67 .        \}
68 .    \}
69 .\}
70 .rr rF
71 .\"
72 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
73 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
74 .    \" fudge factors for nroff and troff
75 .if n \{\
76 .    ds #H 0
77 .    ds #V .8m
78 .    ds #F .3m
79 .    ds #[ \f1
80 .    ds #] \fP
81 .\}
82 .if t \{\
83 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
84 .    ds #V .6m
85 .    ds #F 0
86 .    ds #[ \&
87 .    ds #] \&
88 .\}
89 .    \" simple accents for nroff and troff
90 .if n \{\
91 .    ds ' \&
92 .    ds ` \&
93 .    ds ^ \&
94 .    ds , \&
95 .    ds ~ ~
96 .    ds /
97 .\}
98 .if t \{\
99 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
100 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
101 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
102 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
103 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
104 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
105 .\}
106 .    \" troff and (daisy-wheel) nroff accents
107 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
108 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
109 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
110 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
111 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
112 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
113 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
114 .ds ae a\h'-(\w'a'u*4/10)'e
115 .ds Ae A\h'-(\w'A'u*4/10)'E
116 .    \" corrections for vroff
117 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
118 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
119 .    \" for low resolution devices (crt and lpr)
120 .if \n(.H>23 .if \n(.V>19 \
121 \{\
122 .    ds : e
123 .    ds 8 ss
124 .    ds o a
125 .    ds d- d\h'-1'\(ga
126 .    ds D- D\h'-1'\(hy
127 .    ds th \o'bp'
128 .    ds Th \o'LP'
129 .    ds ae ae
130 .    ds Ae AE
131 .\}
132 .rm #[ #] #H #V #F C
133 .\" ========================================================================
134 .\"
135 .IX Title "SSL_GET_SHARED_SIGALGS 3"
136 .TH SSL_GET_SHARED_SIGALGS 3 "2022-05-03" "1.1.1o" "OpenSSL"
137 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
138 .\" way too many mistakes in technical documents.
139 .if n .ad l
140 .nh
141 .SH "NAME"
142 SSL_get_shared_sigalgs, SSL_get_sigalgs \- get supported signature algorithms
143 .SH "SYNOPSIS"
144 .IX Header "SYNOPSIS"
145 .Vb 1
146 \& #include <openssl/ssl.h>
147 \&
148 \& int SSL_get_shared_sigalgs(SSL *s, int idx,
149 \&                            int *psign, int *phash, int *psignhash,
150 \&                            unsigned char *rsig, unsigned char *rhash);
151 \&
152 \& int SSL_get_sigalgs(SSL *s, int idx,
153 \&                     int *psign, int *phash, int *psignhash,
154 \&                     unsigned char *rsig, unsigned char *rhash);
155 .Ve
156 .SH "DESCRIPTION"
157 .IX Header "DESCRIPTION"
158 \&\fBSSL_get_shared_sigalgs()\fR returns information about the shared signature
159 algorithms supported by peer \fBs\fR. The parameter \fBidx\fR indicates the index
160 of the shared signature algorithm to return starting from zero. The signature
161 algorithm \s-1NID\s0 is written to \fB*psign\fR, the hash \s-1NID\s0 to \fB*phash\fR and the
162 sign and hash \s-1NID\s0 to \fB*psignhash\fR. The raw signature and hash values
163 are written to \fB*rsig\fR and \fB*rhash\fR.
164 .PP
165 \&\fBSSL_get_sigalgs()\fR is similar to \fBSSL_get_shared_sigalgs()\fR except it returns
166 information about all signature algorithms supported by \fBs\fR in the order
167 they were sent by the peer.
168 .SH "RETURN VALUES"
169 .IX Header "RETURN VALUES"
170 \&\fBSSL_get_shared_sigalgs()\fR and \fBSSL_get_sigalgs()\fR return the number of
171 signature algorithms or \fB0\fR if the \fBidx\fR parameter is out of range.
172 .SH "NOTES"
173 .IX Header "NOTES"
174 These functions are typically called for debugging purposes (to report
175 the peer's preferences) or where an application wants finer control over
176 certificate selection. Most applications will rely on internal handling
177 and will not need to call them.
178 .PP
179 If an application is only interested in the highest preference shared
180 signature algorithm it can just set \fBidx\fR to zero.
181 .PP
182 Any or all of the parameters \fBpsign\fR, \fBphash\fR, \fBpsignhash\fR, \fBrsig\fR or
183 \&\fBrhash\fR can be set to \fB\s-1NULL\s0\fR if the value is not required. By setting
184 them all to \fB\s-1NULL\s0\fR and setting \fBidx\fR to zero the total number of
185 signature algorithms can be determined: which can be zero.
186 .PP
187 These functions must be called after the peer has sent a list of supported
188 signature algorithms: after a client hello (for servers) or a certificate
189 request (for clients). They can (for example) be called in the certificate
190 callback.
191 .PP
192 Only \s-1TLS 1.2, TLS 1.3\s0 and \s-1DTLS 1.2\s0 currently support signature algorithms.
193 If these
194 functions are called on an earlier version of \s-1TLS\s0 or \s-1DTLS\s0 zero is returned.
195 .PP
196 The shared signature algorithms returned by \fBSSL_get_shared_sigalgs()\fR are
197 ordered according to configuration and peer preferences.
198 .PP
199 The raw values correspond to the on the wire form as defined by \s-1RFC5246\s0 et al.
200 The NIDs are OpenSSL equivalents. For example if the peer sent \fBsha256\fR\|(4) and
201 \&\fBrsa\fR\|(1) then \fB*rhash\fR would be 4, \fB*rsign\fR 1, \fB*phash\fR NID_sha256, \fB*psig\fR
202 NID_rsaEncryption and \fB*psighash\fR NID_sha256WithRSAEncryption.
203 .PP
204 If a signature algorithm is not recognised the corresponding NIDs
205 will be set to \fBNID_undef\fR. This may be because the value is not supported,
206 is not an appropriate combination (for example \s-1MD5\s0 and \s-1DSA\s0) or the
207 signature algorithm does not use a hash (for example Ed25519).
208 .SH "SEE ALSO"
209 .IX Header "SEE ALSO"
210 \&\fBSSL_CTX_set_cert_cb\fR\|(3),
211 \&\fBssl\fR\|(7)
212 .SH "COPYRIGHT"
213 .IX Header "COPYRIGHT"
214 Copyright 2015\-2018 The OpenSSL Project Authors. All Rights Reserved.
215 .PP
216 Licensed under the OpenSSL license (the \*(L"License\*(R").  You may not use
217 this file except in compliance with the License.  You can obtain a copy
218 in the file \s-1LICENSE\s0 in the source distribution or at
219 <https://www.openssl.org/source/license.html>.