Skip to content

Commit

Permalink
Merge pull request #318 from kennethshackleton/readme-wording
Browse files Browse the repository at this point in the history
Wording in README.
  • Loading branch information
kennethshackleton authored May 6, 2022
2 parents 25d0c0a + 44ee0bd commit 5dea477
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Selekt is a Kotlin and familiar Android wrapper over the community edition of [S

## Rationale

The two most popular publicly available alternatives to Selekt are the Android SDK's own SQLite database, and [Android-SQLCipher](https://www.zetetic.net/sqlcipher/sqlcipher-for-android/). The Android SDK's SQLite database does not encrypt databases, instead relying on the OS's user security model to restrict access. Android-SQLCipher uses the SQLCipher library to encrypt databases, but because the derivation of every key is by design expensive it can't be allowed to make full use of the concurrency offered by SQLite3: Each database must have only one connection, connections cannot be ephemeral and must persist even if idling.
The two most popular publicly available alternatives to Selekt are the Android SDK's own SQLite database, and [Android-SQLCipher](https://www.zetetic.net/sqlcipher/sqlcipher-for-android/). The Android SDK's SQLite database does not encrypt databases, instead relying on the OS's user security model to restrict access. Android-SQLCipher uses the SQLCipher library to encrypt databases, but because the derivation of every key is by design expensive it can't also be allowed to make full use of the concurrency offered by SQLite3: Each database must have only one connection, connections cannot be ephemeral and must persist even if idling.

Selekt sits somewhere between the two: Selekt also uses SQLCipher to encrypt databases with AES-256, but uses SQLCipher in a mode that moves the responsibility for deriving keys to the caller. This sacrifices some of the security guarantee offered by the default operating mode of SQLCipher, in return for allowing greater concurrency and efficient resource use while still retaining pretty good security.

Expand Down

0 comments on commit 5dea477

Please sign in to comment.