How to check if DB is encrypted

Open
#910 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
sqlite, swift

Research direction

Start with Sources/SQLite/Extensions/Cipher.swift at the referenced cipher_key_check() implementation and read how db.rekey() and db.key() use it. Determine the public check needed to distinguish an encrypted database before rekeying, then verify that the resulting API supports the described encryption and access flows.

Written by the indexing model from the issue text.

Description

enhancement

As shown in this file below, db.rekey() will either change the key or it will encrypt a database with the key if it was not encrypted previously. Is there a way for me to check if the DB is encrypted before I call db.rekey()? I only want to run db.rekey() if the db isn't encrypted, just so it will get encrypted, but then in future cases, I will only want to use db.key() to access database. No need to change the key. It looks like there is an internal function called cipher_key_check() that checks that, any way to expose this somehow to make it an easy check?
https://github.com/stephencelis/SQLite.swift/blob/861ff28adec8d175e7f5923340947f0895121416/Sources/SQLite/Extensions/Cipher.swift#L41

Dominant language
Swift
Stars
10.2k
Forks
1.6k
Avg merge
6d 2h
Merged PRs (30d)
2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from stephencelis/SQLite.swift

All issues in stephencelis/SQLite.swift

Similar issues

More Swift issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.