Sample code for 30+ languages & platforms
Visual FoxPro

Add a PFX Source from BinData

See more Email Object Examples

Demonstrates the Chilkat Email.AddPfxSourceBd method, which adds PFX data held in a BinData object to the list of certificate and private-key sources used during decryption or signing. The second argument is the PFX password. Call it before obtaining the encrypted email so Chilkat can decrypt it automatically. This example loads a PFX into a BinData, adds it, and then loads an encrypted email.

Background: This is the in-memory (BinData) counterpart to AddPfxSourceFile. It is the right choice when the PFX bytes come from somewhere other than a file — a database, a secrets manager, or an HTTP download — letting you supply the certificate and private key without first writing them to disk (which is preferable for sensitive key material).

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loEmail
LOCAL loBdPfx

lnSuccess = 0

*  Demonstrates the AddPfxSourceBd method, which adds PFX data (held in a BinData) to the
*  list of certificate and private-key sources used during decryption or signing.  The
*  second argument is the PFX password.  Call it before obtaining the encrypted email.

loEmail = CreateObject('Chilkat.Email')

*  Load PFX data into a BinData object.
loBdPfx = CreateObject('Chilkat.BinData')
lnSuccess = loBdPfx.LoadFile("qa_data/certs/decryption.pfx")
IF (lnSuccess = 0) THEN
    ? loBdPfx.LastErrorText
    RELEASE loEmail
    RELEASE loBdPfx
    CANCEL
ENDIF

*  Add the PFX as a source of the certificate + private key.
lnSuccess = loEmail.AddPfxSourceBd(loBdPfx,"pfx_password")
IF (lnSuccess = 0) THEN
    ? loEmail.LastErrorText
    RELEASE loEmail
    RELEASE loBdPfx
    CANCEL
ENDIF

*  Load an encrypted email; Chilkat decrypts it using the PFX source.
lnSuccess = loEmail.LoadEml("qa_data/eml/encrypted.eml")
IF (lnSuccess = 0) THEN
    ? loEmail.LastErrorText
    RELEASE loEmail
    RELEASE loBdPfx
    CANCEL
ENDIF

? "Decrypted = " + STR(loEmail.Decrypted)

*  Note: Paths such as "qa_data/..." are relative local filesystem paths,
*  relative to the current working directory of the running application.

RELEASE loEmail
RELEASE loBdPfx