25 stable releases (3 major)

Uses new Rust 2024

new 4.2.2 Jun 17, 2026
4.0.2 May 24, 2026
2.5.0 May 23, 2026
1.5.2 May 8, 2026
0.5.0 Apr 18, 2026

#614 in Cryptography

MIT license

49KB
1K SLoC

DAT - Distributed Access Token

Document

DAT Run Online

What is DAT

Rust Example

Support algorithm

Signature

name note
ECDSA-P256 = secp256r1
ECDSA-P384 = secp384r1
ECDSA-P521 = secp521r1
HMAC-SHA256-MFS = 256Bit Fixed Secret
HMAC-SHA384-MFS = 384Bit Fixed Secret
HMAC-SHA512-MFS = 512Bit Fixed Secret
  • MFS : Maximum(Same Bit) Fixed Secret

Crypto

name note
IV-AES128-GCM (IV=NONCE:96BIT) + AES128 GCM
IV-AES256-GCM (IV=NONCE:96BIT) + AES256 GCM

Performance

  • random plain and secure test
  • mac mini m4 2024 basic (10 core)
  • release compile
  • bench_test.rs
Testing started at ...
    Finished `release` profile [optimized] target(s) in 0.03s
     Running tests/bench_test.rs (target/release/deps/bench_test-a0281d818fbdce38)
performance test (plain, secure)
plain: JTTPM7N9BUIUv8UJz5bsN0Rn8SGG1itoSzyVmX9c3iQ452L4rLn60Reg3Jlo233S3mkrxFMegaTl17OyJgfMnQrIrIEiXq5iVKM6
secure: 14oatVHDGSpsYc5tLhImOHIjBCOoWV6dcWoDyu5iQKfF7swVZ0QeCBAfvG6nXMtacSTvetL40JeJ217uqxtNKcFalsSk1rNo5BMF

Multi-Thread
HMAC-SHA256-MFS IV-AES128-GCM Issue * 10000 : 6ms
HMAC-SHA256-MFS IV-AES128-GCM Parse * 10000 : 4ms
HMAC-SHA256-MFS IV-AES256-GCM Issue * 10000 : 7ms
HMAC-SHA256-MFS IV-AES256-GCM Parse * 10000 : 4ms
HMAC-SHA384-MFS IV-AES128-GCM Issue * 10000 : 6ms
HMAC-SHA384-MFS IV-AES128-GCM Parse * 10000 : 4ms
HMAC-SHA384-MFS IV-AES256-GCM Issue * 10000 : 6ms
HMAC-SHA384-MFS IV-AES256-GCM Parse * 10000 : 4ms
HMAC-SHA512-MFS IV-AES128-GCM Issue * 10000 : 6ms
HMAC-SHA512-MFS IV-AES128-GCM Parse * 10000 : 4ms
HMAC-SHA512-MFS IV-AES256-GCM Issue * 10000 : 7ms
HMAC-SHA512-MFS IV-AES256-GCM Parse * 10000 : 4ms
ECDSA-P256 IV-AES128-GCM Issue * 10000 : 25ms
ECDSA-P256 IV-AES128-GCM Parse * 10000 : 51ms
ECDSA-P256 IV-AES256-GCM Issue * 10000 : 27ms
ECDSA-P256 IV-AES256-GCM Parse * 10000 : 64ms
ECDSA-P384 IV-AES128-GCM Issue * 10000 : 99ms
ECDSA-P384 IV-AES128-GCM Parse * 10000 : 243ms
ECDSA-P384 IV-AES256-GCM Issue * 10000 : 106ms
ECDSA-P384 IV-AES256-GCM Parse * 10000 : 219ms
ECDSA-P521 IV-AES128-GCM Issue * 10000 : 149ms
ECDSA-P521 IV-AES128-GCM Parse * 10000 : 300ms
ECDSA-P521 IV-AES256-GCM Issue * 10000 : 148ms
ECDSA-P521 IV-AES256-GCM Parse * 10000 : 299ms

Single-Thread
HMAC-SHA256-MFS IV-AES128-GCM Issue * 10000 : 12ms
HMAC-SHA256-MFS IV-AES128-GCM Parse * 10000 : 5ms
HMAC-SHA256-MFS IV-AES256-GCM Issue * 10000 : 12ms
HMAC-SHA256-MFS IV-AES256-GCM Parse * 10000 : 5ms
HMAC-SHA384-MFS IV-AES128-GCM Issue * 10000 : 13ms
HMAC-SHA384-MFS IV-AES128-GCM Parse * 10000 : 7ms
HMAC-SHA384-MFS IV-AES256-GCM Issue * 10000 : 13ms
HMAC-SHA384-MFS IV-AES256-GCM Parse * 10000 : 7ms
HMAC-SHA512-MFS IV-AES128-GCM Issue * 10000 : 13ms
HMAC-SHA512-MFS IV-AES128-GCM Parse * 10000 : 7ms
HMAC-SHA512-MFS IV-AES256-GCM Issue * 10000 : 13ms
HMAC-SHA512-MFS IV-AES256-GCM Parse * 10000 : 7ms
ECDSA-P256 IV-AES128-GCM Issue * 10000 : 128ms
ECDSA-P256 IV-AES128-GCM Parse * 10000 : 294ms
ECDSA-P256 IV-AES256-GCM Issue * 10000 : 148ms
ECDSA-P256 IV-AES256-GCM Parse * 10000 : 276ms
ECDSA-P384 IV-AES128-GCM Issue * 10000 : 473ms
ECDSA-P384 IV-AES128-GCM Parse * 10000 : 1063ms
ECDSA-P384 IV-AES256-GCM Issue * 10000 : 472ms
ECDSA-P384 IV-AES256-GCM Parse * 10000 : 1057ms
ECDSA-P521 IV-AES128-GCM Issue * 10000 : 830ms
ECDSA-P521 IV-AES128-GCM Parse * 10000 : 1654ms
ECDSA-P521 IV-AES256-GCM Issue * 10000 : 830ms
ECDSA-P521 IV-AES256-GCM Parse * 10000 : 1643ms

Dependencies

~71MB
~2M SLoC