SQLCipher with SQLite.Net.Exensions in .net maui

Hello.
I am interested in purchasing a commercial license for sqlcipher, but I have some questions about how this will actually work.
I have a .net maui cross platform app currently in production (supporting iOS and Windows platforms).
It is using the “unofficial” sqlcipher packages by Eric Sink. From what I learned recently, though, it is basically unsupported and Eric recommends buying the supported builds from Zetetic.
After reading through some of the documentation on your site I came across the project setup instructions where it says:
Before using the package(s) be sure to remove any prior references in your project to:
Legacy SQLCipher .nupkg or .xam packages
Any previous SQLite-based NuGet or assembly references, e.g. sqlite-net-pcl

In the app, I have the following nuget packages installed:
sqlite-net-sqlcipher (by SQLite-net)
SQLitePCLRaw.bundle_e_sqlcipher (by Eric Sink)
SQLitePCLRaw.bindle_green (by Eric Sink)
SQLite.NET.Extensions (by TwinCoders)

The SQLite.Net.Exensions package installs sqlite-net-pcl as a transitive package because it has a dependency on it.
My question is: Is this going to prevent me from being able to use your sqlcipher packages? Or is there a workaround for it?
I cannot easily remove SQLite.Net.Extensions without major rewrites of the app. So I would really like to be able to keep it.

Any help would be greatly appreciated.

Hi @achristy,

You can use the technique described here to address excluding asset conflicts with sqlite-net-pcl from SQLite.NET.Extensions. If you are interested in evaluating the Commercial edition of SQLCipher prior to purchase, please feel free to submit a trial request here.

Thank you so much for the link. That is great news.
Another hurdle I was thinking about is switching from the cipher packages I am currently using to the zetetic packages. If I were to create a new version of my app that uses the zetetic packages, would it be able to open a database that was encrypted with the old cipher packages? If not, do you have any recommendations on how to make the switch?

Hi @achristy,

Yes, the new sqlcipher-android package is compatible with the older android-database-sqlcipher, this will require changes to your import statements. Please note that if you are upgrading from a different major version of SQLCipher (e.g., 3.x → 4.x) you will want to review your upgrade options here [1].


  1. Upgrading to SQLCipher 4 ↩︎

Ok two questions, though:

  1. My .net maui app (which currently uses cipher 4) only supports iOS and Windows, not Android, Would it still be ok?
  2. Regarding the platform, on the SQLCipher Commercial Edition Online Ordering page under “Step 2. Choose Platforms”, which ones would apply to a .net maui cross platform app that supports only iOS and Windows?
    I suppose for iOS, it would be “SQLCipher for iOS .NET”.
    For Windows, though, I am not sure if it would be “SQLCipher for Windows .NET” or “SQLCipher for Windows UWP”.

Hi @achristy,

I’m sorry, I’m not sure why I thought you were using Android! For Maui support you would want to use SQLCipher for iOS .NET, and SQLCipher for Windows .NET.

Great. Thank you. Sorry for all of the questions.
Just one more for now, though. I am trying to get an idea of the annual cost.
So, for those two platforms (SQLCipher for iOS .NET and SQLCipher for Windows .NET) plus Cipher Care:
It would be $998/year for 1 developer for the first year.
After that, it would be $1097/year for 1 developer.
Is that correct?

Hi @achristy,

SQLCipher for iOS .NET and SQLCipher for Windows .NET are priced at $499 USD per developer user. The Commercial licenses are perpetual so the initial cost for a single developer user would be $998 USD plus applicable taxes. CipherCare is our support and maintenance program. It provides private, prioritized support, and access to prebuilt binary updates of licensed SQLCipher products. CipherCare is priced per license, however the first year is free when you enroll with the purchase of your license(s). CipherCare for those products are priced at $99 USD per license, per year. After the first year, CipherCare for those products would total $198 USD per developer user.

Please note that Commercial licenses are sold per developer user. A “Developer User” is anyone on the development team for an application that includes SQLCipher—that usually includes any people or computer system (e.g. continuous integration servers) that builds, compiles, packages, or tests applications that depend on SQLCipher.