Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ dynamic = [ "version" ]
dependencies = [
"aiohttp>=3.8.3",
"aioresponses>=0.7.6",
"aleph-message>=1.0.4",
"aleph-message>=1.0.5",
"aleph-superfluid>=0.3",
"base58==2.1.1", # Needed now as default with _load_account changement
"coincurve; python_version>='3.9'",
Expand Down
15 changes: 8 additions & 7 deletions tests/unit/aleph_vm_authentication.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from jwcrypto import jwk
from jwcrypto.jwa import JWA
from pydantic import BaseModel, ValidationError, field_validator, model_validator
from typing_extensions import Self

from aleph.sdk.utils import bytes_from_hex

Expand Down Expand Up @@ -76,28 +77,28 @@ def payload_must_be_hex(cls, value: bytes) -> bytes:
return bytes_from_hex(value.decode())

@model_validator(mode="after") # type: ignore
def check_expiry(cls, values: SignedPubKeyHeader) -> SignedPubKeyHeader:
def check_expiry(self) -> Self:
"""Check that the token has not expired"""
payload: bytes = values.payload
payload: bytes = self.payload
content = SignedPubKeyPayload.model_validate_json(payload)

if not is_token_still_valid(content.expires):
msg = "Token expired"
raise ValueError(msg)

return values
return self

@model_validator(mode="after") # type: ignore
def check_signature(cls, values: SignedPubKeyHeader) -> SignedPubKeyHeader:
signature: bytes = values.signature
payload: bytes = values.payload
def check_signature(self) -> Self:
signature: bytes = self.signature
payload: bytes = self.payload
content = SignedPubKeyPayload.model_validate_json(payload)

if not verify_wallet_signature(signature, payload.hex(), content.address):
msg = "Invalid signature"
raise ValueError(msg)

return values
return self

@property
def content(self) -> SignedPubKeyPayload:
Expand Down
Loading