Sample code for 30+ languages & platforms
Lua

PKCS7 Encrypt MIME

See more MIME Examples

Encrypt MIME using a digital certificate to create PKCS7 encrypted S/MIME.

Chilkat Lua Downloads

Lua
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==