From: Sergey Matveev Date: Fri, 18 Dec 2020 13:02:49 +0000 (+0300) Subject: OpenSSL -lssl библиотека X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=bbf650971fc4185029908ba62abb0582fda0a59b;p=stargrave-blog.git OpenSSL -lssl библиотека Копаюсь тут, кое чего добавляя, в -lssl. Прежде я только -lcrypto трогал (1a696ac6c369da1e70a15ba52006f05012934df6). Не могу сдерживаться, но это сущее адовое говно! Это Вавилонская башня из костылей. Новые алгоритмы не просто так добавляются через всякие EVP_* -- нужно ещё и в десятках других местах библиотеки обмазать знаниями о новом алгоритме (и речь не про его согласование, не про id-шники, а про конкретные криптографические действия). Весь TLS в нём это просто нагромождение if-ов друг друга погоняющих. Я видел устройство crypto/tls в Go. Да, там TLS 1.3 и всё остальное сильно разделены и не много где пересекаются -- можно сказать что две независимых реализации. Но и одна и другая довольно аккуратно и просто расширяются новыми алгоритмами (например). Все эти EVP_CIPHER в -lssl являются же типа интерфейсами, идея то здравая. Но только вот почему толку от неё никакого и всё равно весь код покрыт слоем if такой-то алгоритм, то делаем вот так, ибо потроха реализации этого алгоритма таковы. ---