#pragma once
#include <windows.h>

#define AES_KEY_SIZE 32
#define AES_IV_SIZE  16
#define SHA256_HASH_SIZE 32

// Initialize AESPSK key from base64 string (called at startup)
BOOL crypto_init_aespsk(const char *aespsk_key_b64);

// Cleanup crypto resources
void crypto_cleanup(void);

// Encrypt a package using AES256-CBC + HMAC (Mythic format)
// Format: [IV(16 bytes)][Ciphertext][HMAC(32 bytes)]
BOOL CryptoMythicEncryptPackage(void* paquete);

// Decrypt a parser using AES256-CBC + HMAC (Mythic format)  
BOOL CryptoMythicDecryptParser(void* analizador);

// Helper to get encryption status
BOOL crypto_is_encryption_enabled(void);
