Major improvements applying DRY (Don't Repeat Yourself) and KISS (Keep It Simple, Stupid): BACKEND CHANGES: - Fixed public key storage: Store as base64-encoded bytes in LargeBinary column (not double-encoding) - ElGamal key generation now produces proper "p:g:h" format with colons - Removed all double base64-encoding issues - Simplified API responses to decode bytes to UTF-8 strings for JSON serialization FRONTEND CHANGES: - Refactored ElGamalEncryption.encrypt() to use extracted helper methods (_decodeBase64, _parsePublicKey) - Eliminated nested error handling - now uses clear, composable private methods - Improved error messages with specific format validation - Simplified cryptographic operations by reducing code duplication TESTING: - Verified public key format: "p:g:h" properly encoded as base64 - Full vote submission flow tested and working - Blockchain integration confirmed functional - No encryption errors during vote submission This fixes the original "Invalid public key format" error that was preventing vote submission. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Description
No description provided
Languages
JavaScript
37.7%
Python
28.6%
CSS
26%
Typst
4.1%
Shell
2.4%
Other
1.2%