И тем не менее, вот у
меня выкачанный вчера в 12:22 мастер, вот я в нем удаляю
все .o и делаю make gost12sum. Запускаю
./gost12sum ~/streebog-master/examples/M1
получаю
86d74062bf80c93fb604f5f80d4a34250347d254070b62abbd488b544791db99
/home/igus/streebog-master/examples/M1
Удаляю все .o, собираю
gcc -c -g -DL_ENDIAN -o gosthash2012.o gosthash2012.c
make gost12sum
запускаю
./gost12sum ~/streebog-master/examples/M1
получаю
00557be5e584fd52a449b16b0251d05d27f94ab76cbaa6da890b59d8ef1e159d
/home/igus/streebog-master/examples/M1
С уважением,
Игорь Устинов,
Зам.ген.директора
ООО "Криптоком
17.08.2017
22:15, Dmitry Belyavsky пишет:
Привет!
Вообще ты что-то странное пишешь. Потому что
сейчас в мастере вроде как детектится endianess.
Энжин, может, и не предназначен для сборки
вне дерева OpenSSL, а вот gostsum'ы
интуитивно представляются
openssl-независимыми.
Моё вчерашнее утверждение, что gost12sum в
мастере считает хэш неправильно, было
вызвано именно описанной причиной: я выкачал
мастер и сказал make gost12sum. Сейчас я
пересобрал gosthash2012.o с опцией
-DL_ENDIAN, после чего gost12sum посчитал
хэш от M1 правильно, только байты выводит в
порядке, обратном к openssl.
С уважением,
Игорь Устинов,
Зам.ген.директора
ООО "Криптоком
17.08.2017
16:50, Dmitry Belyavsky пишет:
Привет!
По моим представлениям
-DL_ENDIAN должно исправить
ситуацию во втором случае. А
вообще engine в 1.0.2 не
предназначен для сборки вне дерева
openssl.
Если
собрать открытый энжин в составе
openssl, то файл gosthash2012.c
компилируется командой
gcc -I../../include -fPIC
-DOPENSSL_PIC -DZLIB
-DOPENSSL_THREADS -D_REENTRANT
-DDSO_DLFCN -DHAVE_DLFCN_H -g
-Wa,--noexecstack -m64
-DL_ENDIAN -O3 -Wall
-DOPENSSL_IA32_SSE2
-DOPENSSL_BN_ASM_MONT
-DOPENSSL_BN_ASM_MONT5
-DOPENSSL_BN_ASM_GF2m -DRC4_ASM
-DSHA1_ASM -DSHA256_ASM
-DSHA512_ASM -DMD5_ASM -DAES_ASM
-DVPAES_ASM -DBSAES_ASM
-DWHIRLPOOL_ASM -DGHASH_ASM
-DECP_NISTZ256_ASM -c -o
gosthash2012.o gosthash2012.c
и в результате получается
объектник, который работает
правильно.
Если же выкачать открытый энжин
и собирать gost12sum, не собирая
предварительно openssl, то файл
gosthash2012.c компилируется
командой
cc -I../../include -g -c -o
gosthash2012.o gosthash2012.c
и в результате получается
объектник, который считает хэши
НЕ правильно.