Platforms to show: All Mac Windows Linux Cross-Platform
/Encryption/Diffie Hellman Key Generation
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/Diffie Hellman Key Generation
This example is the version from Wed, 24th Oct 2017.
Project "Diffie Hellman Key Generation.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
End Class
Class Window1 Inherits Window
Control list Inherits Listbox
ControlInstance list Inherits Listbox
EventHandler Sub DoubleClick()
MsgBox me.Cell(me.ListIndex,1)
End EventHandler
End Control
EventHandler Sub Open()
// Our chosen curve must be used by both sides in the exchange
dim EC_Curve_ID as integer = 415 // NID_X9_62_prime256v1
dim ec_dhe as new ECDHEMBS(EC_Curve_ID)
dim publicKey as string = ec_dhe.PublicKey
list.AddRow "My Public Key: ", publicKey
// Normally here, we would send our public key and receive our peer's public key.
// For example's sake, let's just generate a new key using the same curve
dim ec_dhePeer as new ECDHEMBS(EC_Curve_ID)
dim peerKey as string = ec_dhePeer.PublicKey
list.AddRow "Peer Public Key: ", peerKey
// Now that we have the peer's public key, let's derive the shared secret on the original side
dim sharedSecret as string = ec_dhe.DeriveSecretKey(peerKey)
list.AddRow "Shared Secret: ", EncodeHex(sharedSecret)
// and do same on peer
dim sharedSecretAtPeer as string = ec_dhePeer.DeriveSecretKey(publicKey)
list.AddRow "Shared Secret on peer: ",EncodeHex(sharedSecretAtPeer)
// WARNING!!!
// peerKey, publicKey, and sharedSecret are no longer accessible once freed
// If you would like to keep them, put them in a property of windows/class/module
End EventHandler
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&Ablage"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Bearbeiten"
MenuItem EditUndo = "&Rückgängig"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "&Ausschneiden"
MenuItem EditCopy = "&Kopieren"
MenuItem EditPaste = "&Einfügen"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "&Alles auswählen"
End MenuBar
End Project
The items on this page are in the following plugins: MBS Encryption Plugin.