Skip to content

Latest commit

 

History

History
113 lines (82 loc) · 3.24 KB

File metadata and controls

113 lines (82 loc) · 3.24 KB

Secure File Manager

A cryptographic file operations tool with a CLI and an Electron desktop GUI.

C++17 OpenSSL Electron

Features

  • 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

Screenshots

The Electron GUI uses a cyberpunk-themed dark interface with neon accent colors, CRT scanline effects, and native file browse dialogs.

Prerequisites

  • 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

Building the CLI

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_manager

Or with the Visual Studio generator:

cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release --target secure_file_manager

CLI Usage

secure_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.bin in the working directory (required for decryption)
  • Signing requires private.pem in the working directory
  • Verification requires public.pem in the working directory

Electron GUI

The desktop GUI wraps the CLI with a cyberpunk-themed interface built on Electron.

Setup

cd gui
npm install

Launch

unset ELECTRON_RUN_AS_NODE
npm start

Note: VS Code's integrated terminal sets ELECTRON_RUN_AS_NODE=1 which prevents Electron from launching as a desktop app. Run unset ELECTRON_RUN_AS_NODE first, 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.

Running Tests

cmake --build build --target test_crypto
./build/test_crypto

This runs a basic roundtrip test: creates a file, encrypts it, decrypts it, and verifies the output matches the original.

Project Structure

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

License

See repository for license details.