mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
47 lines
1.6 KiB
Plaintext
47 lines
1.6 KiB
Plaintext
/**
|
|
* @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
|
|
*/
|