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