[РЕШЕНО] Ошибка OpenSSL при работе с SSL/TLS

После обновления до =dev-libs/openssl-1.0.1e-r2 перестали работать протоколы SSL/TLS (возможно ещё какие-то криптографические функции пострадали, но мне об этом не известно).

Вывод curl и wget (на Pastebin ибо спам-фильтр).

От ресурса это никак не зависит — попытка обратиться к любому адресу по протоколу HTTPS заканчивается одинаково.

Пробовал откатить OpenSSL вплоть до версии 1.0.0j, а также поэкспериментировать с флагами (например, собрать с -gmp), но успеха не добился. emerge -e @system также проблему не решает (здесь советуют пересобирать @world, но сути это не меняет).

Может кто сталкивался с подобной аномалией? Посоветуйте, куда ещё копнуть?

Буквально неделю назад я

Буквально пару недель назад я создавал подобную тему. У меня всё решилось emerge -e world. Подозреваю, что нужно было пересобрать что-из app-crypt/p11-kit app-crypt/qca-ossl dev-libs/libksba

А может "revdep-rebuild -L

А может "revdep-rebuild -L libcrypto.so.1.0.0" будет достаточно?

Хотя теоретически, обновление с -r1 до -r2 не должно создавать таких проблем. У меня -r1 работает без каких-либо глюков.-r2 не пробовал.

Чем больше юзерфрендли, тем сложнее юзать.

>А может "revdep-rebuild -L

>А может "revdep-rebuild -L libcrypto.so.1.0.0" будет достаточно?

Мне не помогло.

no luck

ArtSh написал(а):
Буквально пару недель назад я создавал подобную тему. У меня всё решилось emerge -e world. Подозреваю, что нужно было пересобрать что-из app-crypt/p11-kit app-crypt/qca-ossl dev-libs/libksba

Проверил ваше предположение — увы, безрезультатно. По всей видимости это объясняется тем, что OpenSSL использует собственные функции для работы с PKCS.

v_andal написал(а):
А может "revdep-rebuild -L libcrypto.so.1.0.0" будет достаточно?

Едва ли пересборка зависимостей поможет, поскольку клиент из состава OpenSSL выдаёт точно такую же ошибку:

$ openssl s_client -ssl3 -state -connect github.com:443
CONNECTED(00000003)
SSL_connect:before/connect initialization
SSL_connect:SSLv3 write client hello A
SSL_connect:SSLv3 read server hello A
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert High Assurance EV Root CA
verify return:1
depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert High Assurance EV CA-1
verify error:num=7:certificate signature failure
verify return:0
SSL_connect:SSLv3 read server certificate A
SSL_connect:SSLv3 read server done A
SSL_connect:SSLv3 write client key exchange A
SSL_connect:SSLv3 write change cipher spec A
SSL_connect:SSLv3 write finished A
SSL_connect:SSLv3 flush data
SSL3 alert read:fatal:bad record mac
SSL_connect:failed in SSLv3 read finished A
140368680191680:error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac:s3_pkt.c:1256:SSL alert number 20
140368680191680:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:596:
...

Кстати, а что в emerge

Кстати, а что в emerge --info? Есть ли агрессивные флаги?

Действительно, OpenSSL

Действительно, OpenSSL собирался с оптимизациями Graphite, поведение которых изменилось после обновления GCC до 4.8.1-r1. Это и было причиной того, что одинаковую ошибку выдавали все версии OpenSSL вплоть до 1.0.0.

На всякий случай, CFLAGS устанавливались такие: -ftree-loop-linear -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution -ftree-parallelize-loops=2 -floop-parallelize-all.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".