LibreSSL conserve l’API libcrypto/libssl et la ligne de commande familières d’OpenSSL tout en supprimant le code hérité, et ajoute sa propre bibliothèque libtls. macOS livre une version plus ancienne de LibreSSL comme bibliothèque cryptographique système : sous macOS 27.0.1, /usr/bin/openssl version a affiché LibreSSL 3.3.6 et ssh -V a indiqué la même bibliothèque. Les faits présentés ici ont été vérifiés sur le paquet Alpine 3.24.2, LibreSSL 4.3.1 (le projet amont en était à la 4.3.3), où la commande est installée sous le nom libressl : les scripts qui appellent openssl y échouent, sauf si l’on ajoute le paquet de compatibilité.
ECDSA se comporte comme OpenSSL avec ses valeurs par défaut : signatures DER, nonces aléatoires, aucune normalisation low-S et une vérification qui accepte high-S. Contrairement à OpenSSL 3.2 et versions ultérieures, il n’existe pas d’option déterministe RFC 6979. EVP_DigestVerify a renvoyé -1 pour une signature r‖s brute, et la ligne de commande a affiché Error Verifying Data pour celle-ci, contre Verification Failure pour une signature valide portant sur d’autres données. Notez que la casse diffère de celle des messages d’OpenSSL, ce qui casse les scripts qui recherchent le texte exact avec grep.
Les courbes vont de P-224 à P-521, avec secp256k1 et les courbes Brainpool r1 ; Ed25519 fonctionne via EVP_PKEY_ED25519, et Ed448 est totalement absent. Les fichiers de clés sont interopérables avec OpenSSL : SPKI et certificats pour les clés publiques, PKCS#8 (en clair ou chiffré) et SEC1 pour les clés privées ; ecparam -genkey écrit une EC PRIVATE KEY SEC1, convertissez-la donc avec pkcs8 -topk8 quand un autre outil attend du PKCS#8, comme le fait l’exemple.
La prise en charge post-quantique est partielle : ML-KEM-768 et ML-KEM-1024 sont disponibles via les fonctions MLKEM_* propres à LibreSSL, déclarées dans <openssl/mlkem.h>, et non via EVP ni la ligne de commande, et ML-DSA n’existe pas (Algorithm ML-DSA-65 not found). Comparez les algorithmes dans le bac à sable des KEM post-quantiques ; pour les signatures ML-DSA, utilisez OpenSSL 3.5 ou une version ultérieure.