A small, fast ECDH and ECDSA implementation in C for 8-bit, 32-bit, and 64-bit embedded processors.
micro-ecc is a compact, high-performance cryptographic library implementing Elliptic Curve Diffie-Hellman (ECDH) and Elliptic Curve Digital Signature Algorithm (ECDSA). It solves the need for secure key exchange and digital signatures on resource-constrained devices like microcontrollers and embedded systems, where traditional crypto libraries are too large or slow.
Embedded systems developers, IoT engineers, and firmware programmers working on AVR, ARM, or other low-power processors requiring cryptographic functionality.
Developers choose micro-ecc for its minimal code size, side-channel attack resistance, and support for multiple processor architectures—offering a reliable, portable alternative to heavier crypto libraries in constrained environments.
ECDH and ECDSA for 8-bit, 32-bit, and 64-bit processors.
Implements protections against timing and power analysis attacks, as highlighted in the README, ensuring robust security for embedded devices vulnerable to such threats.
Supports 8-bit AVR, 32-bit ARM/Thumb, and 64-bit processors with optional GCC inline assembly, offering performance tweaks for diverse hardware platforms.
Features small code size and no dynamic memory allocation, making it ideal for memory-constrained environments like microcontrollers, as stated in the key features.
Includes support for standard SECG curves (secp160r1 to secp256k1), ensuring interoperability with other cryptographic systems per the README.
Only provides ECDH and ECDSA implementations, missing other common functions like encryption, hashing, or protocol support, which may require additional libraries.
Requires specific GCC flags for optimal performance on platforms like ARM/Thumb and AVR, such as -fomit-frame-pointer, which can complicate setup for less experienced developers.
Lacks support for modern curves like Curve25519, limiting its relevance in applications that prefer contemporary cryptographic standards over the included SECG curves.
General purpose TLS and crypto library
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.
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.
Small portable AES128/192/256 in C
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.