Sample code for 30+ languages & platforms
B4X

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 B4X Downloads

B4X
Dim success As Boolean = False

Dim cert As ChilkatCert
cert.Initialize("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 Then
    Log(cert.LastErrorText)
    Return
End If


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

'  Create a simple MIME message to encrypt.
Dim mime As ChilkatMime
mime.Initialize
mime.AddHeaderField("Subject", "test")
mime.AddHeaderField("SomeHeader", "123")
mime.AddHeaderField("Content-Type", "text/plain")
mime.SetBody("This is the body.")

Log(mime.GetMime)
Log("----")

'  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 Then
    Log(mime.LastErrorText)
    Return
End If


'  Show the encrypted MIME (S/MIME)
Log(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