DAT
문서

DAT Rust 라이브러리

GitHub crates.io

설치

toml

빠르게 사용하기

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

rust

차근차근 사용하기

1. CMS 연결

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

rust

2. DAT 발급

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

rust

3. DAT 검증

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

rust

주요 함수

함수용도
sync().await인증서를 즉시 동기화합니다.
issue(plain, secure)현재 발급용 인증서로 DAT를 만듭니다.
parse(dat)DAT를 검증하고 payload를 돌려줍니다.
last_error().await마지막 동기화 오류를 확인합니다.

데이터 구분

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

JSON 외의 선택지

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

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

rust

현재 issue는 문자열을 받으므로 임의 바이트는 Base64Url 또는 Hex로 인코딩해 넣고, 검증 후 다시 디코딩합니다.

검증 전용 서비스

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

종료와 오류

마지막 Arc가 해제되면 자동 동기화 작업도 끝납니다.

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