d2i_PrivateKey.pod 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. =pod
  2. =head1 NAME
  3. d2i_Private_key, d2i_AutoPrivateKey, i2d_PrivateKey - decode and encode
  4. functions for reading and saving EVP_PKEY structures.
  5. =head1 SYNOPSIS
  6. #include <openssl/evp.h>
  7. EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp,
  8. long length);
  9. EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp,
  10. long length);
  11. int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp);
  12. =head1 DESCRIPTION
  13. d2i_PrivateKey() decodes a private key using algorithm B<type>. It attempts to
  14. use any key specific format or PKCS#8 unencrypted PrivateKeyInfo format. The
  15. B<type> parameter should be a public key algorithm constant such as
  16. B<EVP_PKEY_RSA>. An error occurs if the decoded key does not match B<type>.
  17. d2i_AutoPrivateKey() is similar to d2i_PrivateKey() except it attempts to
  18. automatically detect the private key format.
  19. i2d_PrivateKey() encodes B<key>. It uses a key specific format or, if none is
  20. defined for that key type, PKCS#8 unencrypted PrivateKeyInfo format.
  21. These functions are similar to the d2i_X509() functions, and you should refer to
  22. that page for a detailed description (see L<d2i_X509(3)>).
  23. =head1 NOTES
  24. All these functions use DER format and unencrypted keys. Applications wishing
  25. to encrypt or decrypt private keys should use other functions such as
  26. d2i_PKC8PrivateKey() instead.
  27. If the B<*a> is not NULL when calling d2i_PrivateKey() or d2i_AutoPrivateKey()
  28. (i.e. an existing structure is being reused) and the key format is PKCS#8
  29. then B<*a> will be freed and replaced on a successful call.
  30. =head1 RETURN VALUES
  31. d2i_PrivateKey() and d2i_AutoPrivateKey() return a valid B<EVP_KEY> structure
  32. or B<NULL> if an error occurs. The error code can be obtained by calling
  33. L<ERR_get_error(3)>.
  34. i2d_PrivateKey() returns the number of bytes successfully encoded or a
  35. negative value if an error occurs. The error code can be obtained by calling
  36. L<ERR_get_error(3)>.
  37. =head1 SEE ALSO
  38. L<crypto(3)>,
  39. L<d2i_PKCS8PrivateKey(3)>
  40. =cut