Sample code for 30+ languages & platforms
PureBasic

Provide a Certificate Vault to an Email

See more Email Object Examples

Demonstrates the Chilkat Email.UseCertVault method, which adds an XML certificate vault to the email's internal certificate and private-key lookup sources for encryption, decryption, signing, and verification. This example builds a vault from a PFX and attaches it to the email.

Background: A certificate vault is a portable, in-memory store of certificates and private keys. Instead of wiring up each certificate individually for every operation, you load your credentials into one XmlCertVault and hand it to the email; Chilkat then draws on it automatically whenever it needs a key — to decrypt an incoming message, sign an outgoing one, or verify a signature. This is especially convenient on platforms without an OS certificate store.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkXmlCertVault.pb"
IncludeFile "CkEmail.pb"

Procedure ChilkatExample()

    success.i = 0

    ;  Demonstrates the UseCertVault method, which adds an XML certificate vault to the email's
    ;  internal certificate and private-key lookup sources for encryption, decryption, signing,
    ;  and verification.

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

    ;  Build a certificate vault from a PFX (certificate + private key).
    vault.i = CkXmlCertVault::ckCreate()
    If vault.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkXmlCertVault::ckAddPfxFile(vault,"qa_data/certs/certs.pfx","pfx_password")
    If success = 0
        Debug CkXmlCertVault::ckLastErrorText(vault)
        CkEmail::ckDispose(email)
        CkXmlCertVault::ckDispose(vault)
        ProcedureReturn
    EndIf

    ;  Make the vault available to the email object for crypto operations.
    success = CkEmail::ckUseCertVault(email,vault)
    If success = 0
        Debug CkEmail::ckLastErrorText(email)
        CkEmail::ckDispose(email)
        CkXmlCertVault::ckDispose(vault)
        ProcedureReturn
    EndIf

    Debug "Certificate vault attached to the email."

    ;  Note: The path "qa_data/certs/certs.pfx" is a relative local filesystem path,
    ;  relative to the current working directory of the running application.


    CkEmail::ckDispose(email)
    CkXmlCertVault::ckDispose(vault)


    ProcedureReturn
EndProcedure