Perl Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Perl Examples

Quick Start
Perl Unicode
Perl Byte Array
Perl Certs
Perl Email
Perl Encryption
Perl FTP
HTML-to-XML
Perl HTTP
Perl IMAP
Perl MHT
Perl MIME
Perl RSA
Perl S/MIME
Perl Signatures
Perl Socket
Perl Spider
Perl Tar
Perl Upload
Perl XML
Perl XMP
Perl Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor

Unreleased...
Service
PPMD
Deflate
Bzip2
LZW
Bz2
DH Key Exchange
DSA
Icon

 

 

 

 

 

 

 

Create S/MIME with Detached Signature

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

Download Chilkat Perl Module

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--
# 
# 

 

Need a specific example? Send a request to support@chilkatsoft.com

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