beldmit: (Манул)
Dmitry Belyavskiy ([personal profile] beldmit) wrote2016-01-03 04:21 pm

(no subject)

Судя по реакции на звуки, я сегодня готов писать подражание Гумилёву

"Сегодня особенно громок твой топ"

(топ - в смысле топот).

Самое интересное, что вроде выспался и точно не пил.

[identity profile] mbwolf.livejournal.com 2016-01-03 02:47 pm (UTC)(link)
Антициклон, сэр!

[identity profile] beldmit.livejournal.com 2016-01-03 02:59 pm (UTC)(link)
Не, антициклон я люблю. Скорее всё-таки минорный недосып.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2016-01-03 04:29 pm (UTC)(link)
Это ты своей кошке такие эпиграммы пишешь?

[identity profile] beldmit.livejournal.com 2016-01-03 04:34 pm (UTC)(link)
Не, кошки как раз сейчас странных скачек не учиняют. А вот Нина включает странную музыку.

Зато я за сегодня допилил хвосты в open-engine чтобы он принимал параметры имитовставки и длину как macopt и пересобрал mesa на подарочном ноутбуке. И оно даже работает. Можно было не проявлять радикализм и ставить testing вместо jessie, но это был запасной вариант.
vitus_wagner: My photo 2005 (white)

[personal profile] vitus_wagner 2016-01-03 06:46 pm (UTC)(link)
Вот я не понял, чем тебя не устраивала передача длины как -sigopt? Ведь у всех нормальных людей кроме авторов утилиты openssl будет использоваться один и тот же EVP_PKEY_CTX и при Init, и при Final.

[identity profile] beldmit.livejournal.com 2016-01-03 06:50 pm (UTC)(link)
На самом деле Игуса не устраивало то, что её нельзя передать при установке ключа на уровне C-шного API. Действительно неочевидная мисфича.

Теперь её можно передавать и там, и там. -sigopt передаётся позже и переопределяет значение.
vitus_wagner: My photo 2005 (white)

[personal profile] vitus_wagner 2016-01-03 06:53 pm (UTC)(link)
На уровне C-шного API было вполне можно. Я уж тебе это и по-русски писал, и по английски.
Посмотри как это у меня в модуле ctypescrypto.mac сделано. Работало прекрасно.

Надо только, блин не делать вид, что MAC это дайджест, а честно работать с ним через EVP_PKEY_CTX.

А сейчас ты по-моему сделал overengineering.

И для того, чтобы понять, что ты сделал фигню, тебе надо перестать мыслить с терминах ключей команды dgst и начать мыслить в терминах того самого С-шного API. Тогда ты, кстати, сразу поймешь какую фигню сделали авторы команды dgst.
Edited 2016-01-03 18:58 (UTC)

[identity profile] beldmit.livejournal.com 2016-01-03 07:09 pm (UTC)(link)
Да, естественно, через EVP_PKEY_CTX. Но сейчас ты можешь создать этот EVP_PKEY_CTX единожды, установить туда узлы замены mac, ключ и длину выхода и позвать keygen. А в твоём варианте это не работало.
vitus_wagner: My photo 2005 (white)

[personal profile] vitus_wagner 2016-01-03 07:22 pm (UTC)(link)
Работало. Только keygen-то звать зачем?

Делается сначала EVP_PKEY_new_mac_key, Он внутри позовет kegen, и это будет ПЕРВОЙ ОПЕРАЦИЕЙ.
потом EVP_MD_CTX_create
Потом EVP_DigestSignInit (который получает этот EVP_PKEY и EVP_MD_CTX и возвращает в одном из параметров указатель на EVP_PKEY_CTX)

и уже потом вызываются ctrl-команды на этот самый EVP_PKEY_CTX

Потом уже можно делать EVP_DigestUpdate или EVP_DigestSignUpdate (пофиг на самом деле что именно)

и EVP_DigestSignFinal.


Для вычисления дайджестов следует пользоваться именно этим API, и, по-моему это даже было описано в криптокомовском руководстве программиста. Ну а команда dgst делает не так, и поэтому получается криво.

[identity profile] beldmit.livejournal.com 2016-01-03 07:25 pm (UTC)(link)
Игус как раз с руководства программиста и начал. И позвал меня, когда не получилось. Но ход твоих мыслей мне нравится.