(Tcl) Extract PKCS7 from MIME and Decrypt
Extracts the base64-encoded PKCS7 body of a MIME message to a file, and then decrypts using Chilkat Crypt2.
load ./chilkat.dll
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set mime [new_CkMime]
set success [CkMime_LoadMimeFile $mime "c:/aaworkarea/EmailInBytes.txt"]
if {$success != 1} then {
puts [CkMime_lastErrorText $mime]
delete_CkMime $mime
exit
}
set success [CkMime_SaveBody $mime "c:/aaworkarea/smime.p7m"]
if {$success != 1} then {
puts [CkMime_lastErrorText $mime]
delete_CkMime $mime
exit
}
set crypt [new_CkCrypt2]
set success [CkCrypt2_AddPfxSourceFile $crypt "c:/aaworkarea/my.pfx" "pfxPassword"]
if {$success == 0} then {
puts [CkCrypt2_lastErrorText $crypt]
delete_CkMime $mime
delete_CkCrypt2 $crypt
exit
}
# Indicate the public-key (PKCS7) encryption/decryption should be used:
CkCrypt2_put_CryptAlgorithm $crypt "pki"
set inPath "c:/aaworkarea/smime.p7m"
set outPath "c:/aaworkarea/decrypted.dat"
set success [CkCrypt2_CkDecryptFile $crypt $inPath $outPath]
if {$success == 0} then {
puts [CkCrypt2_lastErrorText $crypt]
delete_CkMime $mime
delete_CkCrypt2 $crypt
exit
}
puts "Success."
delete_CkMime $mime
delete_CkCrypt2 $crypt
|