1.\" $OpenBSD: PKCS12_SAFEBAG_new.3,v 1.4 2019/06/06 01:06:58 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: June 6 2019 $ 18.Dt PKCS12_SAFEBAG_NEW 3 19.Os 20.Sh NAME 21.Nm PKCS12_SAFEBAG_new , 22.Nm PKCS12_SAFEBAG_free , 23.Nm PKCS12_BAGS_new , 24.Nm PKCS12_BAGS_free 25.Nd PKCS#12 container for one piece of information 26.Sh SYNOPSIS 27.In openssl/pkcs12.h 28.Ft PKCS12_SAFEBAG * 29.Fn PKCS12_SAFEBAG_new void 30.Ft void 31.Fn PKCS12_SAFEBAG_free "PKCS12_SAFEBAG *safebag" 32.Ft PKCS12_BAGS * 33.Fn PKCS12_BAGS_new void 34.Ft void 35.Fn PKCS12_BAGS_free "PKCS12_BAGS *bag" 36.Sh DESCRIPTION 37.Fn PKCS12_SAFEBAG_new 38allocates and initializes an empty 39.Vt PKCS12_SAFEBAG 40object, representing an ASN.1 41.Vt SafeBag 42structure defined in RFC 7292 section 4.2. 43It can hold a pointer to a 44.Vt PKCS12_BAGS 45object together with a type identifier and optional attributes. 46.Fn PKCS12_SAFEBAG_free 47frees 48.Fa safebag . 49.Pp 50.Fn PKCS12_BAGS_new 51allocates and initializes an empty 52.Vt PKCS12_BAGS 53object, representing the bagValue field of an ASN.1 54.Vt SafeBag 55structure. 56It is used in 57.Vt PKCS12_SAFEBAG 58and can hold a DER-encoded X.509 certificate, 59a base64-encoded SDSI certificate, 60a DER-encoded X.509 CRL, 61or other user-defined information. 62.Pp 63If an instance of 64.Vt PKCS12_SAFEBAG 65contains 66.Vt PKCS8_PRIV_KEY_INFO , 67.Vt X509_SIG , 68or nested 69.Vt PKCS12_SAFEBAG 70objects, the respective pointers are stored directly in the 71.Vt PKCS12_SAFEBAG 72object rather than in the contained 73.Vt PKCS12_BAGS 74object as required by RFC 7292. 75.Sh RETURN VALUES 76.Fn PKCS12_SAFEBAG_new 77and 78.Fn PKCS12_BAGS_new 79return the new 80.Vt PKCS12_SAFEBAG 81or 82.Vt PKCS12_BAGS 83object, respectively, or 84.Dv NULL 85if an error occurs. 86.Sh SEE ALSO 87.Xr PKCS12_create 3 , 88.Xr PKCS12_new 3 , 89.Xr PKCS8_PRIV_KEY_INFO_new 3 , 90.Xr X509_ATTRIBUTE_new 3 , 91.Xr X509_CRL_new 3 , 92.Xr X509_new 3 , 93.Xr X509_SIG_new 3 94.Sh STANDARDS 95RFC 7292: PKCS #12: Personal Information Exchange Syntax, 96section 4.2: The SafeBag Type 97.Sh HISTORY 98.Fn PKCS12_SAFEBAG_new , 99.Fn PKCS12_SAFEBAG_free , 100.Fn PKCS12_BAGS_new , 101and 102.Fn PKCS12_BAGS_free 103first appeared in OpenSSL 0.9.3 and have been available since 104.Ox 2.6 . 105