Share via


PFXExportCertStoreEx (Compact 2013)

3/28/2014

This function exports the certificates and, if available, their associated private keys from the referenced certificate store in Personal Information Exchange (PFX) format.

PFX format is also known as Public-Key Cryptography Standards #12 (PKCS #12) format.

PFXExportCertStoreEx function should be used for its enhanced private key security.

Syntax

BOOL WINAPI PFXExportCertStoreEx(
  HCERTSTORE hStore,
  CRYPT_DATA_BLOB* pPFX,
  LPCWSTR szPassword,
  void* pvReserved,
  DWORD dwFlags
);

Parameters

  • hStore
    [in] Handle of the certificate store containing the certificates to be exported.
  • pPFX
    [in, out] Pointer to a CRYPT_DATA_BLOB structure to contain the PFX packet with the exported certificates and keys. If pPFX->pbData is NULL, the function calculates the number of bytes needed for the encoded BLOB and returns this in pPFX->cbData. When the function is called with pPFX->pbData pointing to an allocated buffer of the needed size, the function copies the encoded bytes into the buffer and updates pPFX->cbData with the encode byte length.
  • szPassword
    [in] String password used to encrypt and verify the PFX packet.
  • pvReserved
    Reserved; set to NULL.
  • dwFlags
    [in] Flag values can be set to any combination of the following.

    Flag value

    Description

    EXPORT_PRIVATE_KEYS

    Private keys are exported as well as the certificates.

    REPORT_NO_PRIVATE_KEY

    If a certificate is encountered that has no associated private key, the function returns FALSE with the last error set to either CRYPT_E_NOT_FOUND or NTE_NO_KEY.

    REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY

    If a certificate is encountered that has a non-exportable private key, the function returns FALSE with the last error set to either CRYPT_E_NOT_FOUND or NTE_BAD_KEY or NTE_BAD_KEY_STATE.

Return Value

Returns TRUE if the function succeeds, and FALSE if the function fails.

For extended error information, call GetLastError.

Remarks

When you have finished using szPassword, clear the password from memory by calling the SecureZeroMemory function.

Requirements

Header

wincrypt.h

Library

crypt32.lib

See Also

Reference

Certificates Functions
PFXImportCertStore