DAT C / C++ Biblioteca

GitHub

Instalaçã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.

c

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.

c

2. Emitir um DAT

Este exemplo coloca JSON público em plain e informações protegidas do usuário em formato JSON em secure.

c

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.

c

Funções principais

FunçãoFinalidade
dat_cms_manager_syncSincroniza os certificados imediatamente.
dat_cms_manager_issueAloca e retorna uma string DAT.
dat_cms_manager_parseAloca e retorna um payload verificado.
dat_cms_manager_last_errorRetorna o último erro de sincronização.

Áreas de dados

  • plain: bytes assinados, mas não criptografados.
  • secure: bytes criptografados.
  • payload: confie nele somente depois que parse for 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.

c

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.