LibreSSL сохраняет привычный API libcrypto/libssl и интерфейс командной строки OpenSSL, но избавляется от устаревшего кода и добавляет собственную библиотеку libtls. В macOS более старая версия LibreSSL поставляется как системная криптографическая библиотека: в macOS 27.0.1 команда /usr/bin/openssl version вывела LibreSSL 3.3.6, а ssh -V назвала ту же библиотеку. Факты на этой странице проверены на пакете Alpine 3.24.2 с LibreSSL 4.3.1 (сам проект к тому времени выпустил 4.3.3), где команда установлена под именем libressl, поэтому скрипты, которые вызывают openssl, там завершаются ошибкой, если не добавить пакет совместимости.
ECDSA ведёт себя как OpenSSL с настройками по умолчанию: подписи в DER, случайные nonce, никакой нормализации low-S и проверка, которая принимает high-S. В отличие от OpenSSL 3.2+, детерминированного варианта по RFC 6979 нет. EVP_DigestVerify вернула -1 для подписи raw r‖s, а утилита командной строки вывела для неё Error Verifying Data, тогда как для верной подписи других данных — Verification Failure; обратите внимание: регистр букв здесь не такой, как в сообщениях OpenSSL, и скрипты, которые ищут через grep точный текст, из-за этого ломаются.
Поддерживаются кривые от P-224 до P-521, secp256k1 и кривые Brainpool r1; Ed25519 работает через EVP_PKEY_ED25519, а Ed448 нет вовсе. Файлы ключей совместимы с OpenSSL: SPKI и сертификаты для открытых ключей, PKCS#8 (обычный и зашифрованный) и SEC1 для закрытых ключей; ecparam -genkey записывает SEC1 EC PRIVATE KEY, поэтому, если другому инструменту нужен PKCS#8, преобразуйте ключ командой pkcs8 -topk8, как это делает пример.
Поддержка постквантовых алгоритмов частичная: ML-KEM-768 и ML-KEM-1024 доступны через собственные функции LibreSSL MLKEM_* из <openssl/mlkem.h>, но не через EVP и не из командной строки, а ML-DSA нет совсем (Algorithm ML-DSA-65 not found). Сравните алгоритмы в песочнице постквантовых KEM; для подписей ML-DSA используйте OpenSSL 3.5 или новее.