1.\"	$OpenBSD: d2i_OCSP_RESPONSE.3,v 1.4 2021/03/12 05:18:00 jsg Exp $
2.\"
3.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
4.\"
5.\" Permission to use, copy, modify, and distribute this software for any
6.\" purpose with or without fee is hereby granted, provided that the above
7.\" copyright notice and this permission notice appear in all copies.
8.\"
9.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16.\"
17.Dd $Mdocdate: March 12 2021 $
18.Dt D2I_OCSP_RESPONSE 3
19.Os
20.Sh NAME
21.Nm d2i_OCSP_RESPONSE ,
22.Nm i2d_OCSP_RESPONSE ,
23.Nm d2i_OCSP_RESPBYTES ,
24.Nm i2d_OCSP_RESPBYTES ,
25.Nm d2i_OCSP_BASICRESP ,
26.Nm i2d_OCSP_BASICRESP ,
27.Nm d2i_OCSP_RESPDATA ,
28.Nm i2d_OCSP_RESPDATA ,
29.Nm d2i_OCSP_RESPID ,
30.Nm i2d_OCSP_RESPID ,
31.Nm d2i_OCSP_SINGLERESP ,
32.Nm i2d_OCSP_SINGLERESP ,
33.Nm d2i_OCSP_CERTSTATUS ,
34.Nm i2d_OCSP_CERTSTATUS ,
35.Nm d2i_OCSP_REVOKEDINFO ,
36.Nm i2d_OCSP_REVOKEDINFO ,
37.Nm d2i_OCSP_CRLID ,
38.Nm i2d_OCSP_CRLID
39.Nd decode and encode OCSP responses
40.Sh SYNOPSIS
41.In openssl/ocsp.h
42.Ft OCSP_RESPONSE *
43.Fo d2i_OCSP_RESPONSE
44.Fa "OCSP_RESPONSE **val_out"
45.Fa "const unsigned char **der_in"
46.Fa "long length"
47.Fc
48.Ft int
49.Fo i2d_OCSP_RESPONSE
50.Fa "OCSP_RESPONSE *val_in"
51.Fa "unsigned char **der_out"
52.Fc
53.Ft OCSP_RESPBYTES *
54.Fo d2i_OCSP_RESPBYTES
55.Fa "OCSP_RESPBYTES **val_out"
56.Fa "const unsigned char **der_in"
57.Fa "long length"
58.Fc
59.Ft int
60.Fo i2d_OCSP_RESPBYTES
61.Fa "OCSP_RESPBYTES *val_in"
62.Fa "unsigned char **der_out"
63.Fc
64.Ft OCSP_BASICRESP *
65.Fo d2i_OCSP_BASICRESP
66.Fa "OCSP_BASICRESP **val_out"
67.Fa "const unsigned char **der_in"
68.Fa "long length"
69.Fc
70.Ft int
71.Fo i2d_OCSP_BASICRESP
72.Fa "OCSP_BASICRESP *val_in"
73.Fa "unsigned char **der_out"
74.Fc
75.Ft OCSP_RESPDATA *
76.Fo d2i_OCSP_RESPDATA
77.Fa "OCSP_RESPDATA **val_out"
78.Fa "const unsigned char **der_in"
79.Fa "long length"
80.Fc
81.Ft int
82.Fo i2d_OCSP_RESPDATA
83.Fa "OCSP_RESPDATA *val_in"
84.Fa "unsigned char **der_out"
85.Fc
86.Ft OCSP_RESPID *
87.Fo d2i_OCSP_RESPID
88.Fa "OCSP_RESPID **val_out"
89.Fa "const unsigned char **der_in"
90.Fa "long length"
91.Fc
92.Ft int
93.Fo i2d_OCSP_RESPID
94.Fa "OCSP_RESPID *val_in"
95.Fa "unsigned char **der_out"
96.Fc
97.Ft OCSP_SINGLERESP *
98.Fo d2i_OCSP_SINGLERESP
99.Fa "OCSP_SINGLERESP **val_out"
100.Fa "const unsigned char **der_in"
101.Fa "long length"
102.Fc
103.Ft int
104.Fo i2d_OCSP_SINGLERESP
105.Fa "OCSP_SINGLERESP *val_in"
106.Fa "unsigned char **der_out"
107.Fc
108.Ft OCSP_CERTSTATUS *
109.Fo d2i_OCSP_CERTSTATUS
110.Fa "OCSP_CERTSTATUS **val_out"
111.Fa "const unsigned char **der_in"
112.Fa "long length"
113.Fc
114.Ft int
115.Fo i2d_OCSP_CERTSTATUS
116.Fa "OCSP_CERTSTATUS *val_in"
117.Fa "unsigned char **der_out"
118.Fc
119.Ft OCSP_REVOKEDINFO *
120.Fo d2i_OCSP_REVOKEDINFO
121.Fa "OCSP_REVOKEDINFO **val_out"
122.Fa "const unsigned char **der_in"
123.Fa "long length"
124.Fc
125.Ft int
126.Fo i2d_OCSP_REVOKEDINFO
127.Fa "OCSP_REVOKEDINFO *val_in"
128.Fa "unsigned char **der_out"
129.Fc
130.Ft OCSP_CRLID *
131.Fo d2i_OCSP_CRLID
132.Fa "OCSP_CRLID **val_out"
133.Fa "const unsigned char **der_in"
134.Fa "long length"
135.Fc
136.Ft int
137.Fo i2d_OCSP_CRLID
138.Fa "OCSP_CRLID *val_in"
139.Fa "unsigned char **der_out"
140.Fc
141.Sh DESCRIPTION
142These functions decode and encode ASN.1 structures used for OCSP
143responses.
144For details about the semantics, examples, caveats, and bugs, see
145.Xr ASN1_item_d2i 3 .
146.Pp
147.Fn d2i_OCSP_RESPONSE
148and
149.Fn i2d_OCSP_RESPONSE
150decode and encode an ASN.1
151.Vt OCSPResponse
152structure defined in RFC 6960 section 4.2.1.
153.Pp
154.Fn d2i_OCSP_RESPBYTES
155and
156.Fn i2d_OCSP_RESPBYTES
157decode and encode an ASN.1
158.Vt ResponseBytes
159structure defined in RFC 6960 section 4.2.1.
160.Pp
161.Fn d2i_OCSP_BASICRESP
162and
163.Fn i2d_OCSP_BASICRESP
164decode and encode an ASN.1
165.Vt BasicOCSPResponse
166structure defined in RFC 6960 section 4.2.1.
167.Pp
168.Fn d2i_OCSP_RESPDATA
169and
170.Fn i2d_OCSP_RESPDATA
171decode and encode an ASN.1
172.Vt ResponseData
173structure defined in RFC 6960 section 4.2.1.
174.Pp
175.Fn d2i_OCSP_RESPID
176and
177.Fn i2d_OCSP_RESPID
178decode and encode an ASN.1
179.Vt ResponderID
180structure defined in RFC 6960 section 4.2.1.
181.Pp
182.Fn d2i_OCSP_SINGLERESP
183and
184.Fn i2d_OCSP_SINGLERESP
185decode and encode an ASN.1
186.Vt SingleResponse
187structure defined in RFC 6960 section 4.2.1.
188.Pp
189.Fn d2i_OCSP_CERTSTATUS
190and
191.Fn i2d_OCSP_CERTSTATUS
192decode and encode an ASN.1
193.Vt CertStatus
194structure defined in RFC 6960 section 4.2.1.
195.Pp
196.Fn d2i_OCSP_REVOKEDINFO
197and
198.Fn i2d_OCSP_REVOKEDINFO
199decode and encode an ASN.1
200.Vt RevokedInfo
201structure defined in RFC 6960 section 4.2.1.
202.Pp
203.Fn d2i_OCSP_CRLID
204and
205.Fn i2d_OCSP_CRLID
206decode and encode an ASN.1
207.Vt CrlID
208structure defined in RFC 6960 section 4.4.2.
209.Sh RETURN VALUES
210.Fn d2i_OCSP_RESPONSE ,
211.Fn d2i_OCSP_RESPBYTES ,
212.Fn d2i_OCSP_BASICRESP ,
213.Fn d2i_OCSP_RESPDATA ,
214.Fn d2i_OCSP_RESPID ,
215.Fn d2i_OCSP_SINGLERESP ,
216.Fn d2i_OCSP_CERTSTATUS ,
217.Fn d2i_OCSP_REVOKEDINFO ,
218and
219.Fn d2i_OCSP_CRLID
220return an object of the respective type or
221.Dv NULL
222if an error occurs.
223.Pp
224.Fn i2d_OCSP_RESPONSE ,
225.Fn i2d_OCSP_RESPBYTES ,
226.Fn i2d_OCSP_BASICRESP ,
227.Fn i2d_OCSP_RESPDATA ,
228.Fn i2d_OCSP_RESPID ,
229.Fn i2d_OCSP_SINGLERESP ,
230.Fn i2d_OCSP_CERTSTATUS ,
231.Fn i2d_OCSP_REVOKEDINFO ,
232and
233.Fn i2d_OCSP_CRLID
234return the number of bytes successfully encoded or a negative value
235if an error occurs.
236.Sh SEE ALSO
237.Xr ASN1_item_d2i 3 ,
238.Xr OCSP_CRLID_new 3 ,
239.Xr OCSP_REQUEST_new 3 ,
240.Xr OCSP_RESPONSE_new 3 ,
241.Xr OCSP_SINGLERESP_new 3
242.Sh STANDARDS
243RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
244Status Protocol, section 4.2: Response Syntax
245.Sh HISTORY
246These functions first appeared in OpenSSL 0.9.7
247and have been available since
248.Ox 3.2 .
249