DAT C / C++ Biblioteca
GitHubInstalação
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
Início rápido
Este fluxo completo obtém certificados do CMS, cria um DAT com dados JSON e o verifica.
Passo a passo
1. Conectar ao CMS
Um serviço emissor usa um token para certificados completos. A sincronização imediata na inicialização evita a emissão antes que os certificados estejam disponíveis.
2. Emitir um DAT
Este exemplo coloca JSON público em plain e informações protegidas do usuário em formato JSON em secure.
3. Verificar um DAT
parse confere a expiração e a assinatura e depois descriptografa secure. Use apenas um payload retornado após uma verificação bem-sucedida.
Funções principais
| Função | Finalidade |
|---|---|
dat_cms_manager_sync | Sincroniza os certificados imediatamente. |
dat_cms_manager_issue | Aloca e retorna uma string DAT. |
dat_cms_manager_parse | Aloca e retorna um payload verificado. |
dat_cms_manager_last_error | Retorna o último erro de sincronização. |
Áreas de dados
plain: bytes assinados, mas não criptografados.secure: bytes criptografados.payload: confie nele somente depois queparsefor bem-sucedido.
Opções além de JSON
Os exemplos usam o conhecido JSON. Para um processamento mais rápido, dados binários podem evitar a serialização e o parse de JSON, além de reduzir o tamanho dos dados.
Armazene valores simples como texto ou coloque dados estruturados em formatos binários como Protobuf ou MessagePack em plain e secure.
A API de emissão C atual aceita strings terminadas em NUL. Codifique bytes arbitrários como Base64Url ou Hex e leia o resultado usando os comprimentos do payload.
Serviços exclusivos para verificação
Um serviço que não emite DAT usa a opção verify-only e um token verify-only, e chama apenas parse.
Encerramento e erros
Libere dat, payload e cms com as respectivas funções de limpeza.
Use os códigos de erro e as classificações de nova tentativa em vez das mensagens de erro.