import os
import json
import base64
from dotenv import load_dotenv
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
import jwt


load_dotenv()


def decrypt_array(token):
   
    token = token.strip()
    token += "=" * (-len(token) % 4)
    payload = base64.urlsafe_b64decode(token)

    print("Payload length:", len(payload))
    if len(payload) < 28:
        raise ValueError("Invalid encrypted token")

    nonce = payload[:12]
    tag = payload[12:28]
    ciphertext = payload[28:]

    key = base64.b64decode('ME9Tj9mbn3zEj3ZK2IgN69BPmNiIhcKhm26SIdXN6M4=', validate=True)

    if len(key) != 32:
        raise ValueError("Key must be 32 bytes")

    plaintext = AESGCM(key).decrypt(
        nonce, ciphertext + tag, None
    )

    return json.loads(plaintext.decode("utf-8"))



