blob: 933c691796be2bfe5357e8647b23090f7e95fc46 [file] [view]
micro-ecc
==========
A small ECDH and ECDSA implementation for 8-bit, 32-bit, and 64-bit processors.
Features
--------
* Resistant to known side-channel attacks.
* Written in C, with optional inline assembly for AVR, ARM and Thumb platforms.
* Support for 3 standard curves: secp160r1, secp192r1, and secp256r1.
* BSD 2-clause license.
Usage Notes
-----------
#### Using the Code ####
I recommend just copying (or symlink) uECC.h and uECC.c into your project. Then just `#include "uECC.h"` to use the micro-ecc functions.
See uECC.h for documentation for each function.
#### Compilation Notes ####
* When compiling for a Thumb-1 platform with inline assembly enabled (ie, `uECC_ASM` is defined to `uECC_asm_small` or `uECC_asm_fast`), you must use the `-fomit-frame-pointer` GCC option (this is enabled by default when compiling with `-O1` or higher).
* When compiling for AVR with `uECC_ASM` defined to `uECC_asm_fast`, you must have optimizations enabled (compile with `-O1` or higher).