Could this open database file crypted with official SEE?
DavidWithTuxedo opened this issue · 5 comments
Dear developers, I want to learn whether this project is compatible with the official SEE?
Algorithm: AES-128-CCM
dbKey: Known
Thanks in advance!
I want to learn whether this project is compatible with the official SEE?
Unfortunately, the answer is no. Official SEE is a commercial product, to which I don't have access. And even if I had access to SEE, its license would prohibit to use it in an open-source project.
Algorithm: AES-128-CCM dbKey: Known
However, the encryption algorithm AES-128-CCM is publicly available and is patent-free. If you could provide a small sample database encrypted with AES-128-CCM
, I could give it a try.
Thanks for your reply! There is a simple example.
File Here
Algorithm: AES-128-CCM
dbKey: "Egroj38D9fUNkkgB" (16-bits ByteArray -> 128 bits)
Content: Some simple UTF-8 text files
Thanks for your reply! There is a simple example. File Here Algorithm: AES-128-CCM dbKey: "Egroj38D9fUNkkgB" (16-bits ByteArray -> 128 bits) Content: Some simple UTF-8 text files
By the way, seemly there is also a strange way to get access to its content without offcial SEE source. "sqlite3-see-aes128-ccm.c" is integrated in the old-fashioned "Flash", the "flash.data.SQLConnection" API.
But as a result of my poor experience on ActionScript, I can only connect to the database according to some official examples and perform simple reads. without being able to decrypt it to raw database.
flash.data.SQLConnection.openAsync(dbFile, air.SQLMode.CREATE, null, false, 1024, encryptionKey);
https://help.adobe.com/en_US/air/html/dev/WS8AFC5E35-DC79-4082-9AD4-DE1A2B41DAAF.html
Thanks for your reply! There is a simple example. File Here Algorithm: AES-128-CCM dbKey: "Egroj38D9fUNkkgB" (16-bits ByteArray -> 128 bits) Content: Some simple UTF-8 text files
Thanks for the sample file. I'll take a look at it. However, I can't promise anything. In fact, it not only depends on the - known - encryption algorithm, but also on several other - unknown - factors (key derivation, initialization, ...).
By the way, seemly there is also a strange way to get access to its content without offcial SEE source. "sqlite3-see-aes128-ccm.c" is integrated in the old-fashioned "Flash", the "flash.data.SQLConnection" API.
Obviously the API binaries are linked with SEE, and therefore you can access encrypted databases via the API (as long as you know the encryption key).
But as a result of my poor experience on ActionScript, I can only connect to the database according to some official examples and perform simple reads. without being able to decrypt it to raw database.
If you can execute arbitrary SQL statements via the API (as seems to be the case), it is of course possible to find out the structure of the database schema, and to retrieve all database content based on that knowledge.
If extracting the content from such an encrypted database file is all you actually need, I would recommend to follow the outlined procedure (determine database schema, retrieve data based on the schema).
I'm going to convert the issue into a discussion, because wxSQLite3 currently doesn't support accessing SEE encrypted databases - and, actually, it is highly unlikely that it ever will.
The "flash.data.SQLConnection" API will allow you to access encrypted databases for which you are authorized. If that API doesn't suit your needs, you still have the option to purchase SEE.