А вы осознаёте сложность задач, которые решают приведенные в качестве примера библиотеки? Ну, ради интереса освойте хотя бы один RFC для TLS 1.3, в котором 160 страниц) А потом вспомните, что были ещё TLS 1.2, в котором примерно 6 основных RFC и ещё десятка полтора расширений) А также ещё все предыдущие версии TLS и SSL, и все это ещё и совместимо между мажорными релизами библиотеки)
И да, где-то в комплекте, ещё поставляете утилиту по тестированию работоспособности этого дела) На любых ОС и аппаратных платформах)
Можете прочитать также FIPS 140-2 (ну или более современный FIPS 140-3), чтобы прикинуть масштаб проблем, которые приходится учитывать) Докиньте до кучи то, что 100500 языков с вами хотят интегрироваться, и то что библиотека старше вас, и получите точно такой же "бардак", который существует в OpenSSL.
Это далеко не идеальная библиотека. Там половина API - это просто дикий ужас, а код внутри местами... Ну, месяца на 2 можно в одном файле застрять) Тем не менее, оно работает и собирается с полпинка вообще везде)
Там и выбор версий, и примеры, и все концепции расписаны. Начиная с 3.0 - так ещё и API поправили, завернув практически все в EVP_XXX вызовы.
И нет, openssl - это не просто "переложить байты". Там комплектом идёт швейцарский нож в виде утилиты openssl, у которой опций столько, что вы читать будете месяцами.
Переписывать это все никто не будет. Библиотека прошла два независимых аудита, а также есть версия сертифицированная FIPS.
Интересно какая библиотека делает memcpy быстрее чем собственно memcpy из libc
Ту, которую писал я :) Но она под NDA) Но большие массивы известного на этапе компиляции размера, и правильно выровненные - копировала на 20% быстрее libc) И да, это тоже была криптобиблиотека.
Вот уж если у чему придираться к openssl, так это к API. Сборка- это реально последнее что там сделано плохо.
К слову, там есть куча ОС-специфичных частей. Например взять хранилище сертификатов. Оно там реализовано совершенно по-разному для Win/Lin/Mac. Абстракция BIO включает в себя обертки над советами и низкоуровневыми функциями работы с файлами. Secure Allocator - в Линукс и Windows реализованы совершенно по-разному и зависит от системных вызовов. Генерация случайных чисел тоже использует системные API для источника энтропии. Опять же, система плагинов (Engines/Providers) привязана к системным dlopen и Load library.
И, кстати, внутри openssl куча кода на ассемблере под 100500 разных архитектур и рантаймов. Мы даже в UEFI окружении смогли её собрать и запустить.
Да, я живу тоже в Москве. Работа как бы "гибрид", но следят так себе, можно появляться пару раз в месяц в офисе и ладно. Но вообще у нас есть удаленщики как минимум из Томска, Пензы, Уфы, Нижнего Новгорода.
В Москве все собесы проходил онлайн. Тут стоит уточнить, что я игнорирую компании типа Яндекс, Авито, Сбер и прочие странные места, где надо по 3-4-5 раундов собеседований проходить.
3 собеса - это мой предел, да и то, их обычно 2. Техническое + с руководителем. Изредка бывает скрининг на 10-20 минут с HR.
Тут, конечно, стоит уточнить, что работаю в сфере кибербеза и вакансии соответствующие рассматриваю. Тут вон в статье пишут, что в кибербезе всё хорошо, и это соответствует моему опыту.
Искал работу в марте 2025-го по С++ стеку. За 10 дней собрал 5 приличных офферов, выбрал один и пошел себе работать.
Ну, ладно, положим я сеньор-помидор весь такой якобы редкий и нужен всем. Бывший коллега миддл, собрал за те же 10 дней прошел 15 собесов, собрал 9 офферов. Он менее избирателен просто в выборе компании, но из них 4 даже вполне приличные были.
Стоит уточнить, конечно, что искал работу в Москве. Как ситуация с вакансиями вне Москвы мне неизвестно.
Никто не мешает соблюдать лицензии.
Можно мне пример такого кода в openssl?) Я довольно много времени провел в библиотеке и пока не нашел
./configure + make install популярнее. Значительно популярнее.
Чтобы что?) Это создаёт проблемы синхронизации версий на ровном месте, а уберет ровно одну папочку из всего репозитория)
А вы осознаёте сложность задач, которые решают приведенные в качестве примера библиотеки? Ну, ради интереса освойте хотя бы один RFC для TLS 1.3, в котором 160 страниц) А потом вспомните, что были ещё TLS 1.2, в котором примерно 6 основных RFC и ещё десятка полтора расширений) А также ещё все предыдущие версии TLS и SSL, и все это ещё и совместимо между мажорными релизами библиотеки)
И да, где-то в комплекте, ещё поставляете утилиту по тестированию работоспособности этого дела) На любых ОС и аппаратных платформах)
Можете прочитать также FIPS 140-2 (ну или более современный FIPS 140-3), чтобы прикинуть масштаб проблем, которые приходится учитывать) Докиньте до кучи то, что 100500 языков с вами хотят интегрироваться, и то что библиотека старше вас, и получите точно такой же "бардак", который существует в OpenSSL.
Это далеко не идеальная библиотека. Там половина API - это просто дикий ужас, а код внутри местами... Ну, месяца на 2 можно в одном файле застрять) Тем не менее, оно работает и собирается с полпинка вообще везде)
Судя по вашим комментариям вы даже не пытались разобраться в openssl. Там много чего плохого есть, это правда, но ваши придирки вообще ни о чем.
Почему не meson.build? Или там conanfile.py? Или premake5.lua? Или... Да тысячи их) И все одна другой краше. Я напомню, что библиотека старше их всех.
Документация у библиотеки есть и довольно обширная:
https://docs.openssl.org/3.0/man1/openssl/
Там и выбор версий, и примеры, и все концепции расписаны. Начиная с 3.0 - так ещё и API поправили, завернув практически все в EVP_XXX вызовы.
И нет, openssl - это не просто "переложить байты". Там комплектом идёт швейцарский нож в виде утилиты openssl, у которой опций столько, что вы читать будете месяцами.
Переписывать это все никто не будет. Библиотека прошла два независимых аудита, а также есть версия сертифицированная FIPS.
Не использует openssl для сборки autotools
Нет у openssl обязательных зависимостей. Ну, если не считать Perl, на котором написана сборочная система. Но Perl работает на Винде исправно
Openssl не использует autotools. У них своя система сборки, написанная на Perl
Ту, которую писал я :) Но она под NDA) Но большие массивы известного на этапе компиляции размера, и правильно выровненные - копировала на 20% быстрее libc) И да, это тоже была криптобиблиотека.
Вот уж если у чему придираться к openssl, так это к API. Сборка- это реально последнее что там сделано плохо.
К слову, там есть куча ОС-специфичных частей. Например взять хранилище сертификатов. Оно там реализовано совершенно по-разному для Win/Lin/Mac. Абстракция BIO включает в себя обертки над советами и низкоуровневыми функциями работы с файлами. Secure Allocator - в Линукс и Windows реализованы совершенно по-разному и зависит от системных вызовов. Генерация случайных чисел тоже использует системные API для источника энтропии. Опять же, система плагинов (Engines/Providers) привязана к системным dlopen и Load library.
И, кстати, внутри openssl куча кода на ассемблере под 100500 разных архитектур и рантаймов. Мы даже в UEFI окружении смогли её собрать и запустить.
Кароч, там ну очень большой комбайн под капотом
ИИ не причем) ИИ усугубляет ситуацию)
Впрочем, я согласен, когда я скидывал ссылку я статью ещё не дочитал. Когда дочитал, тоже появились сомнения)
А вот и нет :) Я сходил в стандарт (см. раздел util.smartptr.shared.const)
И
Начиная с С++17 такое поведение гарантированно стандартом.
UPD
Прошу прощения, забыл что речь шла про unique_ptr. Но гарантии там те же.
Ох, если бы...
https://habr.com/ru/companies/ruvds/articles/959262/
Под оффером я понимаю PDF документик с условиями работы, который HR присылает на почту
Юридически он точно также ничего не значит и никого ни к чему не обязывает, к слову.
Проверки СБ и прочее - они по моему опыту идут в параллель всему процессу найма и занимают до 5 дней максимум.
Да я даже когда в банк (техцентр дойче) устраивался, там проверка СБ длилась 3 дня. Откуда 2 недели я так и не понял
Ну, так я отсчитывал от первого собеса, а не от времени его назначения. Ну, добавьте неделю сверху ко времени.
По моему опыту между первым собесом и вторым с руководителем 3-5 дней обычно проходит и в течение трёх дней присылают оффер.
Главное в этой истории - игнорировать Яндекс и ему подобных. Эти да, отвечают по 3 недели.
Да даже возьмём месяц на поиск работы - все равно не 3-6 месяцев, как утверждается
Да, я живу тоже в Москве. Работа как бы "гибрид", но следят так себе, можно появляться пару раз в месяц в офисе и ладно. Но вообще у нас есть удаленщики как минимум из Томска, Пензы, Уфы, Нижнего Новгорода.
Спасибо)
В Москве все собесы проходил онлайн. Тут стоит уточнить, что я игнорирую компании типа Яндекс, Авито, Сбер и прочие странные места, где надо по 3-4-5 раундов собеседований проходить.
3 собеса - это мой предел, да и то, их обычно 2. Техническое + с руководителем. Изредка бывает скрининг на 10-20 минут с HR.
Тут, конечно, стоит уточнить, что работаю в сфере кибербеза и вакансии соответствующие рассматриваю. Тут вон в статье пишут, что в кибербезе всё хорошо, и это соответствует моему опыту.
Искал работу в марте 2025-го по С++ стеку. За 10 дней собрал 5 приличных офферов, выбрал один и пошел себе работать.
Ну, ладно, положим я сеньор-помидор весь такой якобы редкий и нужен всем. Бывший коллега миддл, собрал за те же 10 дней прошел 15 собесов, собрал 9 офферов. Он менее избирателен просто в выборе компании, но из них 4 даже вполне приличные были.
Стоит уточнить, конечно, что искал работу в Москве. Как ситуация с вакансиями вне Москвы мне неизвестно.
Как я и сказал - это наименьшая из проблем
Мозги пока нет, но вот память да. Как в свое время гугл избавил меня от необходимости помнить всякие странные вещи, вроде физических констант)
Так все конструкторы у unique_ptr - они noexcept.
Ну, есть вариант, что контейнер память не сможет выделить, то так ли стоит переживать об утечках, если память кончилась?)