Skip to content
/ KVault Public
forked from Liftric/KVault

Secure key-value storage for Kotlin Multiplatform projects.

License

Notifications You must be signed in to change notification settings

cladvd/KVault

 
 

Repository files navigation

CI maven-central OSS Sonatype (Releases)

KVault

KVault is a secure key-value storage for Kotlin Multiplatform projects. It acts as an iOS Keychain wrapper and implements encrypted SharedPreferences for Android.

Import

sourceSets {
    val commonMain by getting {
        dependencies {
            implementation("com.liftric:kvault:<version>")
        }
    }
}

How-to

Init

Android

val store = KVault(context, "<fileName>")
Parameter Description
fileName (optional) Name of the shared preferences file

iOS

val store = KVault("<serviceName>", "<accessGroup>")
Parameter Description
serviceName (optional) Used to categories objects
accessGroup (optional) Used to share objects between apps

Setting

val stringStored: Boolean = store.set(key = "LEET", stringValue = "1337")
val intStored: Boolean = store.set(key = "ANSWER", intValue = 42)
val floatStored: Boolean = store.set(key = "PI", floatValue = 3.14)

Supported Types

  • String
  • Int
  • Long
  • Float
  • Double
  • Bool

Getting

val stringValue: String? = store.string(forKey = "PASSWORD")
val intValue: Int? = store.int(forKey = "SECRET")

To check if an object is in the Keychain you can also use:

val existsObject: Boolean = store.existsObject(forKey = "PASSWORD")

Deleting

Single object

val isRemoved: Boolean = store.removeObject(forKey = "PASSWORD")

All objects

iOS

⚠️ If the service name and the access group are not null, it will only delete the objects that match the query.

val isCleared: Boolean = store.clear()

License

KVault is available under the MIT license. See the LICENSE file for more info.

About

Secure key-value storage for Kotlin Multiplatform projects.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Kotlin 72.8%
  • Swift 27.2%