Giter VIP home page Giter VIP logo

cryptit's Introduction

CryptIT

Why?

I decided to do this project to learn more about bigger c++ project and how to develop, maintain and create unit tests and pipelines.

Description

This is a Qt application that uses the Crypto++ library, allowing users to select a directory and perform various cryptographic operations. The application utilizes QMainWindow for the main window and QVBoxLayout for the layout. CryptIT utilizes GitHub Actions to automatically run unit tests on pull requests to the main branch, ensuring code integrity and reliability throughout development. This streamlined process enhances collaboration and maintains high standards of software quality and security, so feel free to contribute as much as you want and can!

How to use

To use the program, you will need to open the executable and select a directory that you either want to encrypt or decrypt. Once a directory is selected, you can choose the number of threads the program should use; the more threads selected, the faster the process. Afterward, you can press the "Load files" button to view an overview of the number of files and a small sample of the selected files that will either be decrypted or encrypted. The program includes checks to ensure you cannot encrypt already encrypted files and verifies the correctness of the password before decrypting the files. Once a password is entered, only one button, either "encrypt" or "decrypt," will be available depending on whether the files are already encrypted or decrypted.

Available presets

Preset Os Info Prerequsite
vs2022-rel Windows Compiles Release build with MSVC Visual Studio 2022 or newer (not tested with older versions)
vs2022-deb Windows Compiles Debug build with MSVC Visual Studio 2022 or newer (not tested with older versions)

How to Run

Build locally

  1. Clone the repository.
  2. Ensure you have Conan 2.0 installed and an up-to-date compiler of your choice.
  3. Run build.sh followed with an argument rel or deb to build it of your liking.
    • Run CMake configuration by pressing Ctrl + Shift + P, then search for CMake: configure and select the release or debug kit depending on your previous choice.
    • Or run cmake --preset {preset}, se table above for available presets
    • Run CMake build by pressing Ctrl + Shift + P, then search for CMake: build, or simply press F7 on the keyboard.
    • OR run cmake --build --preset {preset}
  4. If you're using VS Code, select the appropriate launch option. Otherwise, navigate to the build folder located at build/{preset}/src/{Debug/Release}/CryptIT.exe.

Download binary

Go to releases and download the latest version depending on your operating system.

Dependencies

  • Qt/6.6.2
  • Crypto++/8.9.0
  • gtest/1.14.0

License

MIT

cryptit's People

Contributors

forsrobin avatar

Stargazers

Ayan Alam avatar  avatar  avatar Jonathan Thunberg avatar

Watchers

 avatar

Forkers

matheusgomes28

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.