From bbf650971fc4185029908ba62abb0582fda0a59b Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 18 Dec 2020 16:02:49 +0300 Subject: [PATCH] =?utf8?q?OpenSSL=20-lssl=20=D0=B1=D0=B8=D0=B1=D0=BB=D0=B8?= =?utf8?q?=D0=BE=D1=82=D0=B5=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Копаюсь тут, кое чего добавляя, в -lssl. Прежде я только -lcrypto трогал (1a696ac6c369da1e70a15ba52006f05012934df6). Не могу сдерживаться, но это сущее адовое говно! Это Вавилонская башня из костылей. Новые алгоритмы не просто так добавляются через всякие EVP_* -- нужно ещё и в десятках других местах библиотеки обмазать знаниями о новом алгоритме (и речь не про его согласование, не про id-шники, а про конкретные криптографические действия). Весь TLS в нём это просто нагромождение if-ов друг друга погоняющих. Я видел устройство crypto/tls в Go. Да, там TLS 1.3 и всё остальное сильно разделены и не много где пересекаются -- можно сказать что две независимых реализации. Но и одна и другая довольно аккуратно и просто расширяются новыми алгоритмами (например). Все эти EVP_CIPHER в -lssl являются же типа интерфейсами, идея то здравая. Но только вот почему толку от неё никакого и всё равно весь код покрыт слоем if такой-то алгоритм, то делаем вот так, ибо потроха реализации этого алгоритма таковы. -- 2.50.0