Sample code for 30+ languages & platforms
C#

S/MIME Encrypt using Certificate in Apple Keychain

See more Apple Keychain Examples

Encrypts MIME to creates S/MIME using a certificate found in the Apple Keychain.

Chilkat C# Downloads

C#
bool success = false;

Chilkat.Cert cert = new Chilkat.Cert();

//  Load the certificate by the Subject Common Name
//  On MacOS and iOS, Chilkat will search the Keychain(s) for the matching certificate.
success = cert.LoadByCommonName("My Cert");
if (success == false) {
    Debug.WriteLine(cert.LastErrorText);
    return;
}

//  Note: The private key is not needed for encryption.
//  Only the certificate is needed.

//  Create a simple MIME message to encrypt.
Chilkat.Mime mime = new Chilkat.Mime();
mime.AddHeaderField("Subject","test");
mime.AddHeaderField("SomeHeader","123");
mime.AddHeaderField("Content-Type","text/plain");
mime.SetBody("This is the body.");

Debug.WriteLine(mime.GetMime());
Debug.WriteLine("----");

//  Here's the MIME to be encrypted:

//  Subject: test
//  SomeHeader: 123
//  Content-Type: text/plain
//  
//  This is the body.

//  -------------------------------------
//  Encrypt the MIME.
success = mime.Encrypt(cert);
if (success == false) {
    Debug.WriteLine(mime.LastErrorText);
    return;
}

//  Show the encrypted MIME (S/MIME)
Debug.WriteLine(mime.GetMime());

//  Save the encrypted MIME to a file.
mime.SaveMime("./encrypted.mime");

//  Here's the S/MIME

//  Subject: test
//  SomeHeader: 123
//  Content-Type: application/x-pkcs7-mime; name="smime.p7m"; smime-type="enveloped-data"
//  Content-Disposition: attachment; filename="smime.p7m"
//  Content-Transfer-Encoding: base64
//  
//  MIICSwYJKoZIhvcNAQcDoIICPDCCAjgCAQAxggGzMIIBrwIBADCBljCBgTELMAkGA1UEBhMCSVQx
//  EDAOBgNVBAgMB0JlcmdhbW8xGTAXBgNVBAcMEFBvbnRlIFNhbiBQaWV0cm8xFzAVBgNVBAoMDkFj
//  dGFsaXMgUy5wLkEuMSwwKgYDVQQDDCNBY3RhbGlzIENsaWVudCBBdXRoZW50aWNhdGlvbiBDQSBH
//  MwIQPCWvkSv8oQ7xRmEHJ6TzEDANBgkqhkiG9w0BAQEFAASCAQB3VZvHRE5EWxug7Sckpcz1ucDZ
//  YiTKiqmyPt75MhzNRQLtKFx/jWwlemUwnPMzeu6yutCkZ74Bdn7MBsfDqV3bUz43wAu+fRBteGvF
//  mTc00MfY8L7o8dkpj4AqAOCj4hKQzbSE99GvSzyXcPE2Gm5NrOPtKxqfFqbBRTCb4fBZP84LaL+x
//  rnYfrM4qXTppixyN8iFYCd4maEbMu/GA5o+j0BkDDnx42pILDoAGV/ERyx55Y3Nc2Mhm/cITBMNn
//  g7uS9KPrlYizNaqVu09Hi9jg4gdZaRiTjUqg05tSOk/YqIQxTgfscwSPY92/ewpI6e1EHtLt8Q33
//  gWCbERptSntUMHwGCSqGSIb3DQEHATAdBglghkgBZQMEAQIEENm1AxeXlEMx7p6McjHIj5CAUEQj
//  0GuJ5LnTqiqIjOiwmwNidl1N1TRluxX5vAQvwBuYE6bQK4+i04yn2Av3cucW4kvxgP2Nmni+XgQt
//  aPPKlasaVceEeZ15IYjw77/m3YYn