Coder Social home page Coder Social logo

fcryptolib's Introduction

Fador's crypto library

This project provides a simple implementation of crypto algorithms in C++. Currently only thing supported is AES (Advanced Encryption Standard), specifically focusing on AES-128 in ECB (Electronic Codebook) and CBC (Cipher Block Chaining) modes.

WARNING

This implementation is created for educational purposes and should NOT be used for security-critical applications. This code lacks many features and safeguards that a secure encryption system requires. In a real-world application, always use a well-reviewed cryptographic library that provides these necessary features and has been tested for security vulnerabilities.

Features

  • AES-128 encryption/decryption in ECB mode
  • AES-128 encryption/decryption in CBC mode
  • Key Expansion
  • Various helper functions (SubBytes, ShiftRows, MixColumns, AddRoundKey, etc.)

Building and Running the Project

This project is a simple single-file C++ program. To build it, you'll need a C++ compiler that supports at least the C++11 standard.

Here's how to build the project:

g++ -std=c++11 -o aes128 AES128_test.cpp

Then, you can run it like so:

./aes128

This will run the program with a predefined plaintext and key, outputting the original text, the encrypted text, and the decrypted text.

Python

The project includes an experimental python interface, which can be built and tested by going to python/ and running:

python setup.py bdist_wheel
pip install dist/fcryptolib_fador*.whl
python tests/simple_test.py

License

This project is licensed under permissive BSD 2-Clause License. - see the LICENSE file for details.

fcryptolib's People

Contributors

fador avatar

Watchers

 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.