{"id":17981554,"url":"https://github.com/francisrstokes/aes-c","last_synced_at":"2026-03-16T08:39:05.995Z","repository":{"id":45401200,"uuid":"496878339","full_name":"francisrstokes/AES-C","owner":"francisrstokes","description":"A (non-production) implementation of AES for educational purposes","archived":false,"fork":false,"pushed_at":"2022-05-29T15:14:19.000Z","size":32,"stargazers_count":20,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-20T17:08:20.513Z","etag":null,"topics":["advanced-encryption-standard","aes","c","cryptography","from-scratch"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/francisrstokes.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-27T05:55:25.000Z","updated_at":"2024-11-20T08:30:58.000Z","dependencies_parsed_at":"2022-09-18T10:30:32.629Z","dependency_job_id":null,"html_url":"https://github.com/francisrstokes/AES-C","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francisrstokes%2FAES-C","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francisrstokes%2FAES-C/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francisrstokes%2FAES-C/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francisrstokes%2FAES-C/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/francisrstokes","download_url":"https://codeload.github.com/francisrstokes/AES-C/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245519960,"owners_count":20628807,"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":["advanced-encryption-standard","aes","c","cryptography","from-scratch"],"created_at":"2024-10-29T18:11:05.651Z","updated_at":"2026-03-16T08:39:05.955Z","avatar_url":"https://github.com/francisrstokes.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AES Implementation In C\n\n**⚠️ DO NOT USE THIS CODE IN PRODUCTION**\n\nThis is a very literal, non-performant, non-robust implementation of AES in pure C. It is likely to be vulnerable to side-channel timing attacks, and really shouldn't be used for anything aside from learning about how the AES algorithm works. I've tried to keep the code readable, and added comments to aid my own understanding.\n\n## Features\n\n- 128-bit encryption and decryption\n- Electronic Code Book (ECB) mode of operation\n- Cipher Block Chaining (CBC) mode of operation\n\n## Building / Testing\n\n```bash\nmake      # to build\nmake test # to run the test suite\n```\n\n## Usage\n\n```\nUsage: aes-c [OPTION...] ...\nSimple AES implementation\n\n  -d, --decrypt              Decrypt.\n  -e, --encrypt              Encrypt.\n  -i, --in-file=IN_FILE      Input file.\n  -k, --key-file=KEY_FILE    File containing 128-bit key.\n  -m, --mode=MODE            Mode (ecb / cbc).\n  -o, --out-file=OUT_FILE    Output file.\n  -t, --test                 Run the test suite.\n  -?, --help                 Give this help list\n      --usage                Give a short usage message\n  -V, --version              Print program version\n\nMandatory or optional arguments to long options are also mandatory or optional\nfor any corresponding short options.\n\nReport bugs to https://github.com/francisrstokes/aes-c/issues.\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrancisrstokes%2Faes-c","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrancisrstokes%2Faes-c","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrancisrstokes%2Faes-c/lists"}