Sample code for 30+ languages & platforms
Tcl

Extract PKCS7 from MIME and Decrypt

See more MIME Examples

Extracts the base64-encoded PKCS7 body of a MIME message to a file, and then decrypts using Chilkat Crypt2.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# 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