PureBasic
PureBasic
Duplicate openssl smime -encrypt -binary -aes-256-cbc -in some_file.dat -out some_file.dat.enc -outform DER cert.crt
See more OpenSSL Examples
Demonstrates how to encrypt to binary DER using 256-bit AES (CBC mode) as the underlying symmetric encryption algorithm, to produce PKCS7 enveloped data (binary DER).Duplicates 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 PureBasic Downloads
IncludeFile "CkBinData.pb"
IncludeFile "CkCert.pb"
IncludeFile "CkCrypt2.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
cert.i = CkCert::ckCreate()
If cert.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkCert::ckLoadFromFile(cert,"qa_data/openssl/EE.cer")
If success = 0
Debug CkCert::ckLastErrorText(cert)
CkCert::ckDispose(cert)
ProcedureReturn
EndIf
bd.i = CkBinData::ckCreate()
If bd.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkBinData::ckLoadFile(bd,"qa_data/openssl/hello.txt")
; Assuming success..
crypt.i = CkCrypt2::ckCreate()
If crypt.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkCrypt2::ckSetEncryptCert(crypt,cert)
If success = 0
Debug CkCrypt2::ckLastErrorText(crypt)
CkCert::ckDispose(cert)
CkBinData::ckDispose(bd)
CkCrypt2::ckDispose(crypt)
ProcedureReturn
EndIf
CkCrypt2::setCkCryptAlgorithm(crypt, "PKI")
; Indicate the underlying symmetric encryption to be used:
CkCrypt2::setCkPkcs7CryptAlg(crypt, "aes")
CkCrypt2::setCkKeyLength(crypt, 256)
CkCrypt2::setCkCipherMode(crypt, "cbc")
success = CkCrypt2::ckCkEncryptFile(crypt,"qa_data/openssl/hello.txt","qa_output/hello.txt.enc")
If success = 0
Debug CkCrypt2::ckLastErrorText(crypt)
CkCert::ckDispose(cert)
CkBinData::ckDispose(bd)
CkCrypt2::ckDispose(crypt)
ProcedureReturn
EndIf
Debug "Success."
CkCert::ckDispose(cert)
CkBinData::ckDispose(bd)
CkCrypt2::ckDispose(crypt)
ProcedureReturn
EndProcedure