Metadata-Version: 2.4
Name: saro-dat
Version: 4.4.0
Summary: Distributed Access Token
Author-email: Marker Seoul <j@saro.me>
Project-URL: Homepage, https://dat.saro.me
Project-URL: Repository, https://github.com/saro-lab/dat-pypi
Project-URL: Documentation, https://dat.saro.me/ko/libs/pypi-saro-dat
Keywords: dat,distributed,access,token,jwt,security,authentication
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cryptography>=47.0.0
Requires-Dist: readerwriterlock>=1.0.9
Dynamic: license-file

# DAT - Distributed Access Token

## Document

### [DAT Run Online](https://dat.saro.me)

### [What is DAT](https://dat.saro.me/intro)

### [Example](https://dat.saro.me/libs/pypi-saro-dat)

## 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)
- [test_bench.py](tests/test_bench.py)
```
Plain: clwJWAg6gXo2Pv0iTOoN8PtkP6vcOfeYT9pEEJYfSPiAL7wA38pTMiQbWlyev0enALxXZaRqHo2YOsVGmhkLYAZpIHxzgJbvMc2Z
Secure: kJDDbWvbhmq1rgq5SmSMhKk55FOttqMZXZeBjoMDes0OemuSZnO6ybmhRahGrfOCEPz3tfrBqxUie1IFQzVzGOKrBoYjOkw8H8HV

--- Multi-Thread ---
HMAC-SHA256-MFS IV-AES128-GCM Issue * 10000 : 94ms
HMAC-SHA256-MFS IV-AES128-GCM Parse * 10000 : 100ms
HMAC-SHA256-MFS IV-AES256-GCM Issue * 10000 : 107ms
HMAC-SHA256-MFS IV-AES256-GCM Parse * 10000 : 94ms
HMAC-SHA384-MFS IV-AES128-GCM Issue * 10000 : 100ms
HMAC-SHA384-MFS IV-AES128-GCM Parse * 10000 : 89ms
HMAC-SHA384-MFS IV-AES256-GCM Issue * 10000 : 100ms
HMAC-SHA384-MFS IV-AES256-GCM Parse * 10000 : 88ms
HMAC-SHA512-MFS IV-AES128-GCM Issue * 10000 : 101ms
HMAC-SHA512-MFS IV-AES128-GCM Parse * 10000 : 94ms
HMAC-SHA512-MFS IV-AES256-GCM Issue * 10000 : 99ms
HMAC-SHA512-MFS IV-AES256-GCM Parse * 10000 : 84ms
ECDSA-P256 IV-AES128-GCM Issue * 10000 : 200ms
ECDSA-P256 IV-AES128-GCM Parse * 10000 : 187ms
ECDSA-P256 IV-AES256-GCM Issue * 10000 : 197ms
ECDSA-P256 IV-AES256-GCM Parse * 10000 : 188ms
ECDSA-P384 IV-AES128-GCM Issue * 10000 : 803ms
ECDSA-P384 IV-AES128-GCM Parse * 10000 : 1849ms
ECDSA-P384 IV-AES256-GCM Issue * 10000 : 807ms
ECDSA-P384 IV-AES256-GCM Parse * 10000 : 1859ms
ECDSA-P521 IV-AES128-GCM Issue * 10000 : 700ms
ECDSA-P521 IV-AES128-GCM Parse * 10000 : 1408ms
ECDSA-P521 IV-AES256-GCM Issue * 10000 : 698ms
ECDSA-P521 IV-AES256-GCM Parse * 10000 : 1397ms

--- Single-Thread ---
HMAC-SHA256-MFS IV-AES128-GCM Issue * 10000 : 47ms
HMAC-SHA256-MFS IV-AES128-GCM Parse * 10000 : 47ms
HMAC-SHA256-MFS IV-AES256-GCM Issue * 10000 : 46ms
HMAC-SHA256-MFS IV-AES256-GCM Parse * 10000 : 47ms
HMAC-SHA384-MFS IV-AES128-GCM Issue * 10000 : 46ms
HMAC-SHA384-MFS IV-AES128-GCM Parse * 10000 : 47ms
HMAC-SHA384-MFS IV-AES256-GCM Issue * 10000 : 46ms
HMAC-SHA384-MFS IV-AES256-GCM Parse * 10000 : 46ms
HMAC-SHA512-MFS IV-AES128-GCM Issue * 10000 : 46ms
HMAC-SHA512-MFS IV-AES128-GCM Parse * 10000 : 48ms
HMAC-SHA512-MFS IV-AES256-GCM Issue * 10000 : 46ms
HMAC-SHA512-MFS IV-AES256-GCM Parse * 10000 : 48ms
ECDSA-P256 IV-AES128-GCM Issue * 10000 : 224ms
ECDSA-P256 IV-AES128-GCM Parse * 10000 : 441ms
ECDSA-P256 IV-AES256-GCM Issue * 10000 : 215ms
ECDSA-P256 IV-AES256-GCM Parse * 10000 : 441ms
ECDSA-P384 IV-AES128-GCM Issue * 10000 : 4955ms
ECDSA-P384 IV-AES128-GCM Parse * 10000 : 11807ms
ECDSA-P384 IV-AES256-GCM Issue * 10000 : 4947ms
ECDSA-P384 IV-AES256-GCM Parse * 10000 : 11767ms
ECDSA-P521 IV-AES128-GCM Issue * 10000 : 3567ms
ECDSA-P521 IV-AES128-GCM Parse * 10000 : 7194ms
ECDSA-P521 IV-AES256-GCM Issue * 10000 : 3564ms
ECDSA-P521 IV-AES256-GCM Parse * 10000 : 7185ms
```
