On 2015.09.18 at 11:36:12 +0300, Dmitry Belyavsky wrote:
> Привет!
>
> Вот не нравится мне это runtime добавление OIDов.
Мне очень нужна возможность использовать новый engine со старым
openssl. Ну и в плане последующего пакетирования будет удобно, если
можно будет апгрейдить engine не апгрейдя саму OpenSSL.
Можно потом еще почистить код инициализации так, чтобы если NID
определен в obj_mac.h, эта функция вообще для него не вызывалась.
В смысле в том месте, где объект используется при инициализации
константной структуры делать
# ifdef NID_something
NID_something
# else
NID_undef
#endif
и соответствующее присваивание в bind_engine спрятать под
#ifndef NID_something.
И коментарий написать "Эти OID-ы появились в версии 1.0.0, эти - в
1.0.3"
и так далее
Тогда будет очевидно что это временная штука, которая при сборке с
соответствующей версией openssl сама исчезнет из бинарника.
Кстати, у меня в этой ветке почему-то не работает gost-mac-12.
Команда
openssl dgst -engine gost -mac gost-mac-12 -key:xxxxxxxxxx somefile
Сегфолтится на EVP_PKEY_asn1_find_str. У тебя в твоей ветке оно работает
(естественно, если ключ правильной длины)? Собирать твою ветку (для
которой потребуется openssl из master мне сейчас немножко некогда.