Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. crypto-algorithms

crypto-algorithms

C

Basic implementations of standard cryptography algorithms for educational and pragmatic purposes.

GitHubGitHub
2.0k stars710 forks0 contributors

What is crypto-algorithms?

crypto-algorithms is a collection of basic, from-scratch implementations of standard cryptography algorithms like AES and SHA-1. It provides publicly accessible, restriction-free code primarily intended for educational purposes and practical applications such as comparing specifications to implementations or computing test vectors for products.

Target Audience

Developers and students learning about cryptographic algorithm internals, or engineers needing reference implementations for testing and validation purposes in non-security-critical contexts.

Value Proposition

It offers clean, readable implementations without external dependencies or licensing restrictions, making it ideal for educational use and internal testing where cryptographic security is not required.

Overview

Basic implementations of standard cryptography algorithms, like AES and SHA-1.

Use Cases

Best For

  • Learning how cryptographic algorithms like AES and SHA-1 work internally
  • Comparing cryptographic specifications to actual implementation code
  • Generating test vectors for product validation and testing
  • Educational projects and cryptography coursework
  • Non-security-critical internal applications needing basic crypto computations
  • Understanding algorithm flow without optimization complexities

Not Ideal For

  • Production systems requiring cryptographically secure implementations with side-channel attack resistance
  • Applications where high-performance and optimized crypto operations are necessary for speed or memory efficiency
  • Projects dependent on actively maintained libraries with regular updates, community support, or compliance with industry standards

Pros & Cons

Pros

Public Domain Licensing

Code is released without any restrictions, allowing free use in any project with only optional acknowledgement, as explicitly stated in the README.

Educational Readability

Implementations are designed to be easy to read, making cryptographic algorithm internals accessible for learning without optimization complexities.

Test Vector Compliance

All algorithms have been tested against standard test vectors, ensuring correctness for educational reference and internal testing purposes.

No External Dependencies

Each algorithm comes as standalone source and header files with no inter-dependencies, simplifying compilation and integration into projects.

Cons

Lacks Cryptographic Security

Admitted in the README, implementations have no resistance to side-channel attacks and are not suitable for security-critical contexts, posing risks for production use.

Poor Performance

Prioritized for readability over optimization, resulting in inefficient code for speed and memory usage compared to production-grade libraries like OpenSSL.

No Active Maintenance

The project is static with no updates, bug fixes, or community support, which can be problematic for evolving cryptographic standards or long-term projects.

Frequently Asked Questions

Quick Stats

Stars2,011
Forks710
Contributors0
Open Issues18
Last commit5 years ago
CreatedSince 2012

Tags

#public-domain#educational#algorithm-reference#aes#cryptography

Built With

C
C++

Included in

C/C++70.6kCryptography6.8k
Auto-fetched 1 day ago

Related Projects

OpenSSLOpenSSL

General purpose TLS and crypto library

Stars30,032
Forks11,211
Last commit2 days ago
TinkTink

Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

Stars13,544
Forks1,184
Last commit2 years ago
xxHashxxHash

Extremely fast non-cryptographic hash algorithm

Stars10,980
Forks890
Last commit11 days ago
mbedTLSmbedTLS

An open source, portable, easy to use, readable and flexible TLS library, and reference implementation of the PSA Cryptography API. Releases are on a varying cadence, typically around 3 - 6 months between releases.

Stars6,610
Forks2,863
Last commit2 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub