doc.txt 1.58 KB
/**
 * @defgroup pkg_micro_ecc   Micro-ECC for RIOT
 * @ingroup  pkg
 * @ingroup  sys_crypto
 * @brief    Micro-ECC for RIOT
 *
 * # Micro-ECC for RIOT
 * 
 * This port of Micro-ECC to RIOT is based on the Micro-ECC
 * [upstream](https://github.com/kmackay/micro-ecc) and adds `hwrng_read`
 * (provided by RIOT) as the default RNG function if it is available on the target
 * platform. This port also fixes a minor issue with unused variables in the
 * upstream code.
 * 
 * # Usage
 * 
 * ## Build
 * 
 * Add
 * ```Makefile
 * USEPKG += micro-ecc
 * ```
 * to your Makefile.
 * 
 * ## Choosing the right API
 * 
 * Before using the Micro-ECC library, you need to check the `Makefile.features`
 * of your target board to see if `periph_hwrng` is provided.
 * 
 * If it is provided, you may safely use `uECC_make_key` to generate ECDSA key
 * pairs and call `uECC_sign`/`uECC_verify` to sign/verify the ECDSA signatures.
 * 
 * If not, you cannot use `uECC_make_key` or `uECC_sign` APIs anymore. The ECDSA
 * keys have to be generated on a platform with HWRNG support (e.g., `native`) and
 * transferred to your target device. You need to use `uECC_sign_deterministic` to
 * perform ECDSA deterministic signing (standardized by RFC 6979). You can still
 * use `uECC_verify` to verify the signatures from both signing APIs.
 * 
 * **WARNING** Calling `uECC_make_key` and `uECC_sign` APIs on platforms without
 * HWRNG support will lead to compile failure.
 * 
 * Examples of using these uECC APIs can be found in the `test` folder of the
 * Micro-ECC upstream.
 *
 * @see     https://github.com/kmackay/micro-ecc
 */