1*2c07bb3bSschwarze.\" $OpenBSD: POLICYINFO_new.3,v 1.5 2018/03/23 00:09:11 schwarze Exp $ 22d64f400Sschwarze.\" 32d64f400Sschwarze.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org> 42d64f400Sschwarze.\" 52d64f400Sschwarze.\" Permission to use, copy, modify, and distribute this software for any 62d64f400Sschwarze.\" purpose with or without fee is hereby granted, provided that the above 72d64f400Sschwarze.\" copyright notice and this permission notice appear in all copies. 82d64f400Sschwarze.\" 92d64f400Sschwarze.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 102d64f400Sschwarze.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 112d64f400Sschwarze.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 122d64f400Sschwarze.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 132d64f400Sschwarze.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 142d64f400Sschwarze.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 152d64f400Sschwarze.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 162d64f400Sschwarze.\" 17*2c07bb3bSschwarze.Dd $Mdocdate: March 23 2018 $ 182d64f400Sschwarze.Dt POLICYINFO_NEW 3 192d64f400Sschwarze.Os 202d64f400Sschwarze.Sh NAME 212d64f400Sschwarze.Nm POLICYINFO_new , 222d64f400Sschwarze.Nm POLICYINFO_free , 232d64f400Sschwarze.Nm CERTIFICATEPOLICIES_new , 242d64f400Sschwarze.Nm CERTIFICATEPOLICIES_free , 252d64f400Sschwarze.Nm POLICYQUALINFO_new , 262d64f400Sschwarze.Nm POLICYQUALINFO_free , 272d64f400Sschwarze.Nm USERNOTICE_new , 282d64f400Sschwarze.Nm USERNOTICE_free , 292d64f400Sschwarze.Nm NOTICEREF_new , 302d64f400Sschwarze.Nm NOTICEREF_free , 312d64f400Sschwarze.Nm POLICY_MAPPING_new , 322d64f400Sschwarze.Nm POLICY_MAPPING_free , 332d64f400Sschwarze.Nm POLICY_CONSTRAINTS_new , 342d64f400Sschwarze.Nm POLICY_CONSTRAINTS_free 352d64f400Sschwarze.Nd X.509 certificate policies 362d64f400Sschwarze.Sh SYNOPSIS 372d64f400Sschwarze.In openssl/x509v3.h 382d64f400Sschwarze.Ft POLICYINFO * 392d64f400Sschwarze.Fn POLICYINFO_new void 402d64f400Sschwarze.Ft void 412d64f400Sschwarze.Fn POLICYINFO_free "POLICYINFO *pi" 422d64f400Sschwarze.Ft CERTIFICATEPOLICIES * 432d64f400Sschwarze.Fn CERTIFICATEPOLICIES_new void 442d64f400Sschwarze.Ft void 452d64f400Sschwarze.Fn CERTIFICATEPOLICIES_free "CERTIFICATEPOLICIES *pis" 462d64f400Sschwarze.Ft POLICYQUALINFO * 472d64f400Sschwarze.Fn POLICYQUALINFO_new void 482d64f400Sschwarze.Ft void 492d64f400Sschwarze.Fn POLICYQUALINFO_free "POLICYQUALINFO *pqi" 502d64f400Sschwarze.Ft USERNOTICE * 512d64f400Sschwarze.Fn USERNOTICE_new void 522d64f400Sschwarze.Ft void 532d64f400Sschwarze.Fn USERNOTICE_free "USERNOTICE *usernotice" 542d64f400Sschwarze.Ft NOTICEREF * 552d64f400Sschwarze.Fn NOTICEREF_new void 562d64f400Sschwarze.Ft void 572d64f400Sschwarze.Fn NOTICEREF_free "NOTICEREF *noticeref" 582d64f400Sschwarze.Ft POLICY_MAPPING * 592d64f400Sschwarze.Fn POLICY_MAPPING_new void 602d64f400Sschwarze.Ft void 612d64f400Sschwarze.Fn POLICY_MAPPING_free "POLICY_MAPPING *pm" 622d64f400Sschwarze.Ft POLICY_CONSTRAINTS * 632d64f400Sschwarze.Fn POLICY_CONSTRAINTS_new void 642d64f400Sschwarze.Ft void 652d64f400Sschwarze.Fn POLICY_CONSTRAINTS_free "POLICY_CONSTRAINTS *pc" 662d64f400Sschwarze.Sh DESCRIPTION 672d64f400SschwarzeX.509 CA and end entity certificates can optionally indicate 682d64f400Sschwarzerestrictions on their intended use. 692d64f400Sschwarze.Pp 702d64f400Sschwarze.Fn POLICYINFO_new 712d64f400Sschwarzeallocates and initializes an empty 722d64f400Sschwarze.Vt POLICYINFO 7356bc162bSschwarzeobject, representing an ASN.1 7456bc162bSschwarze.Vt PolicyInformation 7556bc162bSschwarzestructure defined in RFC 5280 section 4.2.1.4. 762d64f400SschwarzeIt can hold a policy identifier and optional advisory qualifiers. 772d64f400Sschwarze.Fn POLICYINFO_free 782d64f400Sschwarzefrees 792d64f400Sschwarze.Fa pi . 802d64f400Sschwarze.Pp 812d64f400Sschwarze.Fn CERTIFICATEPOLICIES_new 822d64f400Sschwarzeallocates and initializes an empty 832d64f400Sschwarze.Vt CERTIFICATEPOLICIES 842d64f400Sschwarzeobject, which is a 852d64f400Sschwarze.Vt STACK_OF(POLICYINFO) 86730642a4Sschwarzeand represents an ASN.1 87730642a4Sschwarze.Vt CertificatePolicies 88730642a4Sschwarzestructure defined in RFC 5280 section 4.2.1.4. 892d64f400SschwarzeIt can be used by 902d64f400Sschwarze.Vt X509 912d64f400Sschwarzeobjects, both by CA certificates and end entity certificates. 922d64f400Sschwarze.Fn CERTIFICATEPOLICIES_free 932d64f400Sschwarzefrees 942d64f400Sschwarze.Fa pis . 952d64f400Sschwarze.Pp 962d64f400Sschwarze.Fn POLICYQUALINFO_new 972d64f400Sschwarzeallocates and initializes an empty 982d64f400Sschwarze.Vt POLICYQUALINFO 9956bc162bSschwarzeobject, representing an ASN.1 10056bc162bSschwarze.Vt PolicyQualifierInfo 10156bc162bSschwarzestructure defined in RFC 5280 section 4.2.1.4. 1022d64f400SschwarzeIt can be used in 1032d64f400Sschwarze.Vt POLICYINFO 1042d64f400Sschwarzeand it can hold either a uniform resource identifier of a certification 1052d64f400Sschwarzepractice statement published by the CA, or a pointer to a 1062d64f400Sschwarze.Vt USERNOTICE 1072d64f400Sschwarzeobject, or arbitrary other information. 1082d64f400Sschwarze.Fn POLICYQUALINFO_free 1092d64f400Sschwarzefrees 1102d64f400Sschwarze.Fa pqi . 1112d64f400Sschwarze.Pp 1122d64f400Sschwarze.Fn USERNOTICE_new 1132d64f400Sschwarzeallocates and initializes an empty 1142d64f400Sschwarze.Vt USERNOTICE 11556bc162bSschwarzeobject, representing an ASN.1 11656bc162bSschwarze.Vt UserNotice 11756bc162bSschwarzestructure defined in RFC 5280 section 4.2.1.4. 1182d64f400SschwarzeIt can be used in 1192d64f400Sschwarze.Vt POLICYQUALINFO 1202d64f400Sschwarzeand it can hold either an 1212d64f400Sschwarze.Vt ASN1_STRING 1222d64f400Sschwarzeintended for display to the user or a pointer to a 1232d64f400Sschwarze.Vt NOTICEREF 1242d64f400Sschwarzeobject. 1252d64f400Sschwarze.Fn NOTICEREF_free 1262d64f400Sschwarzefrees 1272d64f400Sschwarze.Fa usernotice . 1282d64f400Sschwarze.Pp 1292d64f400Sschwarze.Fn NOTICEREF_new 1302d64f400Sschwarzeallocates and initializes an empty 1312d64f400Sschwarze.Vt NOTICEREF 13256bc162bSschwarzeobject, representing an ASN.1 13356bc162bSschwarze.Vt NoticeReference 13456bc162bSschwarzestructure defined in RFC 5280 section 4.2.1.4. 1352d64f400SschwarzeIt can be used in 1362d64f400Sschwarze.Vt USERNOTICE 1372d64f400Sschwarzeand can hold an organization name and a stack of notice numbers. 1382d64f400Sschwarze.Fn NOTICEREF_free 1392d64f400Sschwarzefrees 1402d64f400Sschwarze.Fa noticeref . 1412d64f400Sschwarze.Pp 1422d64f400Sschwarze.Fn POLICY_MAPPING_new 1432d64f400Sschwarzeallocates and initializes an empty 1442d64f400Sschwarze.Vt POLICY_MAPPING 14556bc162bSschwarzeobject, representing an ASN.1 14656bc162bSschwarze.Vt PolicyMappings 14756bc162bSschwarzestructure defined in RFC 5280 section 4.2.1.5. 1482d64f400SschwarzeIt can be used in 1492d64f400Sschwarze.Vt X509 1502d64f400SschwarzeCA certificates and can hold a list of pairs of policy identifiers, 1512d64f400Sschwarzedeclaring one of the policies in each pair as equivalent to the 1522d64f400Sschwarzeother. 1532d64f400Sschwarze.Fn POLICY_MAPPING_free 1542d64f400Sschwarzefrees 1552d64f400Sschwarze.Fa pm . 1562d64f400Sschwarze.Pp 1572d64f400Sschwarze.Fn POLICY_CONSTRAINTS_new 1582d64f400Sschwarzeallocates and initializes an empty 1592d64f400Sschwarze.Vt POLICY_CONSTRAINTS 16056bc162bSschwarzeobject, representing an ASN.1 16156bc162bSschwarze.Vt PolicyConstraints 16256bc162bSschwarzestructure defined in RFC 5280 section 4.2.1.11. 1632d64f400SschwarzeIt can be used in 1642d64f400Sschwarze.Vt X509 1652d64f400SschwarzeCA certificates to restrict policy mapping and/or to require explicit 1662d64f400Sschwarzecertificate policies in subsequent intermediate certificates in the 1672d64f400Sschwarzecertification path. 1682d64f400Sschwarze.Fn POLICY_CONSTRAINTS_free 1692d64f400Sschwarzefrees 1702d64f400Sschwarze.Fa pc . 1712d64f400Sschwarze.Sh RETURN VALUES 1722d64f400SschwarzeThe constructor functions return a new object of the respective 1732d64f400Sschwarzetype or 1742d64f400Sschwarze.Dv NULL 1752d64f400Sschwarzeif an error occurs. 1762d64f400Sschwarze.Sh SEE ALSO 1772d64f400Sschwarze.Xr BASIC_CONSTRAINTS_new 3 , 1782d64f400Sschwarze.Xr NAME_CONSTRAINTS_new 3 , 1792d64f400Sschwarze.Xr X509_EXTENSION_new 3 , 1802d64f400Sschwarze.Xr X509_new 3 1812d64f400Sschwarze.Sh STANDARDS 1822d64f400SschwarzeRFC 5280: Internet X.509 Public Key Infrastructure Certificate and 1832d64f400SschwarzeCertificate Revocation List (CRL) Profile: 1842d64f400Sschwarze.Bl -dash -compact 1852d64f400Sschwarze.It 1862d64f400Sschwarzesection 4.2.1.4: Certificate Policies 1872d64f400Sschwarze.It 1882d64f400Sschwarzesection 4.2.1.5: Policy Mappings 1892d64f400Sschwarze.It 1902d64f400Sschwarzesection 4.2.1.11: Policy Constraints 1912d64f400Sschwarze.El 192c52b7c01Sschwarze.Sh HISTORY 193c52b7c01Sschwarze.Fn POLICYINFO_new , 194c52b7c01Sschwarze.Fn POLICYINFO_free , 195c52b7c01Sschwarze.Fn CERTIFICATEPOLICIES_new , 196c52b7c01Sschwarze.Fn CERTIFICATEPOLICIES_free , 197c52b7c01Sschwarze.Fn POLICYQUALINFO_new , 198c52b7c01Sschwarze.Fn POLICYQUALINFO_free , 199c52b7c01Sschwarze.Fn USERNOTICE_new , 200c52b7c01Sschwarze.Fn USERNOTICE_free , 201c52b7c01Sschwarze.Fn NOTICEREF_new , 202c52b7c01Sschwarzeand 203c52b7c01Sschwarze.Fn NOTICEREF_free 204c52b7c01Sschwarzefirst appeared in OpenSSL 0.9.3 and have been available since 205c52b7c01Sschwarze.Ox 2.6 . 206*2c07bb3bSschwarze.Pp 207*2c07bb3bSschwarze.Fn POLICY_MAPPING_new , 208*2c07bb3bSschwarze.Fn POLICY_MAPPING_free , 209*2c07bb3bSschwarze.Fn POLICY_CONSTRAINTS_new , 210*2c07bb3bSschwarzeand 211*2c07bb3bSschwarze.Fn POLICY_CONSTRAINTS_free 212*2c07bb3bSschwarzefirst appeared in OpenSSL 0.9.8 and have been available since 213*2c07bb3bSschwarze.Ox 4.5 . 2142d64f400Sschwarze.Sh BUGS 2152d64f400SschwarzeThis is a lot of nested data structures, but most of them are 2162d64f400Sschwarzedesigned to have almost no effect. 217