pytilpack.crypto¶
pytilpack.crypto
¶
署名・トークンユーティリティ。
pycrypto.py (AES-GCM暗号化) やsecrets.py (秘密鍵生成) を補完する HMAC署名・タイムスタンプ付きトークン機能。
TimestampSigner(key, purpose='', get_time=time.time)
¶
タイムスタンプ付き署名トークンの生成・検証。
初期化。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
key
|
str | bytes
|
署名鍵。 |
必須 |
purpose
|
str
|
用途識別子。同じ鍵でも異なるpurposeのトークンは互換性がない。 |
''
|
get_time
|
Callable[[], float]
|
現在時刻を返す関数。テスト用。 |
time
|
ソースコード位置: pytilpack/crypto.py
sign(data)
¶
データに署名してトークンを生成する。
Token format: base64url(version[1] + timestamp[8] + type[1] + data[...] + hmac[32])
ソースコード位置: pytilpack/crypto.py
unsign(token, max_age=None)
¶
トークンを検証してデータを取り出す。
発生:
| タイプ | デスクリプション |
|---|---|
ValueError
|
検証失敗、期限切れ、バージョン不一致の場合。 |
ソースコード位置: pytilpack/crypto.py
hmac_sign(data, key)
¶
HMAC-SHA256で署名する。
戻り値:
| タイプ | デスクリプション |
|---|---|
str
|
URL-safe base64エンコードされた署名文字列。 |