Sample code for 30+ languages & platforms
PureBasic

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 PureBasic Downloads

PureBasic
IncludeFile "CkPfx.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

    pfx.i = CkPfx::ckCreate()
    If pfx.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    json.i = CkJsonObject::ckCreate()
    If json.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Build JSON containing the HMAC integrity (PFX) password, and the 
    ; password for the private keys.
    CkJsonObject::ckUpdateString(json,"integrity","password1")
    CkJsonObject::ckUpdateString(json,"privKeys","password2")

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

    ; Use the above JSON instead of a simple password string when loading the PFX:
    success = CkPfx::ckLoadPfxFile(pfx,"qa_data/pfx/PrivateKeyPassIsDifferent.pfx",CkJsonObject::ckEmit(json))
    If success <> 1
        Debug CkPfx::ckLastErrorText(pfx)
        CkPfx::ckDispose(pfx)
        CkJsonObject::ckDispose(json)
        ProcedureReturn
    EndIf

    Debug "Success."


    CkPfx::ckDispose(pfx)
    CkJsonObject::ckDispose(json)


    ProcedureReturn
EndProcedure