{"id":22670184,"url":"https://github.com/calccrypto/encryptions","last_synced_at":"2025-10-08T15:05:18.681Z","repository":{"id":9650550,"uuid":"11586467","full_name":"calccrypto/Encryptions","owner":"calccrypto","description":"A C++ Encryption Library","archived":false,"fork":false,"pushed_at":"2024-11-05T00:17:16.000Z","size":578,"stargazers_count":129,"open_issues_count":0,"forks_count":43,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-05-17T18:02:47.222Z","etag":null,"topics":["c-plus-plus","encryption","encryption-algorithms","encryption-methods","library"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/calccrypto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-07-22T16:36:30.000Z","updated_at":"2025-04-20T19:46:38.000Z","dependencies_parsed_at":"2024-12-09T15:52:41.133Z","dependency_job_id":"abcc09c0-dedd-4364-8e6c-4fb0c349382c","html_url":"https://github.com/calccrypto/Encryptions","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/calccrypto/Encryptions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calccrypto%2FEncryptions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calccrypto%2FEncryptions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calccrypto%2FEncryptions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calccrypto%2FEncryptions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/calccrypto","download_url":"https://codeload.github.com/calccrypto/Encryptions/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calccrypto%2FEncryptions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278963824,"owners_count":26076545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","encryption","encryption-algorithms","encryption-methods","library"],"created_at":"2024-12-09T15:52:34.117Z","updated_at":"2025-10-08T15:05:18.661Z","avatar_url":"https://github.com/calccrypto.png","language":"C++","readme":"A C++ library of encryption algorithms\n\nCopyright (c) 2013 - 2017 Jason Lee @ calccrypto at gmail.com\n\nPlease see LICENSE file for license.\n\n[![Build Status](https://travis-ci.org/calccrypto/Encryptions.svg?branch=master)](https://travis-ci.org/calccrypto/Encryptions)\n\u003cpre\u003e\n\nIMPORTANT:\n    This library was not written for actual use.\n    Rather, it was meant for educational purposes,\n    so if you choose to use it in a real setting\n    where secrecy is required, do so at your own risk.\n    People who use this library to learn about the\n    algorithms can easily add a few std::couts to\n    see the internal data.\n\nAlgorithms:\n    AES 128/192/256\n    Blowfish\n    Camellia 128/192/256\n    CAST-128 aka CAST5\n    CAST-256 aka CAST6\n    DES\n    DES-X\n    GOST 28147-89\n    IDEA\n    MISTY1\n    RC2\n    RC4 (Allegedly)\n    RC5-32/12/16 (can be changed)\n    RC6-32/20 (can be changed)\n    SAFER K-64\n    SEED\n    Skipjack\n    Triple DES\n    TEA\n    Twofish\n    XTEA\n\nModes of Operation (mod_op):\n    Electronic Codebook (ECB)\n    Cipher - Block Chaining (CBC)\n    Cipher Feedback (CFB)\n    Counter (CTR)\n    Output Feedback (OFB)\n    Propagating Cipher - Block Chaining (PCBC)\n\nNotes:\n    Algorithms:\n        All above algorithms are derived from the \"SymAlg\" class,\n        which is used in the Mode of Operations template.\n\n        Algorithms will expect eactly 1 block or b bits of data in\n        8 bit ASCII, where b is the block size of the algorithm in\n        bits. If there are the wrong number of bits, the algorithm\n        should crash.\n\n        The keying algorithms will do the same, unless there are\n        defined padding methods.\n\n        blocksize() returns the blocksize in bits\n\n        Data padding is a hopefully correct implementation of PKCS5\n\n    Modes of Operation:\n        Only the general ideas of how each Mode of Operation works is used.\n        If any of the included algorithm has a specific method of running\n        under a certain Mode of Operation, it was probably not programmed.\n\n        The default Initialization Vector is just a series of 0s.\n\nBuild:\n    mkdir build\n    cd build\n    cmake ..\n    make\n    (optional) make test\n    (optional) make install\n\nUsage:\n    'instance' is an instance of an algorithm\n    'key' is a string that is one key long for any algorithm\n    'plaintext' is a one block long string of non encrypted data\n    'ciphertext' is a one block long string of encrypted data\n\n    To run the algorithms separately (run on only 1 block), simply use '.encrypt(data)'\n    to encrypt or '.decrypt(data)' to decrypt, since the key has already been expanded.\n\n    Ex:\n        AES instance(key)\n        ciphertext = instance.encrypt(plaintext)\n\n    To encrypt or decrypt data using a Mode of Operation function, Simply create an instance of the mod_op.\n    The input is the entire data in one string.\n        Notes:\n            * ECB mode does not require an IV.\n            * Modes CFB, CTR, and OFB are always in encrypt mode (already programmed in)\n            * The other modes can use encrypt or decrypt instances of the algorithms\n            * IV are hex strings of any length, preferably one block long\n            * Any input with default value NULL can have any input. It does not matter\n    Ex:\n        Encrypting using CBC mode on AES:\n            SymAlg * instance = new AES(key)\n            data = CBC(instance, IV).encrypt(plaintext1 + plaintext2 + ... + plaintextN)\n            delete(instance)\n\u003c/pre\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalccrypto%2Fencryptions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcalccrypto%2Fencryptions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalccrypto%2Fencryptions/lists"}