Tcl
Tcl
Duplicate openssl smime -decrypt -in some_file.dat.enc -binary -inform DER -inkey private.key -out some_file.dat
See more OpenSSL Examples
Demonstrates how to decrypt binary DER that was encrypted using the following openssl command:openssl smime -encrypt -binary -aes-256-cbc -in some_file.dat -out some_file.dat.enc -outform DER cert.crt
Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
# Duplicates the following openssl command:
# openssl smime -decrypt -in hello.txt.enc -binary -inform DER -inkey private.key -out hello.txt
set cert [new_CkCert]
set success [CkCert_LoadFromFile $cert "qa_data/openssl/EE.cer"]
if {$success == 0} then {
puts [CkCert_lastErrorText $cert]
delete_CkCert $cert
exit
}
set bd [new_CkBinData]
set success [CkBinData_LoadFile $bd "qa_data/openssl/EE.key"]
# Assuming success..
set privKey [new_CkPrivateKey]
set success [CkPrivateKey_LoadAnyFormat $privKey $bd ""]
if {$success == 0} then {
puts [CkPrivateKey_lastErrorText $privKey]
delete_CkCert $cert
delete_CkBinData $bd
delete_CkPrivateKey $privKey
exit
}
set crypt [new_CkCrypt2]
set success [CkCrypt2_SetDecryptCert2 $crypt $cert $privKey]
if {$success == 0} then {
puts [CkCrypt2_lastErrorText $crypt]
delete_CkCert $cert
delete_CkBinData $bd
delete_CkPrivateKey $privKey
delete_CkCrypt2 $crypt
exit
}
CkCrypt2_put_CryptAlgorithm $crypt "PKI"
set success [CkCrypt2_CkDecryptFile $crypt "qa_data/openssl/hello.txt.enc" "qa_output/hello.txt"]
if {$success == 0} then {
puts [CkCrypt2_lastErrorText $crypt]
delete_CkCert $cert
delete_CkBinData $bd
delete_CkPrivateKey $privKey
delete_CkCrypt2 $crypt
exit
}
puts "Success."
delete_CkCert $cert
delete_CkBinData $bd
delete_CkPrivateKey $privKey
delete_CkCrypt2 $crypt