Chilkat HOME Android™ ASP Visual Basic VB.NET C# iOS (IPhone) Objective-C C++ C Unicode C++ Unicode C MFC Delphi DLL Delphi ActiveX FoxPro Java Perl PHP Extension PHP ActiveX Python PowerShell Ruby SQL Server VBScript
(C#) Create PKCS7 Detached Signature (S/MIME)Create an S/MIME message with a PKCS7 detached signature. Important: This example is specific to the Windows operating system because it obtains the certificate and private key from the Windows registry-based certificate store. For other operating systems, see the PKCS7 signature examples that use PFX (.p12) files. Download: Chilkat .NET Assemblies Chilkat.Mime mime = new Chilkat.Mime(); bool success; success = mime.UnlockComponent("Anything for 30-day trial"); if (success == false) { textBox1.Text += mime.LastErrorText + "\r\n"; 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. Chilkat.Cert cert = new Chilkat.Cert(); success = cert.LoadByCommonName("Chilkat Software, Inc."); if (success == false) { textBox1.Text += cert.LastErrorText + "\r\n"; return; } // Create a very simple MIME message to be signed: mime.AddHeaderField("Subject","This is a test"); mime.AddHeaderField("MyCustomHeader","abc123"); mime.ContentType = "text/plain"; mime.SetBody("This is a plain-text body."); // Examine the MIME prior to signing: textBox1.Text += "--- MIME prior to signing ---" + "\r\n"; textBox1.Text += mime.GetMime() + "\r\n"; // 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.SigningHashAlg = "SHA256"; // Add a detached signature: success = mime.AddDetachedSignature(cert); if (success == false) { textBox1.Text += mime.LastErrorText + "\r\n"; return; } // Examine the MIME with detached signature: textBox1.Text += "--- MIME with detached signature ---" + "\r\n"; textBox1.Text += mime.GetMime() + "\r\n"; // 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-2013 Chilkat Software, Inc. All Rights Reserved.