2020-02-06 11:15:42 +01:00
|
|
|
/**
|
|
|
|
* @defgroup pkg_libcose libcose for RIOT
|
|
|
|
* @ingroup pkg
|
|
|
|
* @brief Constrained node COSE library
|
|
|
|
* @see https://github.com/bergzand/libcose
|
|
|
|
*
|
|
|
|
* Usage
|
|
|
|
* -----
|
|
|
|
*
|
|
|
|
* Add as a package in the Makefile of your application:
|
|
|
|
*
|
|
|
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {.mk}
|
|
|
|
* USEPKG += libcose
|
|
|
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
*
|
|
|
|
* The main consumers of libcose are other libraries or system components, for
|
|
|
|
* example @ref sys_suit "SUIT".
|
|
|
|
*
|
|
|
|
* The use of the library itself [is described in the libcose
|
|
|
|
* documentation](https://bergzand.github.io/libcose/), and some example code
|
|
|
|
* can be found in
|
2023-05-06 07:48:58 +02:00
|
|
|
* [`tests/pkg/libcose/`](https://github.com/RIOT-OS/RIOT/tree/master/tests/pkg/libcose).
|
2020-02-06 11:15:42 +01:00
|
|
|
*
|
|
|
|
* Backends
|
|
|
|
* --------
|
|
|
|
*
|
|
|
|
* The libcose library does not implement cryptographic algorithms itself, but
|
|
|
|
* fans that out to other libraries (which are pulled into the dependency tree
|
|
|
|
* as packages) and exposes a consistent interface for the
|
|
|
|
* operations they provide.
|
|
|
|
*
|
|
|
|
* Backends are selected by any of those pseudomodules:
|
|
|
|
*
|
|
|
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {.mk}
|
|
|
|
* USEMODULE += libcose_crypt_hacl
|
|
|
|
* USEMODULE += libcose_crypt_monocypher
|
|
|
|
* USEMODULE += libcose_crypt_c25519
|
2021-06-10 12:36:16 +02:00
|
|
|
* USEMODULE += libcose_crypt_tinycrypt
|
2020-02-06 11:15:42 +01:00
|
|
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
*
|
|
|
|
* The selection of pseudomodules determines the available algorithms:
|
|
|
|
*
|
|
|
|
* * @ref pkg_hacl "HACL" and @ref pkg_monocypher "Monocypher" both provide ChaCha20-Poly1305 and Ed25519.
|
|
|
|
* * @ref pkg_c25519 "C25519" only provides the Ed25519 algorithm.
|
2021-06-10 12:36:16 +02:00
|
|
|
* * @ref pkg_tinycrypt "TINYCRYPT" provides AES-CCM-16-64-128, AES-CCM-16-128-128
|
|
|
|
* ECDSA and ES256 as well as EC NIST P-256 curve support.
|
2020-02-06 11:15:42 +01:00
|
|
|
*
|
2021-06-10 12:36:16 +02:00
|
|
|
* Some backend may conflict, others might be complementary.
|
2020-02-06 11:15:42 +01:00
|
|
|
*/
|