1*c52b7c01Sschwarze.\" $OpenBSD: d2i_PKCS12.3,v 1.2 2018/03/21 17:57:48 schwarze Exp $ 25893597fSschwarze.\" 35893597fSschwarze.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org> 45893597fSschwarze.\" 55893597fSschwarze.\" Permission to use, copy, modify, and distribute this software for any 65893597fSschwarze.\" purpose with or without fee is hereby granted, provided that the above 75893597fSschwarze.\" copyright notice and this permission notice appear in all copies. 85893597fSschwarze.\" 95893597fSschwarze.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 105893597fSschwarze.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 115893597fSschwarze.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 125893597fSschwarze.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 135893597fSschwarze.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 145893597fSschwarze.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 155893597fSschwarze.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 165893597fSschwarze.\" 17*c52b7c01Sschwarze.Dd $Mdocdate: March 21 2018 $ 185893597fSschwarze.Dt D2I_PKCS12 3 195893597fSschwarze.Os 205893597fSschwarze.Sh NAME 215893597fSschwarze.Nm d2i_PKCS12 , 225893597fSschwarze.Nm i2d_PKCS12 , 235893597fSschwarze.Nm d2i_PKCS12_bio , 245893597fSschwarze.Nm i2d_PKCS12_bio , 255893597fSschwarze.Nm d2i_PKCS12_fp , 265893597fSschwarze.Nm i2d_PKCS12_fp , 275893597fSschwarze.Nm d2i_PKCS12_MAC_DATA , 285893597fSschwarze.Nm i2d_PKCS12_MAC_DATA , 295893597fSschwarze.Nm d2i_PKCS12_SAFEBAG , 305893597fSschwarze.Nm i2d_PKCS12_SAFEBAG , 315893597fSschwarze.Nm d2i_PKCS12_BAGS , 325893597fSschwarze.Nm i2d_PKCS12_BAGS 335893597fSschwarze.Nd decode and encode PKCS#12 structures 345893597fSschwarze.Sh SYNOPSIS 355893597fSschwarze.In openssl/pkcs12.h 365893597fSschwarze.Ft PKCS12 * 375893597fSschwarze.Fo d2i_PKCS12 385893597fSschwarze.Fa "PKCS12 **val_out" 395893597fSschwarze.Fa "const unsigned char **der_in" 405893597fSschwarze.Fa "long length" 415893597fSschwarze.Fc 425893597fSschwarze.Ft int 435893597fSschwarze.Fo i2d_PKCS12 445893597fSschwarze.Fa "PKCS12 *val_in" 455893597fSschwarze.Fa "unsigned char **der_out" 465893597fSschwarze.Fc 475893597fSschwarze.Ft PKCS12 * 485893597fSschwarze.Fo d2i_PKCS12_bio 495893597fSschwarze.Fa "BIO *in_bio" 505893597fSschwarze.Fa "PKCS12 **val_out" 515893597fSschwarze.Fc 525893597fSschwarze.Ft int 535893597fSschwarze.Fo i2d_PKCS12_bio 545893597fSschwarze.Fa "BIO *out_bio" 555893597fSschwarze.Fa "PKCS12 *val_in" 565893597fSschwarze.Fc 575893597fSschwarze.Ft PKCS12 * 585893597fSschwarze.Fo d2i_PKCS12_fp 595893597fSschwarze.Fa "FILE *in_fp" 605893597fSschwarze.Fa "PKCS12 **val_out" 615893597fSschwarze.Fc 625893597fSschwarze.Ft int 635893597fSschwarze.Fo i2d_PKCS12_fp 645893597fSschwarze.Fa "FILE *out_fp" 655893597fSschwarze.Fa "PKCS12 *val_in" 665893597fSschwarze.Fc 675893597fSschwarze.Ft PKCS12_MAC_DATA * 685893597fSschwarze.Fo d2i_PKCS12_MAC_DATA 695893597fSschwarze.Fa "PKCS12_MAC_DATA **val_out" 705893597fSschwarze.Fa "const unsigned char **der_in" 715893597fSschwarze.Fa "long length" 725893597fSschwarze.Fc 735893597fSschwarze.Ft int 745893597fSschwarze.Fo i2d_PKCS12_MAC_DATA 755893597fSschwarze.Fa "PKCS12_MAC_DATA *val_in" 765893597fSschwarze.Fa "unsigned char **der_out" 775893597fSschwarze.Fc 785893597fSschwarze.Ft PKCS12_SAFEBAG * 795893597fSschwarze.Fo d2i_PKCS12_SAFEBAG 805893597fSschwarze.Fa "PKCS12_SAFEBAG **val_out" 815893597fSschwarze.Fa "const unsigned char **der_in" 825893597fSschwarze.Fa "long length" 835893597fSschwarze.Fc 845893597fSschwarze.Ft int 855893597fSschwarze.Fo i2d_PKCS12_SAFEBAG 865893597fSschwarze.Fa "PKCS12_SAFEBAG *val_in" 875893597fSschwarze.Fa "unsigned char **der_out" 885893597fSschwarze.Fc 895893597fSschwarze.Ft PKCS12_BAGS * 905893597fSschwarze.Fo d2i_PKCS12_BAGS 915893597fSschwarze.Fa "PKCS12_BAGS **val_out" 925893597fSschwarze.Fa "const unsigned char **der_in" 935893597fSschwarze.Fa "long length" 945893597fSschwarze.Fc 955893597fSschwarze.Ft int 965893597fSschwarze.Fo i2d_PKCS12_BAGS 975893597fSschwarze.Fa "PKCS12_BAGS *val_in" 985893597fSschwarze.Fa "unsigned char **der_out" 995893597fSschwarze.Fc 1005893597fSschwarze.Sh DESCRIPTION 1015893597fSschwarzeThese functions decode and encode PKCS#12 structures. 1025893597fSschwarzeFor details about the semantics, examples, caveats, and bugs, see 1035893597fSschwarze.Xr ASN1_item_d2i 3 . 1045893597fSschwarze.Pp 1055893597fSschwarze.Fn d2i_PKCS12 1065893597fSschwarzeand 1075893597fSschwarze.Fn i2d_PKCS12 1085893597fSschwarzedecode and encode an ASN.1 1095893597fSschwarze.Vt PFX 1105893597fSschwarze.Pq personal information exchange 1115893597fSschwarzestructure defined in RFC 7292 section 4. 1125893597fSschwarze.Fn d2i_PKCS12_bio , 1135893597fSschwarze.Fn i2d_PKCS12_bio , 1145893597fSschwarze.Fn d2i_PKCS12_fp , 1155893597fSschwarzeand 1165893597fSschwarze.Fn i2d_PKCS12_fp 1175893597fSschwarzeare similar except that they decode or encode using a 1185893597fSschwarze.Vt BIO 1195893597fSschwarzeor 1205893597fSschwarze.Vt FILE 1215893597fSschwarzepointer. 1225893597fSschwarze.Pp 1235893597fSschwarze.Fn d2i_PKCS12_MAC_DATA 1245893597fSschwarzeand 1255893597fSschwarze.Fn i2d_PKCS12_MAC_DATA 1265893597fSschwarzedecode and encode an ASN.1 1275893597fSschwarze.Vt MacData 1285893597fSschwarzestructure defined in RFC 7292 section 4. 1295893597fSschwarze.Pp 1305893597fSschwarze.Fn d2i_PKCS12_SAFEBAG 1315893597fSschwarzeand 1325893597fSschwarze.Fn i2d_PKCS12_SAFEBAG 1335893597fSschwarzedecode and encode an ASN.1 1345893597fSschwarze.Vt SafeBag 1355893597fSschwarzestructure defined in RFC 7292 section 4.2. 1365893597fSschwarze.Pp 1375893597fSschwarze.Fn d2i_PKCS12_BAGS 1385893597fSschwarzeand 1395893597fSschwarze.Fn i2d_PKCS12_BAGS 1405893597fSschwarzedecode and encode the bagValue field of an ASN.1 1415893597fSschwarze.Vt SafeBag 1425893597fSschwarzestructure. 1435893597fSschwarze.Sh RETURN VALUES 1445893597fSschwarze.Fn d2i_PKCS12 , 1455893597fSschwarze.Fn d2i_PKCS12_bio , 1465893597fSschwarzeand 1475893597fSschwarze.Fn d2i_PKCS12_fp 1485893597fSschwarzereturn a 1495893597fSschwarze.Vt PKCS12 1505893597fSschwarzeobject or 1515893597fSschwarze.Dv NULL 1525893597fSschwarzeif an error occurs. 1535893597fSschwarze.Pp 1545893597fSschwarze.Fn d2i_PKCS12_MAC_DATA , 1555893597fSschwarze.Fn d2i_PKCS12_SAFEBAG , 1565893597fSschwarzeand 1575893597fSschwarze.Fn d2i_PKCS12_BAGS 1585893597fSschwarzereturn a 1595893597fSschwarze.Vt PKCS12_MAC_DATA , 1605893597fSschwarze.Vt PKCS12_SAFEBAG , 1615893597fSschwarzeor 1625893597fSschwarze.Vt PKCS12_BAGS 1635893597fSschwarzeobject, respectively, or 1645893597fSschwarze.Dv NULL 1655893597fSschwarzeif an error occurs. 1665893597fSschwarze.Pp 1675893597fSschwarze.Fn i2d_PKCS12 , 1685893597fSschwarze.Fn i2d_PKCS12_MAC_DATA , 1695893597fSschwarze.Fn i2d_PKCS12_SAFEBAG , 1705893597fSschwarzeand 1715893597fSschwarze.Fn i2d_PKCS12_BAGS 1725893597fSschwarzereturn the number of bytes successfully encoded or a negative value 1735893597fSschwarzeif an error occurs. 1745893597fSschwarze.Pp 1755893597fSschwarze.Fn i2d_PKCS12_bio 1765893597fSschwarzeand 1775893597fSschwarze.Fn i2d_PKCS12_fp 1785893597fSschwarzereturn 1 for success or 0 if an error occurs. 1795893597fSschwarze.Sh SEE ALSO 1805893597fSschwarze.Xr ASN1_item_d2i 3 , 1815893597fSschwarze.Xr PKCS12_create 3 , 1825893597fSschwarze.Xr PKCS12_new 3 , 1835893597fSschwarze.Xr PKCS12_parse 3 , 1845893597fSschwarze.Xr PKCS12_SAFEBAG_new 3 1855893597fSschwarze.Sh STANDARDS 1865893597fSschwarzeRFC 7292: PKCS #12: Personal Information Exchange Syntax 187*c52b7c01Sschwarze.Sh HISTORY 188*c52b7c01Sschwarze.Fn d2i_PKCS12 , 189*c52b7c01Sschwarze.Fn i2d_PKCS12 , 190*c52b7c01Sschwarze.Fn d2i_PKCS12_bio , 191*c52b7c01Sschwarze.Fn i2d_PKCS12_bio , 192*c52b7c01Sschwarze.Fn d2i_PKCS12_fp , 193*c52b7c01Sschwarze.Fn i2d_PKCS12_fp , 194*c52b7c01Sschwarze.Fn d2i_PKCS12_MAC_DATA , 195*c52b7c01Sschwarze.Fn i2d_PKCS12_MAC_DATA , 196*c52b7c01Sschwarze.Fn d2i_PKCS12_SAFEBAG , 197*c52b7c01Sschwarze.Fn i2d_PKCS12_SAFEBAG , 198*c52b7c01Sschwarze.Fn d2i_PKCS12_BAGS , 199*c52b7c01Sschwarzeand 200*c52b7c01Sschwarze.Fn i2d_PKCS12_BAGS 201*c52b7c01Sschwarzefirst appeared in OpenSSL 0.9.3 and have been available since 202*c52b7c01Sschwarze.Ox 2.6 . 203