1.\"	$OpenBSD: d2i_POLICYINFO.3,v 1.2 2018/03/21 17:57:48 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 21 2018 $
18.Dt D2I_POLICYINFO 3
19.Os
20.Sh NAME
21.Nm d2i_POLICYINFO ,
22.Nm i2d_POLICYINFO ,
23.Nm d2i_CERTIFICATEPOLICIES ,
24.Nm i2d_CERTIFICATEPOLICIES ,
25.Nm d2i_POLICYQUALINFO ,
26.Nm i2d_POLICYQUALINFO ,
27.Nm d2i_USERNOTICE ,
28.Nm i2d_USERNOTICE ,
29.Nm d2i_NOTICEREF ,
30.Nm i2d_NOTICEREF
31.Nd decode and encode X.509 certificate policies
32.Sh SYNOPSIS
33.In openssl/x509v3.h
34.Ft POLICYINFO *
35.Fo d2i_POLICYINFO
36.Fa "POLICYINFO **val_out"
37.Fa "const unsigned char **der_in"
38.Fa "long length"
39.Fc
40.Ft int
41.Fo i2d_POLICYINFO
42.Fa "POLICYINFO *val_in"
43.Fa "unsigned char **der_out"
44.Fc
45.Ft CERTIFICATEPOLICIES *
46.Fo d2i_CERTIFICATEPOLICIES
47.Fa "CERTIFICATEPOLICIES **val_out"
48.Fa "const unsigned char **der_in"
49.Fa "long length"
50.Fc
51.Ft int
52.Fo i2d_CERTIFICATEPOLICIES
53.Fa "CERTIFICATEPOLICIES *val_in"
54.Fa "unsigned char **der_out"
55.Fc
56.Ft POLICYQUALINFO *
57.Fo d2i_POLICYQUALINFO
58.Fa "POLICYQUALINFO **val_out"
59.Fa "const unsigned char **der_in"
60.Fa "long length"
61.Fc
62.Ft int
63.Fo i2d_POLICYQUALINFO
64.Fa "POLICYQUALINFO *val_in"
65.Fa "unsigned char **der_out"
66.Fc
67.Ft USERNOTICE *
68.Fo d2i_USERNOTICE
69.Fa "USERNOTICE **val_out"
70.Fa "const unsigned char **der_in"
71.Fa "long length"
72.Fc
73.Ft int
74.Fo i2d_USERNOTICE
75.Fa "USERNOTICE *val_in"
76.Fa "unsigned char **der_out"
77.Fc
78.Ft NOTICEREF *
79.Fo d2i_NOTICEREF
80.Fa "NOTICEREF **val_out"
81.Fa "const unsigned char **der_in"
82.Fa "long length"
83.Fc
84.Ft int
85.Fo i2d_NOTICEREF
86.Fa "NOTICEREF *val_in"
87.Fa "unsigned char **der_out"
88.Fc
89.Sh DESCRIPTION
90These functions decode and encode X.509 certificate policies.
91For details about the semantics, examples, caveats, and bugs, see
92.Xr ASN1_item_d2i 3 .
93.Pp
94.Fn d2i_POLICYINFO
95and
96.Fn i2d_POLICYINFO
97decode and encode an ASN.1
98.Vt PolicyInformation
99structure defined in RFC 5280 section 4.2.1.4.
100.Pp
101.Fn d2i_CERTIFICATEPOLICIES
102and
103.Fn i2d_CERTIFICATEPOLICIES
104decode and encode an ASN.1
105.Vt CertificatePolicies
106structure defined in RFC 5280 section 4.2.1.4.
107.Pp
108.Fn d2i_POLICYQUALINFO
109and
110.Fn i2d_POLICYQUALINFO
111decode and encode an ASN.1
112.Vt PolicyQualifierInfo
113structure defined in RFC 5280 section 4.2.1.4.
114.Pp
115.Fn d2i_USERNOTICE
116and
117.Fn i2d_USERNOTICE
118decode and encode an ASN.1
119.Vt UserNotice
120structure defined in RFC 5280 section 4.2.1.4.
121.Pp
122.Fn d2i_NOTICEREF
123and
124.Fn i2d_NOTICEREF
125decode and encode an ASN.1
126.Vt NoticeReference
127structure defined in RFC 5280 section 4.2.1.4.
128.Sh RETURN VALUES
129.Fn d2i_POLICYINFO ,
130.Fn d2i_CERTIFICATEPOLICIES ,
131.Fn d2i_POLICYQUALINFO ,
132.Fn d2i_USERNOTICE ,
133and
134.Fn d2i_NOTICEREF
135return a
136.Vt POLICYINFO ,
137.Vt CERTIFICATEPOLICIES ,
138.Vt POLICYQUALINFO ,
139.Vt USERNOTICE ,
140or
141.Vt NOTICEREF
142object, respectively, or
143.Dv NULL
144if an error occurs.
145.Pp
146.Fn i2d_POLICYINFO ,
147.Fn i2d_CERTIFICATEPOLICIES ,
148.Fn i2d_POLICYQUALINFO ,
149.Fn i2d_USERNOTICE ,
150and
151.Fn i2d_NOTICEREF
152return the number of bytes successfully encoded or a negative value
153if an error occurs.
154.Sh SEE ALSO
155.Xr ASN1_item_d2i 3 ,
156.Xr POLICYINFO_new 3 ,
157.Xr X509_EXTENSION_new 3
158.Sh STANDARDS
159RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
160Certificate Revocation List (CRL) Profile,
161section 4.2.1.4: Certificate Policies
162.Sh HISTORY
163These functions first appeared in OpenSSL 0.9.3
164and have been available since
165.Ox 2.6 .
166