c-ares est une bibliothèque de résolution DNS (stub) moderne, écrite en C. Elle fournit des interfaces pour les requêtes asynchrones tout en essayant d'abstraire les subtilités du protocole DNS sous-jacent. Il était initialement destiné aux applications qui devaient effectuer des requêtes DNS sans blocage, ou qui devaient effectuer plusieurs requêtes DNS en parallèle.
L'un des objectifs de c-ares est d'être un meilleur résolveur DNS que celui fourni par votre système, quel que soit le système que vous utilisez. Nous recommandons d'utiliser la bibliothèque c-ares dans toutes les applications réseau même si l'objectif initial de résolution asynchrone n'est pas nécessaire à votre application.
c-ares peut être construit avec n'importe quel compilateur C89 et est sous licence MIT, ce qui le rend adapté aux logiciels gratuits et commerciaux. c-ares fonctionne sous Linux, FreeBSD, OpenBSD, MacOS, Solaris, AIX, Windows, Android, iOS et bien d'autres systèmes d'exploitation.
c-ares met fortement l'accent sur la sécurité, en implémentant des analyseurs et des générateurs de données sécurisés utilisés dans tout le code, évitant ainsi bon nombre des pièges courants des autres bibliothèques C. Grâce à des tests automatisés avec notre vaste cadre de test, c-ares est constamment validé avec une gamme d'analyseurs statiques et dynamiques, et est constamment fuzzé par OSS Fuzz.
Bien que c-ares existe depuis plus de 20 ans, il a été activement maintenu à la fois en ce qui concerne les dernières RFC DNS et mis à jour pour suivre les dernières meilleures pratiques en matière de normes de codage C.
Le code source complet et l’historique des révisions sont disponibles dans notre référentiel GitHub. Nos versions signées sont disponibles dans les archives des versions.
Consultez le fichier INSTALL.md pour obtenir des informations sur la construction.
Les problèmes et les demandes de fonctionnalités doivent être signalés sur notre page Problèmes GitHub.
Les discussions autour de c-ares et de son utilisation ont lieu sur les discussions GitHub ou sur la liste de diffusion. Archives de la liste de diffusion ici. S'il vous plaît, n'envoyez pas de courrier privé aux bénévoles au sujet de c-ares.
Les vulnérabilités de sécurité sont traitées conformément à notre procédure de sécurité, veuillez envoyer un e-mail à c-ares-security à haxx.se si vous en soupçonnez une.
Clés GPG primaires pour les Releasers c-ares (certains Releasers signent avec des sous-clés) :
27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA
Pour importer l'ensemble complet des clés de version approuvées (y compris les sous-clés éventuellement utilisées pour signer les versions) :
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2 # Daniel Stenberg
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA # Brad House
Pour chaque version c-ares-XYZtar.gz
il existe un fichier c-ares-XYZtar.gz.asc
correspondant qui contient la signature détachée de la version.
Après avoir récupéré toutes les clés de signature valides possibles et chargé dans votre trousseau conformément à la section précédente, vous pouvez simplement exécuter la commande ci-dessous sur le package téléchargé et la signature détachée :
% gpg -v --verify c-ares-1.29.0.tar.gz.asc c-ares-1.29.0.tar.gz
gpg: enabled compatibility flags:
gpg: Signature made Fri May 24 02:50:38 2024 EDT
gpg: using RSA key 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
gpg: using pgp trust model
gpg: Good signature from " Daniel Stenberg " [unknown]
gpg: WARNING: This key is not certified with a trusted signature !
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 27ED EAF2 2F3A BCEB 50DB 9A12 5CC9 08FD B71E 12C2
gpg: binary signature, digest algorithm SHA512, key algorithm rsa2048
Voir les fonctionnalités
AAAA
.SRV
.NAPTR
.TLSA
.SVCB
et HTTPS
.URI
.CAA
.SIG0
. Uniquement un analyseur de base, pas une implémentation complète..onion
avec NXDOMAIN
.localhost
/ .localhost
.ares_getaddrinfo()
.