PKCS12_SAFEBAG_get1_cert.pod 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. =pod
  2. =head1 NAME
  3. PKCS12_SAFEBAG_get0_attr, PKCS12_SAFEBAG_get0_type,
  4. PKCS12_SAFEBAG_get_nid, PKCS12_SAFEBAG_get_bag_nid,
  5. PKCS12_SAFEBAG_get0_bag_obj, PKCS12_SAFEBAG_get0_bag_type,
  6. PKCS12_SAFEBAG_get1_cert_ex, PKCS12_SAFEBAG_get1_cert,
  7. PKCS12_SAFEBAG_get1_crl_ex, PKCS12_SAFEBAG_get1_crl,
  8. PKCS12_SAFEBAG_get0_safes, PKCS12_SAFEBAG_get0_p8inf,
  9. PKCS12_SAFEBAG_get0_pkcs8 - Get objects from a PKCS#12 safeBag
  10. =head1 SYNOPSIS
  11. #include <openssl/pkcs12.h>
  12. const ASN1_TYPE *PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag,
  13. int attr_nid);
  14. const ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag);
  15. int PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag);
  16. int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag);
  17. const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag);
  18. const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag);
  19. X509_CRL *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag,
  20. OSSL_LIB_CTX *libctx, const char *propq);
  21. X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag);
  22. X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag,
  23. OSSL_LIB_CTX *libctx, const char *propq);
  24. X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag);
  25. const STACK_OF(PKCS12_SAFEBAG) *PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag);
  26. const PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag);
  27. const X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag);
  28. =head1 DESCRIPTION
  29. PKCS12_SAFEBAG_get0_attr() gets the attribute value corresponding to the B<attr_nid>.
  30. PKCS12_SAFEBAG_get0_type() gets the B<safeBag> type as an OID, whereas
  31. PKCS12_SAFEBAG_get_nid() gets the B<safeBag> type as an NID, which could be
  32. B<NID_certBag>, B<NID_crlBag>, B<NID_keyBag>, B<NID_secretBag>, B<NID_safeContentsBag>
  33. or B<NID_pkcs8ShroudedKeyBag>.
  34. PKCS12_SAFEBAG_get_bag_nid() gets the type of the object contained within the
  35. B<PKCS12_SAFEBAG>. This corresponds to the bag type for most bags, but can be
  36. arbitrary for B<secretBag>s. PKCS12_SAFEBAG_get0_bag_type() gets this type as an OID.
  37. PKCS12_SAFEBAG_get0_bag_obj() retrieves the object contained within the safeBag.
  38. PKCS12_SAFEBAG_get1_cert_ex() and PKCS12_SAFEBAG_get1_crl_ex() return new B<X509> or
  39. B<X509_CRL> objects from the item in the safeBag. I<libctx> and I<propq> are used when
  40. fetching algorithms, and may optionally be set to NULL.
  41. PKCS12_SAFEBAG_get1_cert() and PKCS12_SAFEBAG_get1_crl() are the same as
  42. PKCS12_SAFEBAG_get1_cert_ex() and PKCS12_SAFEBAG_get1_crl_ex() and set the I<libctx> and
  43. I<prop> to NULL. This will use the default library context.
  44. PKCS12_SAFEBAG_get0_p8inf() and PKCS12_SAFEBAG_get0_pkcs8() return the PKCS8 object
  45. from a PKCS8shroudedKeyBag or a keyBag.
  46. PKCS12_SAFEBAG_get0_safes() retrieves the set of B<safeBags> contained within a
  47. safeContentsBag.
  48. =head1 RETURN VALUES
  49. PKCS12_SAFEBAG_get_nid() and PKCS12_SAFEBAG_get_bag_nid() return the NID of the safeBag
  50. or bag object, or -1 if there is no corresponding NID.
  51. Other functions return a valid object of the specified type or NULL if an error occurred.
  52. =head1 SEE ALSO
  53. L<PKCS12_create(3)>,
  54. L<PKCS12_add_safe(3)>,
  55. L<PKCS12_add_safes(3)>
  56. =head1 HISTORY
  57. The functions PKCS12_SAFEBAG_get1_cert_ex() and PKCS12_SAFEBAG_get1_crl_ex() were
  58. added in OpenSSL 3.2.
  59. =head1 COPYRIGHT
  60. Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved.
  61. Licensed under the Apache License 2.0 (the "License"). You may not use
  62. this file except in compliance with the License. You can obtain a copy
  63. in the file LICENSE in the source distribution or at
  64. L<https://www.openssl.org/source/license.html>.
  65. =cut