Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Create PKCS7 Detached Signature (S/MIME)Create an S/MIME message with a PKCS7 detached signature. Downloads: MS Windows Visual C/C++ Libraries Linux/CentOS C/C++ Libraries MAC OS X C/C++ Libraries Solaris C/C++ Libraries C++ Builder Libraries #include <CkMime.h> #include <CkCert.h> void ChilkatSample(void) { CkMime mime; bool success; success = mime.UnlockComponent("Anything for 30-day trial"); if (success == false) { printf("%s\n",mime.lastErrorText()); return; } // Load a certificate w/ private key for signing. // There are many ways of getting a certificate object: // from a pfx file, from .cer and private-key files, from the // Windows registry-based certificate stores, etc. // For this example, we'll use a pre-installed cert from // a certificate store. CkCert cert; success = cert.LoadByCommonName("Chilkat Software, Inc."); if (success == false) { printf("%s\n",cert.lastErrorText()); return; } // Create a very simple MIME message to be signed: mime.AddHeaderField("Subject","This is a test"); mime.AddHeaderField("MyCustomHeader","abc123"); mime.put_ContentType("text/plain"); mime.SetBody("This is a plain-text body."); // Examine the MIME prior to signing: printf("--- MIME prior to signing ---\n"); printf("%s\n",mime.getMime()); // The MIME prior to signing looks like this: // ------------------------------------------------------------------------------- // Subject: This is a test MyCustomHeader: abc123 Content-Type: text/plain This is a plain-text body. // ------------------------------------------------------------------------------- // The default hash algorithm used in the signing process is "SHA1". // To change it, set the SigningHashAlg property: mime.put_SigningHashAlg("SHA256"); // Add a detached signature: success = mime.AddDetachedSignature(cert); if (success == false) { printf("%s\n",mime.lastErrorText()); return; } // Examine the MIME with detached signature: printf("--- MIME with detached signature ---\n"); printf("%s\n",mime.getMime()); // The MIME after signing looks like this: // ------------------------------------------------------------------------------- // Content-Type: multipart/signed; boundary="----=_NextPart_a66_7f43_247e22d0.a03166d5"; protocol="application/x-pkcs7-signature"; micalg="sha256" This is a multi-part message in MIME format. ------=_NextPart_a66_7f43_247e22d0.a03166d5 Subject: This is a test MyCustomHeader: abc123 Content-Type: text/plain This is a plain-text body. ------=_NextPart_a66_7f43_247e22d0.a03166d5 Content-Transfer-Encoding: base64 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Disposition: attachment; filename="smime.p7s" MIIOAQYJKoZIhvcNAQcCoIIN8jCCDe4CAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGg ggmgMIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUFADCBlTELMAkG A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMV VGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20x HTAbBgNVBAMTFFVUTi1VU0VSRmlyc3QtT2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4 NDAzNlowgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENp dHkxHjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3dy51 c2VydHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdDCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicPHxzfOpuCaDDASmEd8S8O+r5596Uj 71VRloTN2+O5bj4x2AogZ8f02b+U60cEPgLOKqJdhwQJ9jCdGIqXsqoc/EHSoTbL+z2RuufZcDX6 5OeQw5ujm9M89RKZd7G3CeBo5hy485RjiGpq/gt2yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP 1/vulBe3/IW+pKvEHDHd17bR5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehb kkj7RwvCbNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUCAwEAAaOBrzCB rDALBgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU2u1kdBScFDyr3ZmpvVso TYs8ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VS Rmlyc3QtT2JqZWN0LmNybDApBgNVHSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcK 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 9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMDA2MzAxNDM1MDVaMC8GCSqGSIb3 DQEJBDEiBCCxBV6qxW6f5dFzicso1tSCYYycSWjoS1JWU3PFXGm1TDBfBgkqhkiG9w0BCQ8xUjBQ MAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAw BwYFKw4DAgcwDQYIKoZIhvcNAwICASgwgbwGCSsGAQQBgjcQBDGBrjCBqzCBlTELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVT RVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAbBgNV BAMTFFVUTi1VU0VSRmlyc3QtT2JqZWN0AhEA5vxolKNrYgp1Z7ABICdK+zCBvgYLKoZIhvcNAQkQ Agsxga6ggaswgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtl IENpdHkxHjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3 dy51c2VydHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdAIRAOb8aJSja2IK dWewASAnSvswDQYJKoZIhvcNAQEBBQAEggEABegieec25qysV6YJ9YSLrTPHLwX1+JUJjK3N7fH5 uLhH7HTEMkpXllgZcvg8Qvcyk2uAsVZZeFCtSYmBIT8kuuRXov7lo/V3sBhkoVF5pMS/T/fxuaJX Ez3Zr8MbrlOMZVgbdvSkrk/TSSID48kV0pQBNGQs82ZVs88R1g5Vg5E7K+5xgV6bh2KAbCo8QbLJ 75djbYbkoCRMHuJ5k2iaUErAmrhoaClcRofzZcCVMqGxqeipPOjjJXXPTbq0lcVoedSsuwqCcoXi CCzo73C9H9RayPTn2QfxihpLBS8xbd2eFIGqi4UzL6yIJUyMxgGvbp/Ax7KxkhCWl+GGL0OWJg== ------=_NextPart_a66_7f43_247e22d0.a03166d5-- // ------------------------------------------------------------------------------- } |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.