PKCS12_parse.pod 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. =pod
  2. =head1 NAME
  3. PKCS12_parse - parse a PKCS#12 structure
  4. =head1 SYNOPSIS
  5. #include <openssl/pkcs12.h>
  6. int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca);
  7. =head1 DESCRIPTION
  8. PKCS12_parse() parses a PKCS12 structure.
  9. B<p12> is the B<PKCS12> structure to parse. B<pass> is the passphrase to use.
  10. If successful the private key will be written to B<*pkey>, the corresponding
  11. certificate to B<*cert> and any additional certificates to B<*ca>.
  12. =head1 NOTES
  13. The parameters B<pkey> and B<cert> cannot be B<NULL>. B<ca> can be <NULL> in
  14. which case additional certificates will be discarded. B<*ca> can also be a
  15. valid STACK in which case additional certificates are appended to B<*ca>. If
  16. B<*ca> is B<NULL> a new STACK will be allocated.
  17. The B<friendlyName> and B<localKeyID> attributes (if present) on each
  18. certificate will be stored in the B<alias> and B<keyid> attributes of the
  19. B<X509> structure.
  20. =head1 RETURN VALUES
  21. PKCS12_parse() returns 1 for success and zero if an error occurred.
  22. The error can be obtained from L<ERR_get_error(3)|ERR_get_error(3)>
  23. =head1 BUGS
  24. Only a single private key and corresponding certificate is returned by this
  25. function. More complex PKCS#12 files with multiple private keys will only
  26. return the first match.
  27. Only B<friendlyName> and B<localKeyID> attributes are currently stored in
  28. certificates. Other attributes are discarded.
  29. Attributes currently cannot be stored in the private key B<EVP_PKEY> structure.
  30. =head1 SEE ALSO
  31. L<d2i_PKCS12(3)|d2i_PKCS12(3)>
  32. =head1 HISTORY
  33. PKCS12_parse was added in OpenSSL 0.9.3
  34. =cut