ivan-avalos / g-quick-cryptor Goto Github PK
View Code? Open in Web Editor NEWQuickCryptor GUI - Symmetric encryption for everyone.
License: GNU General Public License v3.0
QuickCryptor GUI - Symmetric encryption for everyone.
License: GNU General Public License v3.0
# gQuickCryptor - didactic cryptography software. gQuickCryptor is an encryption/decryption tool written in C with educational purposes. gQuickCryptor is the GTK+ GUI of the original QuickCryptor. QuickCryptor code aims to be easy to read, structured, well commented and useful at the same time. QuickCryptor doesn't guarantee the safety of the cipher and like I've said before: "it's only for educational purposes". ## Project structure QuickCryptor functionality has been divided between the members of our "staff": + Fileman (fileman.c/fileman.h) is in charge of reading and writing files. + Quickman (quickman.c/quickman.h) is in charge of cryptographic operations like cipher, decipher and more. + Main (main.c, not a member), it's where all the pieces are joint to make QuickCryptor work and you are free to implement your own. This version of main also includes GUI functionality. Each member is distributed in two files: header and source. + In the header, all the functions, enumerations and structures are declared to be used in the main function. + In the source, we implement the logic of those functions. ## Graphical User Interface (GUI) gQuickCryptor implements the GUI library GTK+, providing GUI functionality and more. In this project, we get all the widgets from the g_quick_cryptor.ui XML (created with Glade) file to add them functionality. ## Classes Where are the classes in this project? Well, since there are no classes in C, we simulate them. We encapsulate fields inside structures, and we define independent functions (constructors, setters and getters) taking as input a pointer to the struct and the parameters. Here's an example: ```c typedef struct { char* name; int sex; int age; } person_t; person_t* person_new (char* name, int sex, int age) { person_t* person = malloc(sizeof (person_t)); person->name = name; person->sex = sex; person->age = age; return person; } void person_set_name (person_t* person, char* name) { person->name = name; } char* person_get_name (person_t* person) { return person->name; } ... void person_free (person_t* person) { free (person); } ``` ## IDE This project was made using Anjuta IDE. I recommend you Anjuta because it's a very full-featured IDE, offering GNU templates, GTK+ support and more. http://anjuta.org # Build and install instructions Cd into the root of QuickCryptor folder and run the following commands: ```bash ./autogen.sh # might require some dependencies. make sudo make install ``` **TIP:** Sometimes, C projects require many dependencies, which you will need to install in order to configure successfully your project. Please be patient and relax, don't give up or you will never learn. # Documentation I invite you to create the QuickCryptor documentation on your own, so you will test your ability to understand code, be part of something, maybe contribute in an open source project for the first time and feel a hero; all at the same time. Any documentation will be welcomed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.