mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
c25519: Initial support for c25519 package
c25519[1] is a library optimized for embedded applications handling ed25519 signing and x25519 crypto. It uses significantly less memory and flash compared to TweetNaCl and is significantly faster when used on a samr21-xpro [1]: https://www.dlbeer.co.nz/oss/c25519.html
This commit is contained in:
parent
e83ea659c8
commit
6d8e18b57e
36
pkg/c25519/Makefile
Normal file
36
pkg/c25519/Makefile
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
PKG_NAME = c25519
|
||||||
|
PKG_URL = https://www.dlbeer.co.nz/downloads
|
||||||
|
PKG_VERSION = 2017-10-05
|
||||||
|
PKG_EXT = zip
|
||||||
|
PKG_LICENSE = PD
|
||||||
|
PKG_SHA512 = dbfb4285837ab2ea3d99c448b22877cc7a139ccbaebb1de367e2bec1fd562fe629b389d86603915448078b8fd7e631c8fc9a7d126eb889a1ba0c17611369b190
|
||||||
|
|
||||||
|
PKG_BUILDDIR ?= $(PKGDIRBASE)/$(PKG_NAME)
|
||||||
|
PKG_ZIPFILE = $(PKGDIRBASE)/$(PKG_NAME)-$(PKG_VERSION).$(PKG_EXT)
|
||||||
|
|
||||||
|
ifneq ($(RIOTBASE),)
|
||||||
|
include $(RIOTBASE)/Makefile.base
|
||||||
|
endif
|
||||||
|
|
||||||
|
.PHONY: all clean distclean
|
||||||
|
|
||||||
|
prepare: $(PKG_BUILDDIR)/
|
||||||
|
|
||||||
|
all: $(PKG_BUILDDIR)/
|
||||||
|
"$(MAKE)" -C $(PKG_BUILDDIR)/src -f $(CURDIR)/Makefile.c25519
|
||||||
|
|
||||||
|
$(PKG_BUILDDIR)/: $(PKGDIRBASE)/$(PKG_NAME)-$(PKG_VERSION).$(PKG_EXT)
|
||||||
|
test "$(PKG_SHA512) $(PKG_ZIPFILE)" = "$$(sha512sum "${PKG_ZIPFILE}")"
|
||||||
|
$(Q)$(UNZIP_HERE) -D -d $(PKGDIRBASE) $<
|
||||||
|
|
||||||
|
$(PKG_ZIPFILE):
|
||||||
|
mkdir -p $(PKGDIRBASE)
|
||||||
|
$(Q)$(DOWNLOAD_TO_FILE) $@ $(PKG_URL)/$(PKG_NAME)-$(PKG_VERSION).$(PKG_EXT)
|
||||||
|
|
||||||
|
clean::
|
||||||
|
# Reset package to checkout state.
|
||||||
|
rm -rf $(PKG_BUILDDIR)
|
||||||
|
|
||||||
|
distclean::
|
||||||
|
rm -rf $(PKG_BUILDDIR) $(PKGDIRBASE)/$(PKG_NAME)-$(PKG_VERSION).$(PKG_EXT)
|
||||||
|
rm -rf $(PKG_SHAFILE)
|
11
pkg/c25519/Makefile.c25519
Normal file
11
pkg/c25519/Makefile.c25519
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
MODULE := c25519
|
||||||
|
|
||||||
|
SRC += c25519.c
|
||||||
|
SRC += ed25519.c
|
||||||
|
SRC += edsign.c
|
||||||
|
SRC += f25519.c
|
||||||
|
SRC += fprime.c
|
||||||
|
SRC += morph25519.c
|
||||||
|
SRC += sha512.c
|
||||||
|
|
||||||
|
include $(RIOTBASE)/Makefile.base
|
1
pkg/c25519/Makefile.include
Normal file
1
pkg/c25519/Makefile.include
Normal file
@ -0,0 +1 @@
|
|||||||
|
INCLUDES += -I$(PKGDIRBASE)/c25519/src
|
36
pkg/c25519/doc.txt
Normal file
36
pkg/c25519/doc.txt
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/**
|
||||||
|
* @defgroup pkg_c25519 C25519 cryptographic library
|
||||||
|
* @ingroup pkg
|
||||||
|
* @ingroup sys
|
||||||
|
* @brief Curve25519 and Ed25519 for low-memory systems
|
||||||
|
*
|
||||||
|
* This package contains portable public-domain implementations of Daniel J.
|
||||||
|
* Bernstein's Curve255191 Diffie-Hellman function, and of the Ed25519
|
||||||
|
* signature system. The memory consumption is low enough that they could be
|
||||||
|
* reasonably considered for most microcontroller applications. In particular,
|
||||||
|
* Curve25519 scalar multiplication uses less than half a kB of peak stack
|
||||||
|
* usage.
|
||||||
|
*
|
||||||
|
* ## Requirements
|
||||||
|
*
|
||||||
|
* C25519 requires around 1K of stack, so beware that you're allocating at
|
||||||
|
* least `THREAD_STACKSIZE_DEFAULT + 1K` bytes.
|
||||||
|
*
|
||||||
|
* You can do it easily by adding:
|
||||||
|
*
|
||||||
|
* ```makefile
|
||||||
|
* CFLAGS += '-DTHREAD_STACKSIZE_MAIN=(THREAD_STACKSIZE_DEFAULT + 1024)'
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* to your makefile.
|
||||||
|
*
|
||||||
|
* ## Usage
|
||||||
|
*
|
||||||
|
* Just add it as a package in your application:
|
||||||
|
*
|
||||||
|
* ```makefile
|
||||||
|
* USEPKG += c25519
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @see https://www.dlbeer.co.nz/oss/c25519.html
|
||||||
|
*/
|
Loading…
Reference in New Issue
Block a user