対象
- .NET Framework
- SQLiteを組み込もうとしている
- パスワードを設定しようとしている
調査内容
SQLiteでパスワードを設定した場合、暗号化される。
その暗号化っていったい何者で、どうやって暗号化しているのか。
結果
WinCryptを使用して、RSA-SHA1-RC4で暗号化している。
暗号化しているのはB-Treeページ単位で、それぞののページの読み書きを行うときに呼び出されているように見える。
SQLite.Interop/src/win/crypt.c:InitializeProvider()