1*b077aed3SPierre Pronchery=pod 2*b077aed3SPierre Pronchery 3*b077aed3SPierre Pronchery=head1 NAME 4*b077aed3SPierre Pronchery 5*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get0_attr, PKCS12_SAFEBAG_get0_type, 6*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get_nid, PKCS12_SAFEBAG_get_bag_nid, 7*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get0_bag_obj, PKCS12_SAFEBAG_get0_bag_type, 8*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get1_cert, PKCS12_SAFEBAG_get1_crl, 9*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get0_safes, PKCS12_SAFEBAG_get0_p8inf, 10*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get0_pkcs8 - Get objects from a PKCS#12 safeBag 11*b077aed3SPierre Pronchery 12*b077aed3SPierre Pronchery=head1 SYNOPSIS 13*b077aed3SPierre Pronchery 14*b077aed3SPierre Pronchery #include <openssl/pkcs12.h> 15*b077aed3SPierre Pronchery 16*b077aed3SPierre Pronchery const ASN1_TYPE *PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag, 17*b077aed3SPierre Pronchery int attr_nid); 18*b077aed3SPierre Pronchery const ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag); 19*b077aed3SPierre Pronchery int PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag); 20*b077aed3SPierre Pronchery int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); 21*b077aed3SPierre Pronchery const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); 22*b077aed3SPierre Pronchery const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); 23*b077aed3SPierre Pronchery X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); 24*b077aed3SPierre Pronchery X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); 25*b077aed3SPierre Pronchery const STACK_OF(PKCS12_SAFEBAG) *PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); 26*b077aed3SPierre Pronchery const PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag); 27*b077aed3SPierre Pronchery const X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag); 28*b077aed3SPierre Pronchery 29*b077aed3SPierre Pronchery=head1 DESCRIPTION 30*b077aed3SPierre Pronchery 31*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get0_attr() gets the attribute value corresponding to the B<attr_nid>. 32*b077aed3SPierre Pronchery 33*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get0_type() gets the B<safeBag> type as an OID, whereas 34*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get_nid() gets the B<safeBag> type as an NID, which could be 35*b077aed3SPierre ProncheryB<NID_certBag>, B<NID_crlBag>, B<NID_keyBag>, B<NID_secretBag>, B<NID_safeContentsBag> 36*b077aed3SPierre Proncheryor B<NID_pkcs8ShroudedKeyBag>. 37*b077aed3SPierre Pronchery 38*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get_bag_nid() gets the type of the object contained within the 39*b077aed3SPierre ProncheryB<PKCS12_SAFEBAG>. This corresponds to the bag type for most bags, but can be 40*b077aed3SPierre Proncheryarbitrary for B<secretBag>s. PKCS12_SAFEBAG_get0_bag_type() gets this type as an OID. 41*b077aed3SPierre Pronchery 42*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get0_bag_obj() retrieves the object contained within the safeBag. 43*b077aed3SPierre Pronchery 44*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get1_cert() and PKCS12_SAFEBAG_get1_crl() return new B<X509> or 45*b077aed3SPierre ProncheryB<X509_CRL> objects from the item in the safeBag. 46*b077aed3SPierre Pronchery 47*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get0_p8inf() and PKCS12_SAFEBAG_get0_pkcs8() return the PKCS8 object 48*b077aed3SPierre Proncheryfrom a PKCS8shroudedKeyBag or a keyBag. 49*b077aed3SPierre Pronchery 50*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get0_safes() retrieves the set of B<safeBags> contained within a 51*b077aed3SPierre ProncherysafeContentsBag. 52*b077aed3SPierre Pronchery 53*b077aed3SPierre Pronchery=head1 RETURN VALUES 54*b077aed3SPierre Pronchery 55*b077aed3SPierre ProncheryPKCS12_SAFEBAG_get_nid() and PKCS12_SAFEBAG_get_bag_nid() return the NID of the safeBag 56*b077aed3SPierre Proncheryor bag object, or -1 if there is no corresponding NID. 57*b077aed3SPierre ProncheryOther functions return a valid object of the specified type or NULL if an error occurred. 58*b077aed3SPierre Pronchery 59*b077aed3SPierre Pronchery=head1 SEE ALSO 60*b077aed3SPierre Pronchery 61*b077aed3SPierre ProncheryL<PKCS12_create(3)>, 62*b077aed3SPierre ProncheryL<PKCS12_add_safe(3)>, 63*b077aed3SPierre ProncheryL<PKCS12_add_safes(3)> 64*b077aed3SPierre Pronchery 65*b077aed3SPierre Pronchery=head1 COPYRIGHT 66*b077aed3SPierre Pronchery 67*b077aed3SPierre ProncheryCopyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. 68*b077aed3SPierre Pronchery 69*b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License"). You may not use 70*b077aed3SPierre Proncherythis file except in compliance with the License. You can obtain a copy 71*b077aed3SPierre Proncheryin the file LICENSE in the source distribution or at 72*b077aed3SPierre ProncheryL<https://www.openssl.org/source/license.html>. 73*b077aed3SPierre Pronchery 74*b077aed3SPierre Pronchery=cut 75