vasanthfeb13's picture
Deploy Main Space
09e8c1e
raw
history blame contribute delete
940 Bytes
"""
Node Pairing Logic
Generates and verifies 6-digit pairing codes for secure node initialization.
"""
import secrets
import string
import time
from dataclasses import dataclass
from typing import Optional
@dataclass
class PairingSession:
code: str
node_id: str
created_at: float
expires_at: float
@property
def is_expired(self) -> bool:
return time.time() > self.expires_at
def generate_pairing_code(length: int = 6) -> str:
"""Generate a secure random numeric code."""
alphabet = string.digits
return ''.join(secrets.choice(alphabet) for _ in range(length))
def create_session(node_id: str, ttl_seconds: int = 300) -> PairingSession:
"""Create a new pairing session with a unique code."""
code = generate_pairing_code()
now = time.time()
return PairingSession(
code=code,
node_id=node_id,
created_at=now,
expires_at=now + ttl_seconds
)