crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

8 страниц V  « < 6 7 8  
Ответить в данную темуНачать новую тему
> SQLite и криптография, например SQLCipher
[Matrix]
  опции профиля:
сообщение 17.4.2013, 17:37
Сообщение #71


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 14.9.2011
Пользователь №: 2872

Спасибо сказали: 0 раз(а)




Репутация:   0  


Если верить консоли (тестировал в линуксе обычную версию), грузить нужно

$ sqlite3 
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> SELECT "ы" LIKE "Ы";
0
sqlite> SELECT icu_load_collation('ru_RU', 'russian');
Error: no such function: icu_load_collation
sqlite> .load ./libsqliteicu.so
sqlite> SELECT icu_load_collation('ru_RU', 'russian');

sqlite> SELECT "ы" LIKE "Ы";
1
sqlite>


Осталось разобраться что делать в винде с sqlcipher'ом
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 18.4.2013, 11:50
Сообщение #72


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


тут нет загрузки какого-то расширения. тут только collation выставляется, а это другая команда.
на сайте они пишут, что
Цитата
(18) Case-insensitive matching of Unicode characters does not work.

The default configuration of SQLite only supports case-insensitive comparisons of ASCII characters. The reason for this is that doing full Unicode case-insensitive comparisons and case conversions requires tables and logic that would nearly double the size of the SQLite library. The SQLite developers reason that any application that needs full Unicode case support probably already has the necessary tables and functions and so SQLite should not take up space to duplicate this ability.

Instead of providing full Unicode case support by default, SQLite provides the ability to link against external Unicode comparison and conversion routines. The application can overload the built-in NOCASE collating sequence (using sqlite3_create_collation()) and the built-in like(), upper(), and lower() functions (using sqlite3_create_function()). The SQLite source code includes an "ICU" extension that does these overloads. Or, developers can write their own overloads based on their own Unicode-aware comparison routines already contained within their project.

http://www.sqlite.org/faq.html

если при компиляции указан макрос включения icu, то сам icu намертво прилинкован к sqlite (кстати, там многие опции не существуют, которые у тебя проставлены в строке сборки, но они просто игнорируются).
просто почитай код sqlite, где стоит макрос SQLITE_ENABLE_ICU - там всё понятно.

а что касается cypher'а - вот тут я не знаю: может, ему ещё что-то нужно перегружать. тогда, вероятно, поверх icu он ставит ещё какую-то свою дополнительную библиотеку.
вообще, расширения sqlite - это просто перегрузка некоторых функций. в описании каждого расширения указано, что оно перегружает и как. в любом случае, лучше собирать все библиотеки из сорцов, одним компилятором.

кроме того, в sqlite можно создавать динамические функции, я так делала. то есть, sqlite вызывает твою сишную функцию, связанную с неким именем в запросе. это если нужна какая-то хитрая обработка данных.

у меня дома нет венды, а на работе мало времени на эксперименты. я собрала sqlite с icu без проблем. это работает без всяких дополнений.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Mish_ka_*
сообщение 31.5.2014, 9:43
Сообщение #73





Гости








    


Уже весь измучился.

Подскажите пожалуйста в чём проблема. Делал всё по инструкциям

MSYS MSYS-1.0.11 (c:\msys\1.0\)
Раскрывающийся текст

g:/Programs/Qt/Tools/mingw482_32 /mingw
g:/Programs/Qt/5.3 /qt
c:/ /c

OpenSSL Win32OpenSSL-1_0_1g (c:\OpenSSL\)
TCLTK tcltk-8.4.1-1 (g:\Programs\Qt\Tools\mingw482_32\)
SQLCipher отсюда https://github.com/sqlcipher/sqlcipher
QT 5.3

Конфигурирую так
Раскрывающийся текст
cd /c/sqlcipher
./configure --prefix=/qt/src/qtbase/src/plugins/sqldrivers/sqlcipher --disable-tcl --disable-amalgamation CFLAGS="-DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -I/c/OpenSSL/include /c/OpenSSL/libeay32.dll -L/c/OpenSSL/lib/MinGW" LDFLAGS="-leay32"


выдаёт такую ошибку
Раскрывающийся текст

checking whether to support threadsafe operation... yes
checking for library containing pthread_create... none required
checking for crypto library to use... openssl
checking for HMAC_Init_ex in -lcrypto... no
configure: error: Library crypto not found. Install openssl!"


Третьи сутки бьюсь...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 2.6.2014, 7:23
Сообщение #74


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


смотри логи конфирурации. там подробно пишутся команды и все проверки. найди, где падает и посмотри, что ему нужно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_Oleg_*
сообщение 9.8.2014, 14:08
Сообщение #75





Гости








    


Цитата(Гость_Mish_ka_* @ 31.5.2014, 9:43) *
выдаёт такую ошибку:
configure: error: Library crypto not found. Install openssl!"


Я просто закоментировал в файле configure строки, которые сигнализируют об отсутствии OpenSSL.
Эта проверка не нужна, т.к. сборкой DLL'ки у меня занимается MSVC, а не MinGW.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

8 страниц V  « < 6 7 8
Быстрый ответОтветить в данную темуНачать новую тему
Теги


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 16.11.2024, 4:32