Sample code for 30+ languages & platforms
Unicode C

Load PFX with Different Password for Private Keys

See more PFX/P12 Examples

Demonstrates how to load a PFX where the HMAC integrity password (the password for the entire PFX) is different than the password for the private keys contained inside.

Note: This example requires a new feature made available in Chilkat v9.5.0.75.

Chilkat Unicode C Downloads

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

void ChilkatSample(void)
    {
    BOOL success;
    HCkPfxW pfx;
    HCkJsonObjectW json;

    success = FALSE;

    pfx = CkPfxW_Create();
    json = CkJsonObjectW_Create();

    // Build JSON containing the HMAC integrity (PFX) password, and the 
    // password for the private keys.
    CkJsonObjectW_UpdateString(json,L"integrity",L"password1");
    CkJsonObjectW_UpdateString(json,L"privKeys",L"password2");

    // The JSON contains this:
    // 
    // 	{
    // 	  "integrity": "password1",
    // 	  "privKeys": "password2"
    // 	}
    // 

    // Use the above JSON instead of a simple password string when loading the PFX:
    success = CkPfxW_LoadPfxFile(pfx,L"qa_data/pfx/PrivateKeyPassIsDifferent.pfx",CkJsonObjectW_emit(json));
    if (success != TRUE) {
        wprintf(L"%s\n",CkPfxW_lastErrorText(pfx));
        CkPfxW_Dispose(pfx);
        CkJsonObjectW_Dispose(json);
        return;
    }

    wprintf(L"Success.\n");


    CkPfxW_Dispose(pfx);
    CkJsonObjectW_Dispose(json);

    }