Platforms to show: All Mac Windows Linux Cross-Platform
Required plugins for this example: MBS Encryption Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Encryption/SMime/SMime Test
This example is the version from Tue, 23th Jul 2018.
Project "SMime Test.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
EventHandler Sub Open()
Sign
Encrypt
Decrypt
Verify
End EventHandler
Sub Decrypt()
dim c as X509MBS = X509MBS.Open(ReadFile(GetFolderItem("signer.pem")))
dim k as PKeyMBS = PKeyMBS.Open(ReadFile(GetFolderItem("signer.pem")))
dim i as string = ReadFile(GetFolderItem("smencr.txt"))
dim d as string = OpenSSLMBS.SMimePKCS7Decrypt(i, c, k)
WriteFile d, GetFolderItem("encrout.txt")
End Sub
Sub Encrypt()
dim c as X509MBS = X509MBS.Open(ReadFile(GetFolderItem("signer.pem")))
dim i as string = ReadFile(GetFolderItem("encr.txt"))
dim d as string = OpenSSLMBS.SMimePKCS7Encrypt(i, c)
WriteFile d, GetFolderItem("smencr.txt")
End Sub
Function ReadFile(f as FolderItem) As string
dim b as BinaryStream = BinaryStream.Open(f)
dim s as string = b.Read(b.Length)
return s
End Function
Sub Sign()
dim c as X509MBS = X509MBS.Open(ReadFile(GetFolderItem("signer.pem")))
dim k as PKeyMBS = PKeyMBS.Open(ReadFile(GetFolderItem("signer.pem")))
dim i as string = ReadFile(GetFolderItem("sign.txt"))
dim d as string = OpenSSLMBS.SMimePKCS7Sign(i, c, k)
WriteFile d, GetFolderItem("smout.txt")
End Sub
Sub Verify()
dim c as X509MBS = X509MBS.Open(ReadFile(GetFolderItem("cacert.pem")))
dim i as string = ReadFile(GetFolderItem("smout.txt"))
dim d as string = OpenSSLMBS.SMimePKCS7Verify(i, c)
WriteFile d, GetFolderItem("smver.txt")
End Sub
Sub WriteFile(d as string, f as FolderItem)
dim b as BinaryStream = BinaryStream.Create(f, true)
b.Write d
End Sub
End Class
MenuBar MainMenuBar
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem EditSeparator1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem EditSeparator2 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
End Project
The items on this page are in the following plugins: MBS Encryption Plugin.