DAT
문서

DAT C / C++ 라이브러리

GitHub

설치

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

빠르게 사용하기

CMS에서 인증서를 받은 뒤 JSON 데이터를 담아 DAT를 만들고 다시 검증하는 전체 흐름입니다.

c

차근차근 사용하기

1. CMS 연결

발급 서비스는 전체 인증서용 토큰을 사용합니다. 시작 시 즉시 동기화하면 인증서가 없는 상태에서 발급하는 일을 막을 수 있습니다.

c

2. DAT 발급

plain에는 공개 가능한 JSON을, secure에는 보호할 사용자 정보를 JSON으로 넣었습니다.

c

3. DAT 검증

parse는 만료와 서명을 확인하고 secure를 복호화합니다. 검증이 끝난 payload만 사용합니다.

c

주요 함수

함수용도
dat_cms_manager_sync인증서를 즉시 동기화합니다.
dat_cms_manager_issueDAT 문자열을 할당해 반환합니다.
dat_cms_manager_parse검증된 payload를 할당해 반환합니다.
dat_cms_manager_last_error마지막 동기화 오류를 확인합니다.

데이터 구분

  • plain: 서명되지만 암호화되지 않는 바이트입니다.
  • secure: 암호화되는 바이트입니다.
  • payload: parse가 성공한 뒤에만 신뢰합니다.

JSON 외의 선택지

예제는 익숙한 JSON을 사용했습니다. 더 빠른 처리가 필요하면 바이너리를 사용해 JSON 직렬화와 파싱을 생략하고 데이터 크기도 줄일 수 있습니다.

간단한 값은 텍스트로, 구조화된 데이터는 Protobuf·MessagePack 같은 바이너리 형식으로 plain과 secure에 담을 수 있습니다.

c

현재 C 발급 API는 NUL 종료 문자열을 받습니다. 임의 바이트는 Base64Url 또는 Hex로 인코딩하고 payload 길이를 사용해 읽습니다.

검증 전용 서비스

DAT를 발급하지 않는 서비스는 verify-only 옵션과 검증 전용 토큰을 사용하고 parse만 호출합니다.

종료와 오류

dat, payload, cms를 각각 알맞은 해제 함수로 정리합니다.

오류 메시지 대신 오류 코드와 재시도 분류를 사용합니다.