LINUX.ORG.RU
ФорумTalks

Удивительный и загадочный мир приключений OpenSSL 1.1.0

 


0

1

Как известно, с выходом OpenSSL 1.1.0 разработчики поменяли API и этим позвали всех разработчиков и хакеров в мир ошибок

ошибка: агрегатный тип <<EVP_MD_CTX mdctx>> неполон и не может быть определён
ошибка: нет декларации <<EVP_MD_CTX_cleanup>> в этой области видимости
error: invalid use of incomplete type 'DH {aka struct dh_st}'
ошибка: поле <<evp>> имеет неполный тип
ошибка: dereferencing pointer to incomplete type <<RSA {aka struct rsa_st}>>
ошибка: dereferencing pointer to incomplete type <<DSA {aka struct dsa_st}>>
ошибка: dereferencing pointer to incomplete type <<EVP_PKEY {aka struct evp_pkey_st}>>
ошибка: dereferencing pointer to incomplete type <<X509_NAME_ENTRY {aka struct X509_name_entry_st}>>
ошибка: dereferencing pointer to incomplete type <<COMP_METHOD {aka const struct comp_method_st}>>
ошибка: размер <<temp_ctx>> в памяти неизвестен
/usr/include/openssl/asn1_mac.h:10:2: ошибка: #error "This file is obsolete; please update your software."
ошибка: в макрос <<EVP_MD_CTX_create>> передано 1 аргументов, но используется только 0
и других подобных.

Конечно, изменения затронули только часть софта и остальное продолжает собираться как будто ничего и не произошло: curl, fetchmail, git, irssi, fbi,... и т.д.

А что не собирается? Например, openssh. Даже openssh-portable из git'а. libtorrent, которую использует rtorrent, тоже не собирается. nmap из тарболов не собирается, но собирается из git'а. lynx (из которого я сейчас и пишу) я пропатчил: http://saahriktu.org/downloads/patches/lynx_ssl11.patch . Ruby из тарболов тоже не собирается, но собирается из git'а. Python 2.7.12, 3.5.2 и 3.6.0a4 собираются, но с

Failed to build these modules:
_hashlib           _ssl
youtube-dl превращается в тыкву, да. Зато OpenSSL 1.1.0.

★★★★★

не нужно копротивляться прогрессу.

Spoofing ★★★★★
()

А сказать-то что хотел? Что при изменении API, программы использующий старый, перестают собираться?

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

API поменяли частично. Понятное дело, многое нужно патчить, но тут не успевают даже разработчики крупных проектов. И это уже после релиза. И ладно бы там слишком много надо было патчить, большинство ошибок связаны с тем, что многие структуры теперь из public стали private.

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

И ладно бы там слишком много надо было патчить, большинство ошибок связаны с тем, что многие структуры теперь из public стали private.

Т.е. новый API предоставляет меньше возможностей, чем старый? Неприятно, да. Но писать об этом таки стоит в мейллист/багзиллу openssl, а не на ЛОР. Сомневаюсь, что авторы openssl его читают.

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

Не меньше, но по-другому. В том же приведённом патче я заменил строчку

           handle->options |= SSL_OP_NO_TLSv1;
на
           SSL_set_options(handle, SSL_get_options(handle) | SSL_OP_NO_TLSv1);
Напрямую теперь нельзя.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)

да ёклмн, теперь не будет еще полгода обновлений опенссл в слаке

Reedych ★☆
()
Ответ на: комментарий от kirk_johnson

Доступ к данным должен быть контролируемым. Для прямого доступа к членам структуры или класса должны быть веские причины.

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

Доступ к данным должен быть контролируемым. Для прямого доступа к членам структуры или класса должны быть веские причины.

Круто, а причем тут openssl (не говоря уже о том, что в ядре, где ООП во все поля, проблем с доступом к полям почему-то нет)?

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)

1.0.x будет поддерживаться ещё пару лет, всё живое успеет переползти. А в составе LTS дистрибутивов патчи в него будут портироваться ещё дольше, ubuntu xenial например аж до 21 года.

selivan ★★★
()
Последнее исправление: selivan (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

Видимо, они решили сделать API более предсказуемым и надежным, убрав прямой доступ к данным структуры.

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от Harald

это что за сайтег такой, что он показывает?

Список пакетов в Дебиане, которые не собираются с новым OpenSSL.

h31 ★★★★
()
Ответ на: комментарий от Harald

Без понятия. Ссылку нашел на каком-то багтрекере.

h31 ★★★★
()
Ответ на: комментарий от kirk_johnson

не говоря уже о том, что в ядре, где ООП во все поля, проблем с доступом к полям почему-то нет

Ыыыы, LOL. Ты хоть раз пробовал хоть сколь-нибудь заметный объем кернельного кода переточить на другую версию ядра - ну там типа vboxpci.ko, nvidia.ko и т.д.? А не подумал, почему все сторонние драйвера приходится пересобирать после установки нового ядра?

Проблем у него, сцуко, нет, едрена вошь.

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Ыыыы, LOL. Ты хоть раз пробовал хоть сколь-нибудь заметный объем кернельного кода переточить на другую версию ядра - ну там типа vboxpci.ko, nvidia.ko и т.д.? А не подумал, почему все сторонние драйвера приходится пересобирать после установки нового ядра?

Ага. Я этим на жизнь зарабатываю :D

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