Привязка SQLCipher к Qt
Материал из Wiki.crossplatform.ru
(Новая страница: «== Краткое описание SQLCipher. == [http://www.zetetic.net/software/sqlcipher SQLCipher] - это кроссплатформенное расшире…») |
(→Установка и сборка SqlCipher.) |
||
Строка 22: | Строка 22: | ||
=== Установка и сборка SqlCipher (Linux). === | === Установка и сборка SqlCipher (Linux). === | ||
+ | Клонируем из репозитория исходники '''S'''ql'''C'''ipher. Для этого в Вашей системе должен быть установлен [http://git-scm.com/ git]. Клонирование производится в любое удобное место. | ||
+ | <source lang="bash"> | ||
+ | $ git clone git://github.com/sjlombardo/sqlcipher.git | ||
+ | </source> | ||
+ | |||
+ | Далее, нам необходимо собрать '''S'''ql'''C'''ipher. Для этого выполняем следующие действия (не забываем изменить путь в --prefix) | ||
+ | <source lang="bash"> | ||
+ | $ ./configure --prefix=/home/user/qtsdk/qt/src/plugins/sqldrivers/sqlcipher CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto" | ||
+ | $ make | ||
+ | $ make install | ||
+ | </source> | ||
+ | |||
+ | Теперь в ''~/qtsdk/qt/src/plugins/sqldrivers'' у нас появилось структура каталогов '''bin''', '''include''', '''lib''' - которые необходимы нам для сборки нового sql плагина для '''Q'''t. | ||
=== Установка и сборка SqlCipher (Windows). === | === Установка и сборка SqlCipher (Windows). === | ||
+ | |||
+ | ==== Установка дополнительного ПО. ==== | ||
+ | |||
+ | Скачиваем и устанавливаем на свой компьютер [http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe MSYS]. В конце установки будет задано несколько вопросов, соглашаемся с ними и указываем путь до '''M'''in'''G'''W (входит в поставку '''Q'''t). | ||
+ | |||
+ | Скачиваем и устанавливаем [http://www.slproweb.com/download/Win32OpenSSL-0_9_8m.exe Win32 OpenSSL v0.9.8m]. Во время установки не менять место размещения dll-файлов. | ||
+ | |||
+ | Так же нам потребуется [http://downloads.sourceforge.net/mingw/tcltk-8.4.1-1.exe TclTk] (специальная сборка для '''M'''in'''G'''W). Скачиваем, устанавливаем. Во время установки указываем путь до '''M'''in'''G'''W. | ||
+ | Находим файл MINGWPATH/bin/'''tclsh84.exe''' и переименивываем его в '''tclsh.exe''' | ||
+ | |||
+ | ====Конфигурирование и компиляция sqlcipher==== | ||
+ | Для сборки sqlcipher, запускаем MSYS и выполняем следущие действия (обязательно учитываем регистр при написании) | ||
+ | <source lang="bash"> | ||
+ | $ cd sqlcipher | ||
+ | $ ./configure --prefix=/QTPATH/src/plugins/sqldrivers/sqlcipher --disable-tcl --disable-amalgamation | ||
+ | CFLAGS="-DSQLITE_HAS_CODEC -I../OpenSSL/include /c/Windows/System32/libeay32.dll" | ||
+ | $ make | ||
+ | $ make dll | ||
+ | $ make install | ||
+ | $ cp /OPENSSLPATH/lib/MinGW/libeay32.a /QTPATH/src/plugins/sqldrivers/sqlcipher/lib | ||
+ | </source> |
Версия 19:49, 23 апреля 2010
Содержание |
Краткое описание SQLCipher.
SQLCipher - это кроссплатформенное расширение SQLite, с открытым исходным кодом. Она зашифровывает страницы базы данных прежде чем они записываются для хранения и дешифрует их во время чтения. Т.о. SQLCipher предоставляет полностью зашифрованную SQLite базу данных. При этом, пользователю не требуется обладать специальными знаниями лежащими в основе безопасности баз данных. Приложение будет использовать стандартное API для манипуляции таблицами используя SQL.За кулисами библиотека сама молча управляет аспектами безопасности.
Подробнее о SQLCipher смотрите на сайте разработчика. [1]
Подготовка к интеграции.
Для того что бы получить возможность использовать SQLCipher в своем приложении на Qt, нам потребуется пересобрать существующий qsqlite плагин, внеся в исходный код этого плагина незначительные изменения.
Не смотря на то, что SQLCipher можно использовать без шифрования, т.е. как обычную SQLite базу данных, тем не менее, давайте не будем трогать существующий плагин для SQLite, а сделаем на его основе новый.
#Создаём копию плагина sqlite с именем sqlcipher $ cd QTDIR/src/plugins/sqldrivers $ cp -rf sqlite sqlcipher
Установка и сборка SqlCipher.
Установка и сборка SqlCipher (Linux).
Клонируем из репозитория исходники SqlCipher. Для этого в Вашей системе должен быть установлен git. Клонирование производится в любое удобное место.
$ git clone git://github.com/sjlombardo/sqlcipher.git
Далее, нам необходимо собрать SqlCipher. Для этого выполняем следующие действия (не забываем изменить путь в --prefix)
$ ./configure --prefix=/home/user/qtsdk/qt/src/plugins/sqldrivers/sqlcipher CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto" $ make $ make install
Теперь в ~/qtsdk/qt/src/plugins/sqldrivers у нас появилось структура каталогов bin, include, lib - которые необходимы нам для сборки нового sql плагина для Qt.
Установка и сборка SqlCipher (Windows).
Установка дополнительного ПО.
Скачиваем и устанавливаем на свой компьютер MSYS. В конце установки будет задано несколько вопросов, соглашаемся с ними и указываем путь до MinGW (входит в поставку Qt).
Скачиваем и устанавливаем Win32 OpenSSL v0.9.8m. Во время установки не менять место размещения dll-файлов.
Так же нам потребуется TclTk (специальная сборка для MinGW). Скачиваем, устанавливаем. Во время установки указываем путь до MinGW. Находим файл MINGWPATH/bin/tclsh84.exe и переименивываем его в tclsh.exe
Конфигурирование и компиляция sqlcipher
Для сборки sqlcipher, запускаем MSYS и выполняем следущие действия (обязательно учитываем регистр при написании)
$ cd sqlcipher $ ./configure --prefix=/QTPATH/src/plugins/sqldrivers/sqlcipher --disable-tcl --disable-amalgamation CFLAGS="-DSQLITE_HAS_CODEC -I../OpenSSL/include /c/Windows/System32/libeay32.dll" $ make $ make dll $ make install $ cp /OPENSSLPATH/lib/MinGW/libeay32.a /QTPATH/src/plugins/sqldrivers/sqlcipher/lib