Perl Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Perl Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
SMTP
Socket / SSL
Spider
SFTP
SSH Key
SSH
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Amazon S3
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
Bzip2
LZW

 

 

 

 

 

 

 

Create S/MIME with Detached Signature

Perl example to create a simple S/MIME message with a detached digital signature.

 Chilkat Perl Module Downloads for Windows, Linux, and MAC OS X

use chilkat();

$mime = new chilkat::CkMime();

#  Any string argument automatically begins the 30-day trial.
$success = $mime->UnlockComponent("30-day trial");
if ($success != 1) {
    print "MIME component unlock failed" . "\n";
    exit;
}

#  Find our digital certificate from the Current User certificate store.
$ccs = new chilkat::CkCreateCS();

$certStore = $ccs->OpenCurrentUserStore();

$cert = $certStore->FindCertBySubjectCN("Chilkat Software, Inc.");

if ($cert eq null ) {
    print $cert->lastErrorText() . "\n";
    exit;
}

#  Our MIME object is currently empty.  Add some header fields
#  and a body:
$mime->AddHeaderField("subject","this is a test");
$mime->AddHeaderField("test123","this is a test 123");
$mime->put_ContentType("text/plain");
$mime->put_Charset("iso-8859-1");
$mime->SetBodyFromPlainText("This is the body");

print "Original MIME message:" . "\r\n";
print $mime->getMime() . "\r\n";

#  The original MIME looks like this:
#  ----------------------------------
#  subject: this is a test
#  test123: this is a test 123
#  content-type: text/plain;
#  	 charset="iso-8859-1"
# 
#  This is the body
#  ----------------------------------

#  Add a detached signature.  Transfer the header fields
#  from our existing MIME to what will become the new outer
#  envelope.
$transferHeaderFields = 1;
$success = $mime->AddDetachedSignature2($cert,$transferHeaderFields);
if ($success != 1) {
    print $mime->lastErrorText() . "\n";
    exit;
}

print "----------------------------------" . "\r\n";
print "S/MIME with detached signature:" . "\r\n";
print $mime->getMime() . "\r\n";

print "Success!" . "\n";

#  The signed MIME looks like this:
#  --------------------------------
#  content-type: multipart/signed;
#  	boundary="----=_NextPart_e7c_2b68_282042d9.6ba23d56";
#  	protocol="application/x-pkcs7-signature";
#  	micalg=SHA1
#  subject: this is a test
#  test123: this is a test 123
# 
#  This is a multi-part message in MIME format.
# 
#  ------=_NextPart_e7c_2b68_282042d9.6ba23d56
#  content-type: text/plain;
#  	 charset="iso-8859-1"
# 
#  This is the body
#  ------=_NextPart_e7c_2b68_282042d9.6ba23d56
#  content-transfer-encoding: base64
#  content-type: application/x-pkcs7-signature;
#  	name="smime.p7s"
#  content-disposition: attachment;
#  	 filename="smime.p7s"
# 
#  MIIGAAYJKoZIhvcNAQcCoIIF8TCCBe0CAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC
#  A9kwggPVMIIDPqADAgECAhB4ouTcAmLszrGi170k1deSMA0GCSqGSIb3DQEBBQUAMFUxCzAJ
#  BgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMR8wHQYD
#  VQQDExZUaGF3dGUgQ29kZSBTaWduaW5nIENBMB4XDTA3MDExNTAwMDAwMFoXDTA4MDExNTIz
#  NTk1OVowgZ0xCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4GA1UEBxMHV2hl
#  YXRvbjEfMB0GA1UEChMWQ2hpbGthdCBTb2Z0d2FyZSwgSW5jLjEnMCUGA1UECxMeU2VjdXJl
#  IEFwcGxpY2F0aW9uIERldmVsb3BtZW50MR8wHQYDVQQDExZDaGlsa2F0IFNvZnR3YXJlLCBJ
#  bmMuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwR2t6b/Kn4VzNCOlj1YGkHxD
#  YPVnfZNIeO7hmutreK6kr94xm9RlQn+vkN1uRMhvSbOdds+B25o+AyAeuBmLsuxoNRCC9AUb
#  a37pY8eL04AaTEAm350tfnHGT44joSdFPoW5D91TDare6q5UaaccdEtXU4/LGqh+nHB9Idft
#  0S/rIpP2PK9TAwQ5V8dlMuBQQA+BUCg5MY9oqZgtnkX7O6OJSk8MT0lUhVg7EAge9iUx7Eu4
#  oWK88fkOo81pqHogTpGfy4nibWg72XkPk135leMw/Jme37q7OR/zm6HceFlyyO0WL1fYx09P
#  pYbj1lYNvVo8n38ohT8T/7h3N4GUlQIDAQABo4HYMIHVMAwGA1UdEwEB/wQCMAAwPgYDVR0f
#  BDcwNTAzoDGgL4YtaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZUNvZGVTaWduaW5nQ0Eu
#  Y3JsMB8GA1UdJQQYMBYGCCsGAQUFBwMDBgorBgEEAYI3AgEWMB0GA1UdBAQWMBQwDjAMBgor
#  BgEEAYI3AgEWAwIHgDAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3Nw
#  LnRoYXd0ZS5jb20wEQYJYIZIAYb4QgEBBAQDAgQQMA0GCSqGSIb3DQEBBQUAA4GBAAUMcxUb
#  eo5HTDKMaxMFFy3iA9i/ke4VLFw97yEG3raLTHZUlRwVxwLGLmW81dY/64nEDEgKi3Ifuohf
#  A0a3N3Ld7zwL1f/hdG2pQigLcvMymP9jj6DEQxOs03iADFguMpqkb79hbbURzsKX7pvWuNjQ
#  VGiowTuo1JXuSbsqaW7vMYIB7zCCAesCAQEwaTBVMQswCQYDVQQGEwJaQTElMCMGA1UEChMc
#  VGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEfMB0GA1UEAxMWVGhhd3RlIENvZGUgU2ln
#  bmluZyBDQQIQeKLk3AJi7M6xote9JNXXkjAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsG
#  CSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDcwNDA0MTkzMDUyWjAjBgkqhkiG9w0BCQQx
#  FgQUevptGkutc0lb6gI3NPHovx4Di34wDQYJKoZIhvcNAQEBBQAEggEAk4jqKMsn7D+MjGtY
#  M9bnLdekBSxMVWPpKxk6hWg0NVOoiBOd/OOyH8FO/r7trmzr2Z9eJf1zpdjzpSPCwnGJzIy9
#  RunBBTJ+BxCbDXfjwJJTYVy1Uhsedv+o7Gfj9LlAVysNLjda5VcU7x/OOBVst034X+map3ds
#  85yBrfcJ/LyQs/lyZYmSPgOpFIBSy3oULPzYt45EUVsuk5qSZ1MA4HeIDW37b8OfQOW8pLEL
#  cBRducU19lpDOp5hBRZDR3zu+/9ddWKxKvcH04WitYRBi5TtqhQxpep+vRhJX8EPY6cgenJ+
#  lbDURg552YftF4EpDGALADR41j6sUMzb0QOz4A==
# 
#  ------=_NextPart_e7c_2b68_282042d9.6ba23d56--
# 
# 

 

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.