{"id":16370212,"url":"https://github.com/mrdcvlsc/blockciphermodes","last_synced_at":"2026-03-04T03:30:17.340Z","repository":{"id":181449700,"uuid":"666797131","full_name":"mrdcvlsc/BlockCipherModes","owner":"mrdcvlsc","description":"A collection of different block cipher modes, designed to facilitate secure data encryption.","archived":false,"fork":false,"pushed_at":"2023-09-23T07:00:03.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-31T10:14:42.316Z","etag":null,"topics":["block-cipher","block-cipher-mode","blockcipher","blockcipher-mode","cbc","cfb","cplusplus","cplusplus-library","cplusplus17","cpp","cpp-library","cpp17","cryptography","data-security","information-security","initialization-","iv","key","library","mode-of-encryption"],"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/mrdcvlsc.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":"2023-07-15T15:54:40.000Z","updated_at":"2023-07-16T16:47:32.000Z","dependencies_parsed_at":"2024-12-31T10:14:07.356Z","dependency_job_id":"7838b725-7051-4abe-8e13-b8c5b8234511","html_url":"https://github.com/mrdcvlsc/BlockCipherModes","commit_stats":{"total_commits":6,"total_committers":1,"mean_commits":6.0,"dds":0.0,"last_synced_commit":"af320037594e4335afad5c9bea66df5899c4b45c"},"previous_names":["mrdcvlsc/blockciphermodes"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdcvlsc%2FBlockCipherModes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdcvlsc%2FBlockCipherModes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdcvlsc%2FBlockCipherModes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdcvlsc%2FBlockCipherModes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrdcvlsc","download_url":"https://codeload.github.com/mrdcvlsc/BlockCipherModes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239887597,"owners_count":19713681,"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","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":["block-cipher","block-cipher-mode","blockcipher","blockcipher-mode","cbc","cfb","cplusplus","cplusplus-library","cplusplus17","cpp","cpp-library","cpp17","cryptography","data-security","information-security","initialization-","iv","key","library","mode-of-encryption"],"created_at":"2024-10-11T03:04:22.220Z","updated_at":"2026-03-04T03:30:17.291Z","avatar_url":"https://github.com/mrdcvlsc.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BlockCipherModes\n\n![tests](https://github.com/mrdcvlsc/BlockCipherModes/actions/workflows/tests.yml/badge.svg)\n\nA collection of different block cipher modes, designed to facilitate secure data encryption. This library focuses **exclusively** on providing implementations of block cipher modes and **does not include** block cipher algorithms or padding functions.\n\nThis library also aims to ease the integration of external or 3rd party block cipher functions or methods through the use of callback functions.\n\n## **Block Cipher Mode vs Block Cipher**\n\nA **block cipher mode** is a technique used in cryptography to encrypt/decrypt data using a **block cipher** algorithm.\n\n**Block ciphers** operate on _fixed-size blocks_ of data and produce ciphertext as output. However, when encrypting large amounts of data, **block cipher modes** are needed to **handle multiple blocks** securely.\n\nSome common **block cipher modes** include Electronic Codebook (ECB), Cipher Block Chaining (CBC), Counter (CTR), and Galois/Counter Mode (GCM).\n\nThese modes provide different approaches when encrypting and processing multiple blocks of data, ensuring confidentiality and integrity of the encrypted information.\n\n## **Currently Supported Modes**\n\n- :green_square: - already supported and available (done)\n- :yellow_square: - will be supported in the future (pending)\n- :red_square: - will not be supported\n\n| Mode  | Name                  | Status               |\n| ----- | --------------------- | :------------------: |\n| `ECB` | Electronic Codebook   | :red_square:         |\n| `CBC` | Cipher Block Chaining | :green_square:       |\n| `OFB` | Output Feedback       | :yellow_square:      |\n| `CFB` | Cipher Feedback       | :green_square:       |\n| `CTR` | Counter               | :yellow_square:      |\n| `GCM` | Galois/Counter Mode   | :yellow_square:      |\n\n-----------\n\n## **Minimum Requirement(s)**\n\n- Requires C++17 so you need to compile it with the compilation flag `-std=c++17`.\n\n## **Learn How To Use The Library**\n\n1. **[Block Cipher Mode On A Single-Block](docs/sample1.md)**\n2. **[Block Cipher Mode On Multi-Block](docs/sample2.md)**\n3. **[Block Cipher Mode + Block Cipher : Local Access](docs/sample3.md)**\n4. **[Block Cipher Mode + Block Cipher : Global Access](docs/sample4.md)**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrdcvlsc%2Fblockciphermodes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrdcvlsc%2Fblockciphermodes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrdcvlsc%2Fblockciphermodes/lists"}