Skip to content

SV592/secure_file_manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors