Open mike12121212 opened 5 years ago
The unofficial sqlcipher builds provided with SQLitePCL.raw (which is used by sqlite-net) currently only support sqlcipher 3.
See ericsink/SQLitePCL.raw#244
You can, however, use the official builds from Zetetic with SQLitePCLRaw.bundle_zetetic.
@ericsink Just following up on your last response on this issue. I can see that passing in a connection string to the constructor still creates a database with sqlcipher3 encryption.
You refer to being able to "use the official builds from Zetetic with SQLitePCLRaw.bundle_zetetic.". I have to be honest, I am not sure what you are referring to here. Is there any further guidance on the subject that you are referring to?
Zetetic is the company that develops SQLCipher. Their website is:
https://www.zetetic.net/sqlcipher/
The nuget package that bridges the gap between SQLitePCL.raw and Zetetic's builds is:
Thanks for the response @ericsink - I should have been clearer in my original question. I can see the Nuget package that you refer to, but I can't say that I am sure what is supposed to be done with that pacakge. Perhaps I am trying to do something that just isn't going to work. What I was hoping to do was use the sqlite-net package, but use v4 of sqlcipher, rather than v3.
Zetetic sells official builds of sqlcipher. You can buy a v4 build from them, and their support folks will help you use it with bundle_zetetic.
That's the route I was looking at taking, will go for that route.
@clawrenceks to provide a bit of additional clarity, the "official builds" are commercially licensed and supported by Zetetic. Specifically the SQLCipher for Xamarin.iOS
, SQLCipher for Xamarin.Android
, SQLCipher for Windows .NET
, and SQLCipher for macOS .NET
packages are all compatible with SQLitePCLRaw.bundle_zetetic
. These are all based on the most recent version of SQLCipher, currently 4.1.0. Updates are always in lock-step with the most recent release of SQLCipher and are usually made available to customers the same day as the public announcement. These packages are supported by the SQLCipher development team. You can obtain free trials of any of the Commercial Edition packages at the site.
In order to use one of the official builds, you would just need to go to the SQLCipher site above, and either request a trial or purchase one or more of the Commercial Edition packages. You would then add the packages to your project and, in conjunction with SQLitePCLRaw.bundle_zetetic
, they can be used with sqlite-net and other libraries that rely on the SQLitePCLRaw
bundles (e.g. Microsoft.Data.SQLite, Entity Framework Core 2, etc).
If you have any other questions about the Commercial Edition builds I would encourage you to either visit the SQLCipher discussion site or send us an email at Zetetic Support.
@sjlombardo Thanks for the additional information. I have requested a trial to look at integrating 4.1 into my project.
Can't there be two versions? Use the new version of 4.x and the old version of 3.x. Isn't that okay?
Passing a key in the connectionstring seems to create a database with sqlcipher 3 encryption. How do we create a database with sqlcipher 4 encryption?