A cryptographic file operations tool with a CLI and an Electron desktop GUI.
- Encrypt — AES-256-CBC file encryption with random IV and key
- Decrypt — AES-256-CBC file decryption using stored key/IV
- Hash — SHA-256 file hashing
- Sign — RSA digital signature creation
- Verify — RSA signature verification
The Electron GUI uses a cyberpunk-themed dark interface with neon accent colors, CRT scanline effects, and native file browse dialogs.
- Visual Studio 2022 (MSVC C++17 compiler)
- CMake 3.10+
- OpenSSL 3.x — installed at
C:\Program Files\OpenSSL-Win64 - Node.js 18+ — for the Electron GUI
- Windows 10 SDK
Open a Developer Command Prompt for VS 2022 and run:
cmake -S . -B build -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DOPENSSL_ROOT_DIR="C:\Program Files\OpenSSL-Win64"
cmake --build build --target secure_file_managerOr with the Visual Studio generator:
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release --target secure_file_managersecure_file_manager encrypt <input_file> <output_file>
secure_file_manager decrypt <input_file> <output_file>
secure_file_manager hash <file>
secure_file_manager sign <file> <signature_file>
secure_file_manager verify <file> <signature_file>- Encryption generates
key_iv.binin the working directory (required for decryption) - Signing requires
private.pemin the working directory - Verification requires
public.pemin the working directory
The desktop GUI wraps the CLI with a cyberpunk-themed interface built on Electron.
cd gui
npm installunset ELECTRON_RUN_AS_NODE
npm startNote: VS Code's integrated terminal sets
ELECTRON_RUN_AS_NODE=1which prevents Electron from launching as a desktop app. Rununset ELECTRON_RUN_AS_NODEfirst, or use a standalone terminal.
The GUI spawns the compiled CLI executable (build/secure_file_manager.exe) for all cryptographic operations. Make sure the CLI is built before launching the GUI.
cmake --build build --target test_crypto
./build/test_cryptoThis runs a basic roundtrip test: creates a file, encrypts it, decrypts it, and verifies the output matches the original.
secure_file_manager/
src/
main.cpp CLI entry point
cryptography.h/cpp CryptoManager class (OpenSSL EVP API)
utils.h/cpp Utility functions
test_crypto.cpp Roundtrip encryption test
include/
utils.h Shared header
gui/
main.js Electron main process
preload.js IPC context bridge
index.html UI layout (sidebar + 5 operation panels)
styles.css Cyberpunk neon noir theme
app.js Renderer logic
package.json Electron dependency
CMakeLists.txt Build configuration
See repository for license details.