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