All Projects → calccrypto → Encryptions

calccrypto / Encryptions

Licence: MIT license
A C++ Encryption Library

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to Encryptions

pixcryption
📷 Pixel Safe Encryption - Now Cryptographically Secure 🔒
Stars: ✭ 56 (-51.72%)
Mutual labels:  encryption-algorithms
CryptoKnight
CryptoKnight is a general purpose cryptography desktop app
Stars: ✭ 18 (-84.48%)
Mutual labels:  encryption-algorithms
SplitShare
Shamir's Secret Sharing Algorithm implementation in golang combined with PGP and a mail delivery system
Stars: ✭ 31 (-73.28%)
Mutual labels:  encryption-algorithms
Veracrypt
Disk encryption with strong security based on TrueCrypt
Stars: ✭ 3,674 (+3067.24%)
Mutual labels:  encryption-algorithms
WD-Decrypte
Western Digital Decryption tools
Stars: ✭ 53 (-54.31%)
Mutual labels:  encryption-algorithms
he-toolkit
The Intel Homomorphic Encryption (HE) toolkit is the primordial vehicle for the continuous distribution of the Intel HE technological innovation to users. The toolkit has been designed with usability in mind and to make it easier for users to evaluate and deploy homomorphic encryption technology on the Intel platforms.
Stars: ✭ 40 (-65.52%)
Mutual labels:  encryption-algorithms
scram-cli
A command-line utility to encode messages. Python 3.
Stars: ✭ 13 (-88.79%)
Mutual labels:  encryption-algorithms
ceu-cloud-class
This is the repo for the Data Engineering 3 - Cloud and Big Data Computing course delivered at the Central European University ceu.edu
Stars: ✭ 15 (-87.07%)
Mutual labels:  encryption-algorithms
libVES.c
VESvault End-to-End Encryption API: Encrypt Everything Without Fear of Losing the Key
Stars: ✭ 28 (-75.86%)
Mutual labels:  encryption-algorithms
Password-Store
Saves your password with cryptography so only you can decode it.
Stars: ✭ 15 (-87.07%)
Mutual labels:  encryption-algorithms
bee2
A cryptographic library
Stars: ✭ 59 (-49.14%)
Mutual labels:  encryption-algorithms
Computer-Security-algorithms
👨‍💻 Computer Security algorithms in C#
Stars: ✭ 48 (-58.62%)
Mutual labels:  encryption-algorithms

A C++ library of encryption algorithms

Copyright (c) 2013 - 2017 Jason Lee @ calccrypto at gmail.com

Please see LICENSE file for license.

Build Status

IMPORTANT:
    This library was not written for actual use.
    Rather, it was meant for educational purposes,
    so if you choose to use it in a real setting
    where secrecy is required, do so at your own risk.
    People who use this library to learn about the
    algorithms can easily add a few std::couts to
    see the internal data.

Algorithms:
    AES 128/192/256
    Blowfish
    Camellia 128/192/256
    CAST-128 aka CAST5
    CAST-256 aka CAST6
    DES
    DES-X
    GOST 28147-89
    IDEA
    MISTY1
    RC2
    RC4 (Allegedly)
    RC5-32/12/16 (can be changed)
    RC6-32/20 (can be changed)
    SAFER K-64
    SEED
    Skipjack
    Triple DES
    TEA
    Twofish
    XTEA

Modes of Operation (mod_op):
    Electronic Codebook (ECB)
    Cipher - Block Chaining (CBC)
    Cipher Feedback (CFB)
    Counter (CTR)
    Output Feedback (OFB)
    Propagating Cipher - Block Chaining (PCBC)

Notes:
    Algorithms:
        All above algorithms are derived from the "SymAlg" class,
        which is used in the Mode of Operations template.

        Algorithms will expect eactly 1 block or b bits of data in
        8 bit ASCII, where b is the block size of the algorithm in
        bits. If there are the wrong number of bits, the algorithm
        should crash.

        The keying algorithms will do the same, unless there are
        defined padding methods.

        blocksize() returns the blocksize in bits

        Data padding is a hopefully correct implementation of PKCS5

    Modes of Operation:
        Only the general ideas of how each Mode of Operation works is used.
        If any of the included algorithm has a specific method of running
        under a certain Mode of Operation, it was probably not programmed.

        The default Initialization Vector is just a series of 0s.

Build:
    mkdir build
    cd build
    cmake ..
    make
    (optional) make test
    (optional) make install

Usage:
    'instance' is an instance of an algorithm
    'key' is a string that is one key long for any algorithm
    'plaintext' is a one block long string of non encrypted data
    'ciphertext' is a one block long string of encrypted data

    To run the algorithms separately (run on only 1 block), simply use '.encrypt(data)'
    to encrypt or '.decrypt(data)' to decrypt, since the key has already been expanded.

    Ex:
        AES instance(key)
        ciphertext = instance.encrypt(plaintext)

    To encrypt or decrypt data using a Mode of Operation function, Simply create an instance of the mod_op.
    The input is the entire data in one string.
        Notes:
            * ECB mode does not require an IV.
            * Modes CFB, CTR, and OFB are always in encrypt mode (already programmed in)
            * The other modes can use encrypt or decrypt instances of the algorithms
            * IV are hex strings of any length, preferably one block long
            * Any input with default value NULL can have any input. It does not matter
    Ex:
        Encrypting using CBC mode on AES:
            SymAlg * instance = new AES(key)
            data = CBC(instance, IV).encrypt(plaintext1 + plaintext2 + ... + plaintextN)
            delete(instance)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].