



If you want to change the defaults for any of the uECC compile-time options (such as uECC_OPTIMIZATION_LEVEL), you must change them in your Makefile or similar so that uECC.c is compiled with the desired values (ie, compile uECC.c with -DuECC_OPTIMIZATION_LEVEL=3 or whatever).Should compile with any C/C++ compiler that supports stdint.h (this includes Visual Studio 2013).See uECC.h for documentation for each function. You can then use uECC just like any other Arduino library (uECC should show up in the Sketch=> Import Library submenu). Then just #include "uECC.h" to use the micro-ecc functions.įor use with Arduino, you can use the Library Manager to download micro-ecc ( Sketch=> Include Library=> Manage Libraries). I recommend just copying (or symlink) the uECC files into your project. Private keys are represented in the standard format. All functions except uECC_decompress() only accept uncompressed points use uECC_compress() and uECC_decompress() to convert between compressed and uncompressed point representations. Support for 5 standard curves: secp160r1, secp192r1, secp224r1, secp256r1, and secp256k1.Ĭompressed points are represented in the standard format as defined in uncompressed points are represented in standard format, but without the 0x04 prefix.Supports 8, 32, and 64-bit architectures.Written in C, with optional GCC inline assembly for AVR, ARM and Thumb platforms.Resistant to known side-channel attacks.The static version of micro-ecc (ie, where the curve was selected at compile-time) can be found in the "static" branch. A small and fast ECDH and ECDSA implementation for 8-bit, 32-bit, and 64-bit processors.
