Lua
Lua
PKCS7 Encrypt MIME
See more MIME Examples
Encrypt MIME using a digital certificate to create PKCS7 encrypted S/MIME.Chilkat Lua Downloads
local chilkat = require("chilkat")
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local mime = chilkat.Mime.new()
-- Build a simple MIME message to be encrypted:
local success = mime:add_header_field("Content-Type", "text/plain")
success = mime:add_header_field("abc", "123")
mime:set_body("This is a test")
-- A digital certificate is required to create PKCS7 encrypted MIME.
-- It can come from a variety of sources: .cer file, .pfx file, PEM files,
-- an in-memory representation, or directly from a Windows
-- registry-based certificate store.
-- This example will load a certificate object from a .cer file.
-- Note: Only the public-key is required to encrypt. (Decryption
-- requires a private key.)
local cert = chilkat.Cert.new()
success = cert:load_from_file("myCert.cer")
if not success then
print(cert.last_error_text)
return
end
-- Encrypt the MIME:
success = mime:encrypt(cert)
if not success then
print(mime.last_error_text)
return
end
-- Display the MIME:
print(mime:get_mime())
-- The resulting S/MIME looks something like this:
-- abc: 123
-- Content-Disposition: attachment; filename="smime.p7m";
-- Content-Transfer-Encoding: base64
-- Content-Type: application/x-pkcs7-mime;
-- name="smime.p7m";
--
-- MIICAQYJKoZIhvcNAQcDoIIB8jCCAe4CAQAxggGFMIIBgQIBADBpMFUxCzAJBgNVBAYTAlpBMSUw
-- IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMR8wHQYDVQQDExZUaGF3dGUgQ29k
-- ZSBTaWduaW5nIENBAhB4ouTcAmLszrGi170k1deSMA0GCSqGSIb3DQEBAQUABIIBABz59iwVufLZ
-- QIPs0whUYMtBjIQxg5IOCxpoKJeJmLVzu9Q5Q1poxG9uYOveybS9c4wbl5A0DFfKTW5O4HhHcOHW
-- TgcH4iqdwhiFWm/q9d5rjceJWBFQsGOcgoXSU/U2Xp+N47/+Pqyc5XJbxKnOc4YhPzO320JZsNB6
-- p1NGk5SNnWqgbUDmEnfH8ZPHSV7dNi2aiFALYTyLjyp0lqJCsdZ524OPTZFfusrl/9ibPAW7jKuI
-- FgDCcBtRJvolVF8iIHxaTw4rhk0qb1KWzxvB5j9HSLdyIKIPhZbxeS10bx18YkSsBlKfdKRalQag
-- 3oWSRdsK9/N75YHG8Pm+x9BOHUAwYAYJKoZIhvcNAQcBMBkGCCqGSIb3DQMCMA0CAToECAb+toBW
-- txZigDhGZKSpUpuTiWvvSMemX/c79sSnMpuefVwGKFTDgXVLE2SoD5a9Yh5vcG7Mhl2IkilVwOMc
-- fi23+g==