xref: /openbsd/lib/libcrypto/man/d2i_TS_REQ.3 (revision 09467b48)
1.\"	$OpenBSD: d2i_TS_REQ.3,v 1.2 2018/03/23 04:34:23 schwarze 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 23 2018 $
18.Dt D2I_TS_REQ 3
19.Os
20.Sh NAME
21.Nm d2i_TS_REQ ,
22.Nm i2d_TS_REQ ,
23.Nm d2i_TS_REQ_bio ,
24.Nm i2d_TS_REQ_bio ,
25.Nm d2i_TS_REQ_fp ,
26.Nm i2d_TS_REQ_fp ,
27.Nm d2i_TS_RESP ,
28.Nm i2d_TS_RESP ,
29.Nm d2i_TS_RESP_bio ,
30.Nm i2d_TS_RESP_bio ,
31.Nm d2i_TS_RESP_fp ,
32.Nm i2d_TS_RESP_fp ,
33.Nm d2i_TS_STATUS_INFO ,
34.Nm i2d_TS_STATUS_INFO ,
35.Nm d2i_TS_TST_INFO ,
36.Nm i2d_TS_TST_INFO ,
37.Nm d2i_TS_TST_INFO_bio ,
38.Nm i2d_TS_TST_INFO_bio ,
39.Nm d2i_TS_TST_INFO_fp ,
40.Nm i2d_TS_TST_INFO_fp ,
41.Nm d2i_TS_ACCURACY ,
42.Nm i2d_TS_ACCURACY ,
43.Nm d2i_TS_MSG_IMPRINT ,
44.Nm i2d_TS_MSG_IMPRINT ,
45.Nm d2i_TS_MSG_IMPRINT_bio ,
46.Nm i2d_TS_MSG_IMPRINT_bio ,
47.Nm d2i_TS_MSG_IMPRINT_fp ,
48.Nm i2d_TS_MSG_IMPRINT_fp
49.Nd decode and encode X.509 time-stamp protocol structures
50.Sh SYNOPSIS
51.In openssl/ts.h
52.Ft TS_REQ *
53.Fo d2i_TS_REQ
54.Fa "TS_REQ **val_out"
55.Fa "const unsigned char **der_in"
56.Fa "long length"
57.Fc
58.Ft int
59.Fo i2d_TS_REQ
60.Fa "const TS_REQ *val_in"
61.Fa "unsigned char **der_out"
62.Fc
63.Ft TS_REQ *
64.Fo d2i_TS_REQ_bio
65.Fa "BIO *in_bio"
66.Fa "TS_REQ **val_out"
67.Fc
68.Ft int
69.Fo i2d_TS_REQ_bio
70.Fa "BIO *out_bio"
71.Fa "TS_REQ *val_in"
72.Fc
73.Ft TS_REQ *
74.Fo d2i_TS_REQ_fp
75.Fa "FILE *in_fp"
76.Fa "TS_REQ **val_out"
77.Fc
78.Ft int
79.Fo i2d_TS_REQ_fp
80.Fa "FILE *out_fp"
81.Fa "TS_REQ *val_in"
82.Fc
83.Ft TS_RESP *
84.Fo d2i_TS_RESP
85.Fa "TS_RESP **val_out"
86.Fa "const unsigned char **der_in"
87.Fa "long length"
88.Fc
89.Ft int
90.Fo i2d_TS_RESP
91.Fa "const TS_RESP *val_in"
92.Fa "unsigned char **der_out"
93.Fc
94.Ft TS_RESP *
95.Fo d2i_TS_RESP_bio
96.Fa "BIO *in_bio"
97.Fa "TS_RESP **val_out"
98.Fc
99.Ft int
100.Fo i2d_TS_RESP_bio
101.Fa "BIO *out_bio"
102.Fa "TS_RESP *val_in"
103.Fc
104.Ft TS_RESP *
105.Fo d2i_TS_RESP_fp
106.Fa "FILE *in_fp"
107.Fa "TS_RESP **val_out"
108.Fc
109.Ft int
110.Fo i2d_TS_RESP_fp
111.Fa "FILE *out_fp"
112.Fa "TS_RESP *val_in"
113.Fc
114.Ft TS_STATUS_INFO *
115.Fo d2i_TS_STATUS_INFO
116.Fa "TS_STATUS_INFO **val_out"
117.Fa "const unsigned char **der_in"
118.Fa "long length"
119.Fc
120.Ft int
121.Fo i2d_TS_STATUS_INFO
122.Fa "const TS_STATUS_INFO *val_in"
123.Fa "unsigned char **der_out"
124.Fc
125.Ft TS_TST_INFO *
126.Fo d2i_TS_TST_INFO
127.Fa "TS_TST_INFO **val_out"
128.Fa "const unsigned char **der_in"
129.Fa "long length"
130.Fc
131.Ft int
132.Fo i2d_TS_TST_INFO
133.Fa "const TS_TST_INFO *val_in"
134.Fa "unsigned char **der_out"
135.Fc
136.Ft TS_TST_INFO *
137.Fo d2i_TS_TST_INFO_bio
138.Fa "BIO *in_bio"
139.Fa "TS_TST_INFO **val_out"
140.Fc
141.Ft int
142.Fo i2d_TS_TST_INFO_bio
143.Fa "BIO *out_bio"
144.Fa "TS_TST_INFO *val_in"
145.Fc
146.Ft TS_TST_INFO *
147.Fo d2i_TS_TST_INFO_fp
148.Fa "FILE *in_fp"
149.Fa "TS_TST_INFO **val_out"
150.Fc
151.Ft int
152.Fo i2d_TS_TST_INFO_fp
153.Fa "FILE *out_fp"
154.Fa "TS_TST_INFO *val_in"
155.Fc
156.Ft TS_ACCURACY *
157.Fo d2i_TS_ACCURACY
158.Fa "TS_ACCURACY **val_out"
159.Fa "const unsigned char **der_in"
160.Fa "long length"
161.Fc
162.Ft int
163.Fo i2d_TS_ACCURACY
164.Fa "const TS_ACCURACY *val_in"
165.Fa "unsigned char **der_out"
166.Fc
167.Ft TS_MSG_IMPRINT *
168.Fo d2i_TS_MSG_IMPRINT
169.Fa "TS_MSG_IMPRINT **val_out"
170.Fa "const unsigned char **der_in"
171.Fa "long length"
172.Fc
173.Ft int
174.Fo i2d_TS_MSG_IMPRINT
175.Fa "const TS_MSG_IMPRINT *val_in"
176.Fa "unsigned char **der_out"
177.Fc
178.Ft TS_MSG_IMPRINT *
179.Fo d2i_TS_MSG_IMPRINT_bio
180.Fa "BIO *in_bio"
181.Fa "TS_MSG_IMPRINT **val_out"
182.Fc
183.Ft int
184.Fo i2d_TS_MSG_IMPRINT_bio
185.Fa "BIO *out_bio"
186.Fa "TS_MSG_IMPRINT *val_in"
187.Fc
188.Ft TS_MSG_IMPRINT *
189.Fo d2i_TS_MSG_IMPRINT_fp
190.Fa "FILE *in_fp"
191.Fa "TS_MSG_IMPRINT **val_out"
192.Fc
193.Ft int
194.Fo i2d_TS_MSG_IMPRINT_fp
195.Fa "FILE *out_fp"
196.Fa "TS_MSG_IMPRINT *val_in"
197.Fc
198.Sh DESCRIPTION
199These functions decode and encode X.509 structures used for the
200time-stamp protocol.
201For details about the semantics, examples, caveats, and bugs, see
202.Xr ASN1_item_d2i 3 .
203.Pp
204.Fn d2i_TS_REQ
205and
206.Fn i2d_TS_REQ
207decode and encode an ASN.1
208.Vt TimeStampReq
209structure defined in RFC 3161 section 2.4.1.
210.Fn d2i_TS_REQ_bio ,
211.Fn i2d_TS_REQ_bio ,
212.Fn d2i_TS_REQ_fp ,
213and
214.Fn i2d_TS_REQ_fp
215are similar except that they decode or encode using a
216.Vt BIO
217or
218.Vt FILE
219pointer.
220.Pp
221.Fn d2i_TS_RESP
222and
223.Fn i2d_TS_RESP
224decode and encode an ASN.1
225.Vt TimeStampResp
226structure defined in RFC 3161 section 2.4.2.
227.Fn d2i_TS_RESP_bio ,
228.Fn i2d_TS_RESP_bio ,
229.Fn d2i_TS_RESP_fp ,
230and
231.Fn i2d_TS_RESP_fp
232are similar except that they decode or encode using a
233.Vt BIO
234or
235.Vt FILE
236pointer.
237.Pp
238.Fn d2i_TS_STATUS_INFO
239and
240.Fn i2d_TS_STATUS_INFO
241decode and encode an ASN.1
242.Vt PKIStatusInfo
243structure defined in RFC 3161 section 2.4.2.
244.Pp
245.Fn d2i_TS_TST_INFO
246and
247.Fn i2d_TS_TST_INFO
248decode and encode an ASN.1
249.Vt TSTInfo
250structure defined in RFC 3161 section 2.4.2.
251.Fn d2i_TS_TST_INFO_bio ,
252.Fn i2d_TS_TST_INFO_bio ,
253.Fn d2i_TS_TST_INFO_fp ,
254and
255.Fn i2d_TS_TST_INFO_fp
256are similar except that they decode or encode using a
257.Vt BIO
258or
259.Vt FILE
260pointer.
261.Pp
262.Fn d2i_TS_ACCURACY
263and
264.Fn i2d_TS_ACCURACY
265decode and encode an ASN.1
266.Vt Accuracy
267structure defined in RFC 3161 section 2.4.2.
268.Pp
269.Fn d2i_TS_MSG_IMPRINT
270and
271.Fn i2d_TS_MSG_IMPRINT
272decode and encode an ASN.1
273.Vt MessageImprint
274structure defined in RFC 3161 section 2.4.1.
275.Fn d2i_TS_MSG_IMPRINT_bio ,
276.Fn i2d_TS_MSG_IMPRINT_bio ,
277.Fn d2i_TS_MSG_IMPRINT_fp ,
278and
279.Fn i2d_TS_MSG_IMPRINT_fp
280are similar except that they decode or encode using a
281.Vt BIO
282or
283.Vt FILE
284pointer.
285.Sh RETURN VALUES
286.Fn d2i_TS_REQ ,
287.Fn d2i_TS_REQ_bio ,
288.Fn d2i_TS_REQ_fp ,
289.Fn d2i_TS_RESP ,
290.Fn d2i_TS_RESP_bio ,
291.Fn d2i_TS_RESP_fp ,
292.Fn d2i_TS_STATUS_INFO ,
293.Fn d2i_TS_TST_INFO ,
294.Fn d2i_TS_TST_INFO_bio ,
295.Fn d2i_TS_TST_INFO_fp ,
296.Fn d2i_TS_ACCURACY ,
297.Fn d2i_TS_MSG_IMPRINT ,
298.Fn d2i_TS_MSG_IMPRINT_bio ,
299and
300.Fn d2i_TS_MSG_IMPRINT_fp
301return an object of the respective type or
302.Dv NULL
303if an error occurs.
304.Pp
305.Fn i2d_TS_REQ ,
306.Fn i2d_TS_RESP ,
307.Fn i2d_TS_STATUS_INFO ,
308.Fn i2d_TS_TST_INFO ,
309.Fn i2d_TS_ACCURACY ,
310and
311.Fn i2d_TS_MSG_IMPRINT
312return the number of bytes successfully encoded or a negative value
313if an error occurs.
314.Pp
315.Fn i2d_TS_REQ_bio ,
316.Fn i2d_TS_REQ_fp ,
317.Fn i2d_TS_RESP_bio ,
318.Fn i2d_TS_RESP_fp ,
319.Fn i2d_TS_TST_INFO_bio ,
320.Fn i2d_TS_TST_INFO_fp ,
321.Fn i2d_TS_MSG_IMPRINT_bio ,
322and
323.Fn i2d_TS_MSG_IMPRINT_fp
324return 1 for success or 0 if an error occurs.
325.Sh SEE ALSO
326.Xr ASN1_item_d2i 3 ,
327.Xr TS_REQ_new 3
328.Sh STANDARDS
329RFC 3161: Internet X.509 Public Key Infrastructure Time-Stamp Protocol
330.Sh HISTORY
331These functions first appeared in OpenSSL 1.0.0
332and have been available since
333.Ox 4.9 .
334