Metadata-Version: 2.4
Name: saro-dat
Version: 4.0.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: ksuxNhgXNoiIdcveVAVOvMa9VeeQq0M3DOAHrsTrJsxfXjJqypRN32BS5UTyWXcdijOgE6LnZPIzHgEGJRqcyysSaLFSv16VCDvc
Secure: CvKAHCMGf1dz2G5WMa1tJBuGP8bZa8KQpAP3tPCBfY4WsWmjjQDSFIaPB69j6Sb6ZgYgUVpeWkCU0hZm05sEnjVx1Owl2HfVv2dc

--- Multi-Thread ---
HMAC_SHA256_MFS AES128GCMN Issue * 10000 : 96ms
HMAC_SHA256_MFS AES128GCMN Parse * 10000 : 93ms
HMAC_SHA256_MFS AES256GCMN Issue * 10000 : 108ms
HMAC_SHA256_MFS AES256GCMN Parse * 10000 : 97ms
HMAC_SHA384_MFS AES128GCMN Issue * 10000 : 122ms
HMAC_SHA384_MFS AES128GCMN Parse * 10000 : 93ms
HMAC_SHA384_MFS AES256GCMN Issue * 10000 : 102ms
HMAC_SHA384_MFS AES256GCMN Parse * 10000 : 93ms
HMAC_SHA512_MFS AES128GCMN Issue * 10000 : 104ms
HMAC_SHA512_MFS AES128GCMN Parse * 10000 : 97ms
HMAC_SHA512_MFS AES256GCMN Issue * 10000 : 101ms
HMAC_SHA512_MFS AES256GCMN Parse * 10000 : 88ms
P256 AES128GCMN Issue * 10000 : 203ms
P256 AES128GCMN Parse * 10000 : 182ms
P256 AES256GCMN Issue * 10000 : 203ms
P256 AES256GCMN Parse * 10000 : 180ms
P384 AES128GCMN Issue * 10000 : 808ms
P384 AES128GCMN Parse * 10000 : 1810ms
P384 AES256GCMN Issue * 10000 : 807ms
P384 AES256GCMN Parse * 10000 : 1850ms
P521 AES128GCMN Issue * 10000 : 710ms
P521 AES128GCMN Parse * 10000 : 1382ms
P521 AES256GCMN Issue * 10000 : 713ms
P521 AES256GCMN Parse * 10000 : 1403ms

--- Single-Thread ---
HMAC_SHA256_MFS AES128GCMN Issue * 10000 : 46ms
HMAC_SHA256_MFS AES128GCMN Parse * 10000 : 47ms
HMAC_SHA256_MFS AES256GCMN Issue * 10000 : 45ms
HMAC_SHA256_MFS AES256GCMN Parse * 10000 : 46ms
HMAC_SHA384_MFS AES128GCMN Issue * 10000 : 46ms
HMAC_SHA384_MFS AES128GCMN Parse * 10000 : 47ms
HMAC_SHA384_MFS AES256GCMN Issue * 10000 : 45ms
HMAC_SHA384_MFS AES256GCMN Parse * 10000 : 46ms
HMAC_SHA512_MFS AES128GCMN Issue * 10000 : 46ms
HMAC_SHA512_MFS AES128GCMN Parse * 10000 : 48ms
HMAC_SHA512_MFS AES256GCMN Issue * 10000 : 46ms
HMAC_SHA512_MFS AES256GCMN Parse * 10000 : 48ms
P256 AES128GCMN Issue * 10000 : 226ms
P256 AES128GCMN Parse * 10000 : 444ms
P256 AES256GCMN Issue * 10000 : 214ms
P256 AES256GCMN Parse * 10000 : 439ms
P384 AES128GCMN Issue * 10000 : 4947ms
P384 AES128GCMN Parse * 10000 : 11841ms
P384 AES256GCMN Issue * 10000 : 4946ms
P384 AES256GCMN Parse * 10000 : 11828ms
P521 AES128GCMN Issue * 10000 : 3555ms
P521 AES128GCMN Parse * 10000 : 7233ms
P521 AES256GCMN Issue * 10000 : 3553ms
P521 AES256GCMN Parse * 10000 : 7207ms
```
