DAT C / C++ Bibliothèque
GitHubInstallation
Until it is officially merged into vcpkg, you will need to manually install and integrate the project using this repository.
https://github.com/microsoft/vcpkg/pull/52088
version: 4.7.0
Démarrage rapide
Ce flux complet récupère les certificats depuis le CMS, crée un DAT contenant des données JSON et le vérifie.
Étape par étape
1. Se connecter au CMS
Un service d’émission utilise un token donnant accès aux certificats complets. Une synchronisation immédiate au démarrage évite toute émission avant la disponibilité des certificats.
2. Émettre un DAT
Cet exemple place le JSON public dans plain et les informations utilisateur protégées, également en JSON, dans secure.
3. Vérifier un DAT
parse vérifie l’expiration et la signature, puis déchiffre secure. N’utilisez qu’un payload renvoyé après une vérification réussie.
Fonctions principales
| Fonction | Rôle |
|---|---|
dat_cms_manager_sync | Synchronise immédiatement les certificats. |
dat_cms_manager_issue | Alloue et renvoie une chaîne DAT. |
dat_cms_manager_parse | Alloue et renvoie un payload vérifié. |
dat_cms_manager_last_error | Renvoie la dernière erreur de synchronisation. |
Zones de données
plain: bytes signés mais non chiffrés.secure: bytes chiffrés.payload: ne lui faites confiance qu’après la réussite deparse.
Autres options que JSON
Les exemples utilisent le format JSON courant. Pour accélérer le traitement, les données binaires peuvent éviter la sérialisation et l’analyse JSON tout en réduisant la taille des données.
Stockez les valeurs simples sous forme de texte, ou placez des données structurées dans des formats binaires comme Protobuf ou MessagePack dans plain et secure.
L’API d’émission C actuelle accepte des chaînes terminées par NUL. Encodez les bytes arbitraires en Base64Url ou Hex et lisez le résultat à l’aide des longueurs du payload.
Services verify-only
Un service qui n’émet pas de DAT utilise l’option verify-only et un token verify-only, et appelle uniquement parse.
Arrêt et erreurs
Libérez dat, payload et cms avec leurs fonctions de nettoyage respectives.
Utilisez les codes d’erreur et classifications de retry plutôt que les messages d’erreur.