Platforms to show: All Mac Windows Linux Cross-Platform

/MacClassic/Keychain/KeyChain test iOS


Required plugins for this example: MBS MacClassic Plugin, MBS Main Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /MacClassic/Keychain/KeyChain test iOS

This example is the version from Thu, 21th Apr 2021.

Project "KeyChain test iOS.xojo_binary_project"
Class App Inherits MobileApplication
End Class
Class Screen1 Inherits MobileScreen
Control mbAdd Inherits MobileButton
ControlInstance mbAdd Inherits MobileButton
Constraint Constraint 1
Constraint Constraint 2
Constraint Constraint 3
Constraint Constraint 4
EventHandler Sub Pressed() AddPassword End EventHandler
End Control
Control mbGet Inherits MobileButton
ControlInstance mbGet Inherits MobileButton
Constraint Constraint 1
Constraint Constraint 2
Constraint Constraint 3
Constraint Constraint 4
EventHandler Sub Pressed() GetPassword End EventHandler
End Control
Control mbUpdate Inherits MobileButton
ControlInstance mbUpdate Inherits MobileButton
Constraint Constraint 1
Constraint Constraint 2
Constraint Constraint 3
Constraint Constraint 4
EventHandler Sub Pressed() UpdatePassword End EventHandler
End Control
Control mbDelete Inherits MobileButton
ControlInstance mbDelete Inherits MobileButton
Constraint Constraint 1
Constraint Constraint 2
Constraint Constraint 3
Constraint Constraint 4
EventHandler Sub Pressed() DeletePassword End EventHandler
End Control
Control Label1 Inherits MobileLabel
ControlInstance Label1 Inherits MobileLabel
Constraint Constraint 1
Constraint Constraint 2
Constraint Constraint 3
Constraint Constraint 4
End Control
EventHandler Sub Opening() End EventHandler
Private Sub AddPassword() Dim storePasswordDictionary As Dictionary Dim theResult As Variant Dim passwordData As MemoryBlock Dim password, keychainErrorString As String Dim keychainErrorNumber As Integer password = DateTime.Now.SQLDateTime passwordData = password.ConvertEncoding( Encodings.UTF8 ) storePasswordDictionary = New Dictionary storePasswordDictionary.value( KeychainManagerMBS.kSecAttrService ) = "de.monkeybreadsoftware.test" 'storePasswordDictionary.value( KeychainManagerMBS.kSecAttrAccessGroup ) = "H6CE6NC936.de.monkeybreadsoftware.test" storePasswordDictionary.value( KeychainManagerMBS.kSecAttrAccount ) = "testuser" storePasswordDictionary.value( KeychainManagerMBS.kSecValueData ) = passwordData storePasswordDictionary.value( KeychainManagerMBS.kSecClass ) = KeychainManagerMBS.kSecClassGenericPassword storePasswordDictionary.Value( KeychainManagerMBS.kSecAttrDescription ) = "Secret staff login" storePasswordDictionary.Value( KeychainManagerMBS.kSecAttrLabel ) = "MySecret" storePasswordDictionary.Value( KeychainManagerMBS.kSecAttrAccessible ) = KeychainManagerMBS.kSecAttrAccessibleAfterFirstUnlock // kSecAttrAccessible and kSecAttrAccessControl don't work together If KeychainManagerMBS.AddItem( storePasswordDictionary, theResult ) Then MessageBox( "Added password" ) Else keychainErrorNumber = KeychainManagerMBS.LastError keychainErrorString = KeychainManagerMBS.ErrorMessageString( keychainErrorNumber ) MessageBox( "Error adding password: "+keychainErrorNumber.ToString+" "+keychainErrorString ) End If End Sub
Private Sub DeletePassword() Dim storePasswordDictionary As Dictionary Dim keychainErrorString As String Dim keychainErrorNumber As Integer Dim queryDictionary As New Dictionary queryDictionary.value( KeychainManagerMBS.kSecClass ) = KeychainManagerMBS.kSecClassGenericPassword queryDictionary.value( KeychainManagerMBS.kSecAttrService ) = "de.monkeybreadsoftware.test" 'queryDictionary.value( KeychainManagerMBS.kSecAttrAccessGroup ) = "H6CE6NC936.de.monkeybreadsoftware.test" queryDictionary.value( KeychainManagerMBS.kSecAttrAccount ) = "testuser" If KeychainManagerMBS.DeleteItem( queryDictionary ) Then MessageBox( "Deleted password" ) Else keychainErrorNumber = KeychainManagerMBS.LastError keychainErrorString = KeychainManagerMBS.ErrorMessageString( keychainErrorNumber ) MessageBox( "Error deleting password: "+keychainErrorNumber.ToString+" "+keychainErrorString ) End If End Sub
Private Sub GetPassword() Dim queryDictionary As Dictionary Dim passwordData As MemoryBlock Dim password, keychainErrorString As String Dim keychainErrorNumber As Integer // Build query queryDictionary = New Dictionary queryDictionary.value( KeychainManagerMBS.kSecClass ) = KeychainManagerMBS.kSecClassGenericPassword 'queryDictionary.value( KeychainManagerMBS.kSecAttrAccessGroup ) = "H6CE6NC936.de.monkeybreadsoftware.test" queryDictionary.Value( KeychainManagerMBS.kSecMatchLimit ) = KeychainManagerMBS.kSecMatchLimitOne queryDictionary.value( KeychainManagerMBS.kSecAttrService ) = "de.monkeybreadsoftware.test" queryDictionary.value( KeychainManagerMBS.kSecAttrAccount ) = "testuser" // Fetch item from keychain If KeychainManagerMBS.GetPassword( queryDictionary, passwordData ) Then Dim data As String = passwordData password = data.DefineEncoding( Encodings.UTF8 ) MessageBox( "Got password: "+password ) Else keychainErrorNumber = KeychainManagerMBS.LastError keychainErrorString = KeychainManagerMBS.ErrorMessageString( keychainErrorNumber ) MessageBox( "Error getting password: "+keychainErrorNumber.ToString+" "+keychainErrorString ) End If End Sub
Private Sub UpdatePassword() Dim storePasswordDictionary As Dictionary Dim passwordData As MemoryBlock Dim password, keychainErrorString As String Dim keychainErrorNumber As Integer password = DateTime.Now.SQLDateTime passwordData = password.ConvertEncoding( Encodings.UTF8 ) Dim queryDictionary As New Dictionary queryDictionary.value( KeychainManagerMBS.kSecClass ) = KeychainManagerMBS.kSecClassGenericPassword queryDictionary.value( KeychainManagerMBS.kSecAttrService ) = "de.monkeybreadsoftware.test" 'queryDictionary.value( KeychainManagerMBS.kSecAttrAccessGroup ) = "H6CE6NC936.de.monkeybreadsoftware.test" queryDictionary.value( KeychainManagerMBS.kSecAttrAccount ) = "testuser" storePasswordDictionary = New Dictionary storePasswordDictionary.value( KeychainManagerMBS.kSecValueData ) = passwordData If KeychainManagerMBS.UpdateItem( queryDictionary, storePasswordDictionary ) Then MessageBox( "Updated password" ) Else keychainErrorNumber = KeychainManagerMBS.LastError keychainErrorString = KeychainManagerMBS.ErrorMessageString( keychainErrorNumber ) MessageBox( "Error updating password: "+keychainErrorNumber.ToString+" "+keychainErrorString ) End If End Sub
Property Private n As NSExceptionMBS
End Class
Class LaunchScreen Inherits iosView
End Class
End Project

See also:

The items on this page are in the following plugins: MBS MacClassic Plugin.


The biggest plugin in space...