Code Monkey home page Code Monkey logo

quick-cryptor's Introduction

# QuickCryptor - didactic cryptography software.

QuickCryptor is an encryption/decryption tool written in C with educational purposes. QuickCryptor is a sample program with some good practices in a GNU C project. 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 purpose".

## Project structure

QuickCryptor functionality has been divided between the members of our "staff":

+ Fileman is in charge of reading and writing files.

+ Quickman is in charge of cryptographic operations like cipher, decipher and more.

+ Main (not a member), it's where all the pieces are joint to make QuickCryptor work and you are free to implement your own.

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.

## 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.

quick-cryptor's People

Contributors

ivan-avalos avatar

Watchers

 avatar  avatar

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.