DataFlex
DataFlex
Decrypt2
See more MIME Examples
Demonstrates how to decrypt MIME using a certificate and private key where the certificate and its corresponding private key are stored in separate files -- a .cer for the certificate, and a .pem for the private key.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoMime
Variant vCert
Handle hoCert
Variant vPrivKey
Handle hoPrivKey
String sTemp1
Move False To iSuccess
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatMime)) To hoMime
If (Not(IsComObjectCreated(hoMime))) Begin
Send CreateComObject of hoMime
End
// Load the certificate from a .cer file.
Get Create (RefClass(cComChilkatCert)) To hoCert
If (Not(IsComObjectCreated(hoCert))) Begin
Send CreateComObject of hoCert
End
Get ComLoadFromFile Of hoCert "aaworkarea/myCert.cer" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoCert To sTemp1
Showln sTemp1
Procedure_Return
End
// Load the private key from an encrypted PEM file.
// (A private key can be loaded from other file formats also..)
Get Create (RefClass(cComChilkatPrivateKey)) To hoPrivKey
If (Not(IsComObjectCreated(hoPrivKey))) Begin
Send CreateComObject of hoPrivKey
End
Get ComLoadEncryptedPemFile Of hoPrivKey "aaworkarea/myPrivateKey.pem" "myPassword" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPrivKey To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComLoadMimeFile Of hoMime "aaworkarea/encryptedMime.txt" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoMime To sTemp1
Showln sTemp1
Procedure_Return
End
// Decrypt using the cert and associated private key
Get pvComObject of hoCert to vCert
Get pvComObject of hoPrivKey to vPrivKey
Get ComDecrypt2 Of hoMime vCert vPrivKey To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoMime To sTemp1
Showln sTemp1
Procedure_Return
End
// Save the S/MIME to a file.
Get ComSaveMime Of hoMime "aaworkarea/decryptedMime.txt" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoMime To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "success!"
End_Procedure