Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Create S/MIME with Opaque Digital SignatureDelphi example to create a simple S/MIME message with an attached (opaque) digital signature. uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATMIMELib_TLB, CHILKATCERTIFICATELib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var mime: CHILKATMIMELib_TLB.IChilkatMime; success: Integer; ccs: TChilkatCreateCS; certStore: CHILKATCERTIFICATELib_TLB.IChilkatCertStore; cert: IChilkatCert; begin mime := CoChilkatMime.Create(); // Any string argument automatically begins the 30-day trial. success := mime.UnlockComponent('30-day trial'); if (success <> 1) then begin ShowMessage('MIME component unlock failed'); end; // Find our digital certificate from the Current User certificate store. ccs := TChilkatCreateCS.Create(Self); certStore := ccs.OpenCurrentUserStore(); cert := certStore.FindCertBySubjectCN('Chilkat Software, Inc.'); if (cert = nil ) then begin ShowMessage(cert.LastErrorText); end; // 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.ContentType := 'text/plain'; mime.Charset := 'iso-8859-1'; mime.SetBodyFromPlainText('This is the body'); Memo1.Lines.Add('Original MIME message:'); Memo1.Lines.Add(mime.GetMime()); // 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 // ---------------------------------- // Convert the MIME to a signed message. The original MIME // is embedded in success := mime.ConvertToSigned(cert as CHILKATMIMELib_TLB.IChilkatCert); if (success <> 1) then begin ShowMessage(mime.LastErrorText); end; Memo1.Lines.Add('----------------------------------'); Memo1.Lines.Add('Signed Message:'); Memo1.Lines.Add(mime.GetMime()); ShowMessage('Success!'); // The resulting S/MIME looks like this: // -------------------------------- // subject: this is a test // test123: this is a test 123 // content-disposition: attachment; // filename="smime.p7m" // content-transfer-encoding: base64 // content-type: application/x-pkcs7-mime; // name="smime.p7m";smime-type=signed-data // // MIIGgAYJKoZIhvcNAQcCoIIGcTCCBm0CAQExCzAJBgUrDgMCGgUAMIGKBgkqhkiG9w0BBwGg // fQR7c3ViamVjdDogdGhpcyBpcyBhIHRlc3QNCnRlc3QxMjM6IHRoaXMgaXMgYSB0ZXN0IDEy // Mw0KY29udGVudC10eXBlOiB0ZXh0L3BsYWluOw0KCSBjaGFyc2V0PSJpc28tODg1OS0xIg0K // DQpUaGlzIGlzIHRoZSBib2R5oIID2TCCA9UwggM+oAMCAQICEHii5NwCYuzOsaLXvSTV15Iw // DQYJKoZIhvcNAQEFBQAwVTELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0 // aW5nIChQdHkpIEx0ZC4xHzAdBgNVBAMTFlRoYXd0ZSBDb2RlIFNpZ25pbmcgQ0EwHhcNMDcw // MTE1MDAwMDAwWhcNMDgwMTE1MjM1OTU5WjCBnTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCEls // bGlub2lzMRAwDgYDVQQHEwdXaGVhdG9uMR8wHQYDVQQKExZDaGlsa2F0IFNvZnR3YXJlLCBJ // bmMuMScwJQYDVQQLEx5TZWN1cmUgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQxHzAdBgNVBAMT // FkNoaWxrYXQgU29mdHdhcmUsIEluYy4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB // AQDBHa3pv8qfhXM0I6WPVgaQfENg9Wd9k0h47uGa62t4rqSv3jGb1GVCf6+Q3W5EyG9Js512 // z4Hbmj4DIB64GYuy7Gg1EIL0BRtrfuljx4vTgBpMQCbfnS1+ccZPjiOhJ0U+hbkP3VMNqt7q // rlRppxx0S1dTj8saqH6ccH0h1+3RL+sik/Y8r1MDBDlXx2Uy4FBAD4FQKDkxj2ipmC2eRfs7 // o4lKTwxPSVSFWDsQCB72JTHsS7ihYrzx+Q6jzWmoeiBOkZ/LieJtaDvZeQ+TXfmV4zD8mZ7f // urs5H/Obodx4WXLI7RYvV9jHT0+lhuPWVg29WjyffyiFPxP/uHc3gZSVAgMBAAGjgdgwgdUw // DAYDVR0TAQH/BAIwADA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vY3JsLnRoYXd0ZS5jb20v // VGhhd3RlQ29kZVNpZ25pbmdDQS5jcmwwHwYDVR0lBBgwFgYIKwYBBQUHAwMGCisGAQQBgjcC // ARYwHQYDVR0EBBYwFDAOMAwGCisGAQQBgjcCARYDAgeAMDIGCCsGAQUFBwEBBCYwJDAiBggr // BgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTARBglghkgBhvhCAQEEBAMCBBAwDQYJ // KoZIhvcNAQEFBQADgYEABQxzFRt6jkdMMoxrEwUXLeID2L+R7hUsXD3vIQbetotMdlSVHBXH // AsYuZbzV1j/ricQMSAqLch+6iF8DRrc3ct3vPAvV/+F0balCKAty8zKY/2OPoMRDE6zTeIAM // WC4ymqRvv2FttRHOwpfum9a42NBUaKjBO6jUle5Juyppbu8xggHvMIIB6wIBATBpMFUxCzAJ // BgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMR8wHQYD // VQQDExZUaGF3dGUgQ29kZSBTaWduaW5nIENBAhB4ouTcAmLszrGi170k1deSMAkGBSsOAwIa // BQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wNzA0MDQx // OTU1NDVaMCMGCSqGSIb3DQEJBDEWBBSXCN4QT4iPlNbNV3X7AzYezFL9oDANBgkqhkiG9w0B // AQEFAASCAQBqnhXsUVYMz2y92Qg0ciB1wVxP6DC8cgTPPIWfSFAcIR6Irk4BqzS5LarDZlfB // k85poqggff/m5kuyJfUNehTC0VnhAasCX0VjU+Bsr1k0c7gejges1EiuNJJo7q4Usp3+c5k9 // ZSEIM95hp2rDKyzZdyvSAbFGI029RII0SNyU6g6rX3/FZhJqc+DbhLHax3RMERFqLvdmmREz // zIcRbt5y3VR3+bjD0tnvP5ynlg3rT4ubKWS/OormEPc20FwTHb8nCep3ZyGrUKusD7AWV3qv // 0+IKpAWNsZ7CgDjcR+j9oz7Q8Y/17FgHflEypf3xR5TWBY/tCwx02GT7a9vpXbHT // // end; |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.