import React, { useState, useEffect } from 'react'; import { Link, useNavigate, useLocation } from 'react-router-dom'; import { RefreshCw } from 'lucide-react'; import { useCTF } from './CTFContext'; import { Button } from './UIComponents'; export const Login: React.FC = () => { const { login } = useCTF(); const navigate = useNavigate(); const location = useLocation(); const [name, setName] = useState(''); const [pass, setPass] = useState(''); const [error, setError] = useState(''); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (await login(name, pass)) { const from = (location.state as any)?.from?.pathname || '/'; navigate(from, { replace: true }); } else setError('ACCESS_DENIED: INVALID_CREDENTIALS'); }; return (
AUTH_GATE_01

SIGN_IN

setName(e.target.value)} required /> setPass(e.target.value)} required /> {error &&

{error}

}

New operator? Register_Identity

); }; export const Register: React.FC = () => { const { register } = useCTF(); const navigate = useNavigate(); const [name, setName] = useState(''); const [pass, setPass] = useState(''); const [error, setError] = useState(''); // CAPTCHA State const [captchaQ, setCaptchaQ] = useState(''); const [captchaInput, setCaptchaInput] = useState(''); const generateCaptcha = () => { const chars = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz0123456789'; let result = ''; for (let i = 0; i < 6; i++) { result += chars.charAt(Math.floor(Math.random() * chars.length)); } setCaptchaQ(result); setCaptchaInput(''); }; useEffect(() => { generateCaptcha(); }, []); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); // CAPTCHA Validation (Case-insensitive) if (captchaInput.toLowerCase() !== captchaQ.toLowerCase()) { setError('VALIDATION_ERROR: HUMAN_VERIFICATION_FAILED'); generateCaptcha(); return; } try { await register(name, pass); navigate('/challenges'); } catch (err: any) { setError(err.message || 'REGISTRATION_FAILED'); generateCaptcha(); } }; return (
IDENTITY_GEN_01

REGISTER

setName(e.target.value)} required />
setPass(e.target.value)} required />
setCaptchaInput(e.target.value)} required />
{error &&

{error}

}
); };