Привет!
Энжин, может, и не предназначен для сборки вне дерева 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.
2017-08-17 16:46 GMT+03:00 Igor Ustinov <igus@cryptocom.ru>:
Если собрать открытый энжин в составе 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
и в результате получается объектник, который считает хэши НЕ правильно.
--
SY, Dmitry Belyavsky