LINUX.ORG.RU

либа для md5, crc32, sha1 для с++


0

0

**** искать либу для этих 3 функций (md5, crc32, sha1).

Посоветуйте библиотеку.

Попытался заюзать crypto++ - почти даже получилось, но оно отказалось собиратся на одном из наших серверов c gentoo
(Linux xxx 2.6.18-028stab051 #1 SMP Thu Jan 24 16:21:47 MSK 2008 x86_64 AMD Opteron(tm) Processor 248 AuthenticAMD GNU/Linux)
из-за отсутствия sse2.

Погуглиол - нашел botan, но опятьже он на amd64 не работает
dev-libs/botan-1.6.1-r1 (masked by: ~amd64 keyword)

Мне хоть что, чтоб быстро работало и компилилось на наших платформах (gentoo 64 bit Intel Xeon и AMD Opteron; ubuntu hardy 32 bit; win32).

Спасибо.



>> Попытался заюзать crypto++ - почти даже получилось, но оно отказалось собиратся на одном из наших серверов c gentoo (Linux xxx 2.6.18-028stab051 #1 SMP Thu Jan 24 16:21:47 MSK 2008 x86_64 AMD Opteron(tm) Processor 248 AuthenticAMD GNU/Linux) из-за отсутствия sse2.

1) Ваш процессор поддерживает SSE2. 2) Для работы crypto++ SSE2 не обязательно и поддержку можно выключить при сборке (в случае gentoo - USE-флаги).

>> Погуглиол - нашел botan, но опятьже он на amd64 не работает dev-libs/botan-1.6.1-r1 (masked by: ~amd64 keyword)

Кто сказал что не работает? Почитайте уже gentoo handbook...

Deleted
()
Ответ на: комментарий от Deleted

> 1) Ваш процессор поддерживает SSE2. 2) Для работы crypto++ SSE2 не обязательно и поддержку можно выключить при сборке (в случае gentoo - USE-флаги).
У меня этот баг происходит - http://bugs.gentoo.org/show_bug.cgi?format=multiple&id=215321
в генту я не силен, в основном в качестве юзера - привык, что приложения устанавливаются без проблем. устанавливать новые binutils для меня проблематично 8(

> Кто сказал что не работает? Почитайте уже gentoo handbook...

ну насколько я понял masked значит нестабильное. А такое мне не надо.


кстати вот что emerge выдаёт при компиляции crypto++. Что я делаю неправильно?

sh-3.1# USE="-sse2 -sse3" emerge -av crypto++

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] dev-libs/crypto++-5.5.2 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

Would you like to merge these packages? [Yes/No] Y

>>> Emerging (1 of 1) dev-libs/crypto++-5.5.2 to /

.....
x86_64-pc-linux-gnu-g++ -O2 -pipe -c oaep.cpp
x86_64-pc-linux-gnu-g++ -O2 -pipe -c osrng.cpp
x86_64-pc-linux-gnu-g++ -O2 -pipe -c panama.cpp
{standard input}: Assembler messages:
{standard input}:238: Error: no such instruction: `palignr xmm5,xmm2,4'
{standard input}:238: Error: no such instruction: `palignr xmm6,xmm3,4'
{standard input}:244: Error: no such instruction: `palignr xmm7,xmm3,4'
{standard input}:244: Error: no such instruction: `palignr xmm6,xmm2,4'
{standard input}:244: Error: no such instruction: `palignr xmm5,xmm1,4'
{standard input}:244: Error: no such instruction: `palignr xmm4,xmm0,4'
make: *** [panama.o] Ошибка 1

!!! ERROR: dev-libs/crypto++-5.5.2 failed.
Call stack:
ebuild.sh, line 1614: Called dyn_compile
ebuild.sh, line 971: Called qa_call 'src_compile'
environment, line 3363: Called src_compile
crypto++-5.5.2.ebuild, line 27: Called die

!!! (no error message)
!!! If you need support, post the topmost build error, and the call stack if relevant.
!!! A complete build log is located at '/var/tmp/portage/dev-libs/crypto++-5.5.2/temp/build.log'.

stpg
() автор топика
Ответ на: комментарий от stpg

>> У меня этот баг происходит - http://bugs.gentoo.org/show_bug.cgi?format=multiple&id=215321

Там же описано и решение проблемы.

>> в генту я не силен, в основном в качестве юзера - привык, что приложения устанавливаются без проблем. устанавливать новые binutils для меня проблематично 8(

Разжёвываю:

1) emerge --sync # обновляем дерево портежей

2) emerge -av1 binutils # обновляем binutils

3) binutils-config -l # смотрим какие установлены версии бинутилсов

4) binutils-config 3 # выбираем самую свежую, заместо 3 подставить номер, посмотренный на шаге 3

5) source /etc/profile # чтобы изменения вступили в силу в текущем сеантсе

6) emerge -av dev-libs/crypto++

>> Total: 1 package (1 reinstall), Size of downloads: 0 kB

В данном случае пакет crypto++ у вас уже установлен 8).

>> ну насколько я понял masked значит нестабильное. А такое мне не надо.

"Masked by ~" может значить две вещи: 1) В багзиллу кто-то сообщил о проблеме и её ещё не решили (поиск по багзилле рулит). 2) Просто никто не запросил перевод в стабильную ветку (такое часто бывает с редкоиспользуемыми пакетами). В любом случае стабильного софта в природе не бывает =).

Deleted
()
Ответ на: комментарий от Deleted

>>Разжёвываю:
>>1) emerge --sync # обновляем дерево портежей

>>2) emerge -av1 binutils # обновляем binutils

>>3) binutils-config -l # смотрим какие установлены версии бинутилсов

>>4) binutils-config 3 # выбираем самую свежую, заместо 3 подставить номер, посмотренный на шаге 3

>>5) source /etc/profile # чтобы изменения вступили в силу в текущем сеантсе

>>6) emerge -av dev-libs/crypto++


Спасибо, на будущее пригодится.

>>>> Total: 1 package (1 reinstall), Size of downloads: 0 kB

>>В данном случае пакет crypto++ у вас уже установлен 8).


Это я страшно прохачил=) Скачал зипарь с сорцами. Нашел в файле который выдаёт ошибку строки и закоментарил их. Дальше набрал emerge -av dev-libs/crypto++ и быстро заменил файл в папке /var/tmp/portage/.../crypto++/work/ этот файлик=)) В итоге всё собралось.

Но всеравно ничего не помогло - полученый libcrypto++. a отказался линковатся с нашей прогой, я немного покопал и забил на этот crypto++. Прикрутил openssl для md5 и sha1, а для crc32 использовал boost::crc. На всёпровсё ушло минут 10, а я целый день е*ся с этим libcrypto++ 8(((
Как же я не подумал об openssl с самого начала?8(((

>>>> ну насколько я понял masked значит нестабильное. А такое мне не надо.


>>"Masked by ~" может значить две вещи: 1) В багзиллу кто-то сообщил о проблеме и её ещё не решили (поиск по багзилле рулит). 2) Просто никто не запросил перевод в стабильную ветку (такое часто бывает с редкоиспользуемыми пакетами). В любом случае стабильного софта в природе не бывает =).


Спасибо за разъяснение. Я просто в прошлый раз подходил к админу, чтоб он поставил замаскированый пакет - он меня послал, сказав что у нас не будет нестабильных пакетов на боевых серверах;)

stpg
() автор топика
Ответ на: комментарий от stpg

>> Я просто в прошлый раз подходил к админу, чтоб он поставил замаскированый пакет - он меня послал, сказав что у нас не будет нестабильных пакетов на боевых серверах;)

Это имеет смысл только для системных библиотек и сервисов, а так же для библиотек, которые использует большое количество софта.

В вашем случае, даже если эта библиотека случайно окажется страшно глючной и будет постоянно вызывать сегфолты - это повлияет только на вашу программу. Работающий на этой же машине apache или postgresql ничего не заметит.

Deleted
()

IMHO логично использовать libcrypto из OpenSSL - скорее всего она уже установлена на машине.

Onanim
()
Ответ на: комментарий от Onanim

> IMHO логично использовать libcrypto из OpenSSL - скорее всего она уже установлена на машине.
Ога, её и прикрутил. Спасибо за напоминание;) Могу повторитть: я идиот, что не подумал о openssl с самого начала при выборе библиотеки=)

stpg
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.