UNPKG

e2ee-chat

Version:

A simple realtime chat SDK for web and mobile apps using socket.io with support for end-to-end encryption and multi-tenant backend integration.

66 lines (58 loc) 2.56 kB
const { encryptMessage, decryptMessage } = require("./src/encryption"); const SECRET_KEY = "shared-secret-123"; console.log("🔧 Flutter Integration Debug Tool"); console.log("================================"); console.log(""); // Test 1: Create a message that Flutter should be able to decrypt console.log("📤 Test 1: JavaScript -> Flutter"); console.log("----------------------------------"); const jsMessage = "Hello from JavaScript!"; const jsEncrypted = encryptMessage(jsMessage, SECRET_KEY); console.log("Original message:", jsMessage); console.log("JS encrypted:", jsEncrypted); console.log("Copy this encrypted text to Flutter and try to decrypt it"); console.log(""); // Test 2: Try to decrypt sample Flutter messages console.log("📥 Test 2: Flutter -> JavaScript"); console.log("----------------------------------"); // Add sample encrypted messages from Flutter here for testing const flutterSamples = [ // Add any encrypted messages from your Flutter app here // For example: 'sample_encrypted_message_from_flutter' ]; if (flutterSamples.length === 0) { console.log("⚠️ No Flutter sample messages provided"); console.log("To test:"); console.log("1. Run this in Flutter with the same secret key:"); console.log(' String encrypted = _encryptMessage("Test from Flutter");'); console.log(' print("Encrypted: $encrypted");'); console.log("2. Copy the encrypted output here"); console.log("3. Add it to the flutterSamples array above"); } else { flutterSamples.forEach((encrypted, index) => { try { const decrypted = decryptMessage(encrypted, SECRET_KEY); console.log(`Sample ${index + 1}:`); console.log(` Encrypted: ${encrypted}`); console.log(` Decrypted: ${decrypted}`); console.log(` ✅ SUCCESS`); } catch (error) { console.log(`Sample ${index + 1}:`); console.log(` Encrypted: ${encrypted}`); console.log(` ❌ FAILED: ${error.message}`); } console.log(""); }); } console.log(""); console.log("🔍 Debugging Tips:"); console.log("=================="); console.log("1. Ensure both Flutter and JS use the same secret key"); console.log("2. Check that IV handling is consistent"); console.log("3. Verify base64 encoding/decoding"); console.log("4. Test with simple messages first"); console.log("5. Check console logs for decryption errors"); console.log(""); console.log("Current secret key:", SECRET_KEY); console.log("Encryption method: AES-256-CBC with SHA-256 key derivation"); console.log("IV: Zero IV (16 bytes of zeros)");