]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/man/OCSP_request_add1_nonce.3
MFC: r340705, r340708
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / man / OCSP_request_add1_nonce.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 "OCSP_REQUEST_ADD1_NONCE 3"
132 .TH OCSP_REQUEST_ADD1_NONCE 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 OCSP_request_add1_nonce, OCSP_basic_add1_nonce, OCSP_check_nonce, OCSP_copy_nonce \- OCSP nonce functions
139 .SH "SYNOPSIS"
140 .IX Header "SYNOPSIS"
141 .Vb 1
142 \& #include <openssl/ocsp.h>
143 \&
144 \& int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len);
145 \& int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len);
146 \& int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req);
147 \& int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *resp);
148 .Ve
149 .SH "DESCRIPTION"
150 .IX Header "DESCRIPTION"
151 \&\fIOCSP_request_add1_nonce()\fR adds a nonce of value \fBval\fR and length \fBlen\fR to
152 \&\s-1OCSP\s0 request \fBreq\fR. If \fBval\fR is \fB\s-1NULL\s0\fR a random nonce is used. If \fBlen\fR
153 is zero or negative a default length will be used (currently 16 bytes).
154 .PP
155 \&\fIOCSP_basic_add1_nonce()\fR is identical to \fIOCSP_request_add1_nonce()\fR except
156 it adds a nonce to \s-1OCSP\s0 basic response \fBresp\fR.
157 .PP
158 \&\fIOCSP_check_nonce()\fR compares the nonce value in \fBreq\fR and \fBresp\fR.
159 .PP
160 \&\fIOCSP_copy_nonce()\fR copys any nonce value present in \fBreq\fR to \fBresp\fR.
161 .SH "RETURN VALUES"
162 .IX Header "RETURN VALUES"
163 \&\fIOCSP_request_add1_nonce()\fR and \fIOCSP_basic_add1_nonce()\fR return 1 for success
164 and 0 for failure.
165 .PP
166 \&\fIOCSP_copy_nonce()\fR returns 1 if a nonce was successfully copied, 2 if no nonce
167 was present in \fBreq\fR and 0 if an error occurred.
168 .PP
169 \&\fIOCSP_check_nonce()\fR returns the result of the nonce comparison between \fBreq\fR
170 and \fBresp\fR. The return value indicates the result of the comparison.  If
171 nonces are present and equal 1 is returned. If the nonces are absent 2 is
172 returned. If a nonce is present in the response only 3 is returned. If nonces
173 are present and unequal 0 is returned. If the nonce is present in the request
174 only then \-1 is returned.
175 .SH "NOTES"
176 .IX Header "NOTES"
177 For most purposes the nonce value in a request is set to a random value so
178 the \fBval\fR parameter in \fIOCSP_request_add1_nonce()\fR is usually \s-1NULL.\s0
179 .PP
180 An \s-1OCSP\s0 nonce is typically added to an \s-1OCSP\s0 request to thwart replay attacks
181 by checking the same nonce value appears in the response.
182 .PP
183 Some responders may include a nonce in all responses even if one is not
184 supplied.
185 .PP
186 Some responders cache \s-1OCSP\s0 responses and do not sign each response for
187 performance reasons. As a result they do not support nonces.
188 .PP
189 The return values of \fIOCSP_check_nonce()\fR can be checked to cover each case.  A
190 positive return value effectively indicates success: nonces are both present
191 and match, both absent or present in the response only. A non-zero return
192 additionally covers the case where the nonce is present in the request only:
193 this will happen if the responder doesn't support nonces. A zero return value
194 indicates present and mismatched nonces: this should be treated as an error
195 condition.
196 .SH "SEE ALSO"
197 .IX Header "SEE ALSO"
198 \&\fIcrypto\fR\|(7),
199 \&\fIOCSP_cert_to_id\fR\|(3),
200 \&\fIOCSP_REQUEST_new\fR\|(3),
201 \&\fIOCSP_resp_find_status\fR\|(3),
202 \&\fIOCSP_response_status\fR\|(3),
203 \&\fIOCSP_sendreq_new\fR\|(3)
204 .SH "COPYRIGHT"
205 .IX Header "COPYRIGHT"
206 Copyright 2015\-2016 The OpenSSL Project Authors. All Rights Reserved.
207 .PP
208 Licensed under the OpenSSL license (the \*(L"License\*(R").  You may not use
209 this file except in compliance with the License.  You can obtain a copy
210 in the file \s-1LICENSE\s0 in the source distribution or at
211 <https://www.openssl.org/source/license.html>.