Sample code for 30+ languages & platforms
Unicode C

Serialize a PFX to BinData

See more PFX/P12 Examples

Demonstrates Pfx.ToBd, which serializes the current PFX contents as PKCS#12 data into a BinData object, using the supplied output password.

Background. This is the in-memory equivalent of ToFile, producing the PKCS#12 bytes for further processing or transport.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkPfxW.h>
#include <C_CkBinDataW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkPfxW pfx;
    const wchar_t *password;
    const wchar_t *outputPassword;
    HCkBinDataW bd;

    success = FALSE;

    pfx = CkPfxW_Create();

    //  The file path is relative to the application's current working directory.  An absolute path
    //  may also be used.  Supply the path appropriate to your own environment.
    //  The PFX password should come from a secure source rather than being hard-coded.
    password = L"myPfxPassword";
    success = CkPfxW_LoadPfxFile(pfx,L"qa_data/identity.pfx",password);
    if (success == FALSE) {
        wprintf(L"%s\n",CkPfxW_lastErrorText(pfx));
        CkPfxW_Dispose(pfx);
        return;
    }

    //  Serialize the PFX contents as PKCS#12 data into a BinData, using the given output password.
    outputPassword = L"myOutputPassword";
    bd = CkBinDataW_Create();
    success = CkPfxW_ToBd(pfx,outputPassword,bd);
    if (success == FALSE) {
        wprintf(L"%s\n",CkPfxW_lastErrorText(pfx));
        CkPfxW_Dispose(pfx);
        CkBinDataW_Dispose(bd);
        return;
    }

    wprintf(L"Serialized %d bytes of PKCS#12 data.\n",CkBinDataW_getNumBytes(bd));


    CkPfxW_Dispose(pfx);
    CkBinDataW_Dispose(bd);

    }