Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Tcl) PKCS7 Encrypt using Multiple CertificatesEncrypts MIME using multiple digital certificates. Calls AddEncryptCert once per certificate, followed by a call to EncryptN. The MIME may be decrypted by any owner of one of the certificates + its associated private key.
load ./chilkat.dll # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set mime [new_CkMime] # Build a simple MIME message to be encrypted: set success [CkMime_AddHeaderField $mime "Content-Type" "text/plain"] set success [CkMime_AddHeaderField $mime "abc" "123"] CkMime_SetBody $mime "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. # Load one cert from a .cer file: set cert1 [new_CkCert] set success [CkCert_LoadFromFile $cert1 "myCert.cer"] if {$success == 0} then { puts [CkCert_lastErrorText $cert1] delete_CkMime $mime delete_CkCert $cert1 exit } # Load another cert ... set cert2 [new_CkCert] set success [CkCert_LoadFromFile $cert2 "anotherCert.cer"] if {$success == 0} then { puts [CkCert_lastErrorText $cert2] delete_CkMime $mime delete_CkCert $cert1 delete_CkCert $cert2 exit } # Tell the MIME object to use these certs for encrypting: # (AddEncryptCert shouldn't fail if we already know it contains # a valid certificate..) set success [CkMime_AddEncryptCert $mime $cert1] set success [CkMime_AddEncryptCert $mime $cert2] # Encrypt the MIME: set success [CkMime_EncryptN $mime] if {$success == 0} then { puts [CkMime_lastErrorText $mime] delete_CkMime $mime delete_CkCert $cert1 delete_CkCert $cert2 exit } # Display the MIME: puts [CkMime_getMime $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" # # MIID4QYJKoZIhvcNAQcDoIID0jCCA84CAQAxggNlMIIBgQIBADBpMFUxCzAJBgNVBAYTAlpBMSUw # IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMR8wHQYDVQQDExZUaGF3dGUgQ29k # ZSBTaWduaW5nIENBAhB4ouTcAmLszrGi170k1deSMA0GCSqGSIb3DQEBAQUABIIBAKnOPgmISrNH # Hd+zESvH5dl5TvBLCxLuIuH6cuZdowHzCqAUzaYFdn1rp88Vvu2x3s6WOvzje/+dE1x0YjEpeqxd # ufehlb6Jl9ucxSMWARWMxWGxu0eZGJVt+SBBrVddqdtrIU9lVt5rBxkU67P8PxgbwdNCX3qJENRO # P/rvp5ngoCkpIxeGqSkPvWv+CA3IXS8FPs8Sl4HNPiAj3e9RBm2MxI1u4cn1HvgGg8yHgHLMG5JF # LzGsmotSQaqEwq2JtOlkjfOwEI+ZhbWQupj6gen2aGc5sW3J26H1usxtV2TQ7WRRxqnZGmlh20dW # 4lo3kITYI+iapGlJXmrlDYh2CjkwggHcAgEAMIHDMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMC # VVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdv # cmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJG # aXJzdC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWlsAhAj50QEWUPwA+jXOiL8sMwXMA0G # CSqGSIb3DQEBAQUABIIBAFQ1cydWC4M9tdgAlCN03kP8eyuXajwT+5ByhOcJhjuCABg7U8w4Rx28 # braGqV+TCBxjyMsqD0KcW49VT6ZHMpQ1yN8R72qDsidmfm9w3u0jVgsaaBkTJXMy4COY/3cZWmYG # dL3Qty8uFeQYddytt6UPJpGJZYsrdFG2doe6qHiRtAxxPrd0GmQRcGvxyDdsojkoBlTMbfwaXOI3 # xepR/oh60x/3npUCsl2VpNPfo6oZoej6YZGEuz2MvuWvXVhvuqoTqXGwGDgYMxwTbPwklqZiJtsK # r5Ep3NlWAQX8MGWL0H+NC22cqJuqUCL05yqyAv+JMCpZGAwOVb/wiVNjpAIwYAYJKoZIhvcNAQcB # MBkGCCqGSIb3DQMCMA0CAToECA5NAJY12cU+gDgZFUc+nsQUUbiR1GH8iBVLI+XWlja9TXEe1Hzt # NlsOylRVBDzjNxUtX/zC0YR7bs+2Cf4JbyuMOA== delete_CkMime $mime delete_CkCert $cert1 delete_CkCert $cert2 |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.