Cifra: Initial import of package

This commit is contained in:
Koen Zandberg 2019-09-05 10:02:14 +02:00
parent 647b0cdd29
commit 4100a1ee80
No known key found for this signature in database
GPG Key ID: 0895A893E6D2985B
6 changed files with 148 additions and 0 deletions

11
pkg/cifra/Makefile Normal file
View File

@ -0,0 +1,11 @@
PKG_NAME=cifra
PKG_URL=https://github.com/ctz/cifra
PKG_VERSION=cfa6df9ca0007abe3c70409d02b3779ac1742297
PKG_LICENSE=CC-0
.PHONY: all
all:
"$(MAKE)" -C $(PKG_BUILDDIR)/src -f $(CURDIR)/Makefile.cifra
include $(RIOTBASE)/pkg/pkg.mk

30
pkg/cifra/Makefile.cifra Normal file
View File

@ -0,0 +1,30 @@
MODULE := cifra
CFLAGS += -Wno-pedantic
SRC += aes.c
SRC += sha256.c
SRC += sha512.c
SRC += chash.c
SRC += hmac.c
SRC += pbkdf2.c
SRC += modes.c
SRC += eax.c
SRC += gf128.c
SRC += blockwise.c
SRC += cmac.c
SRC += salsa20.c
SRC += chacha20.c
SRC += curve25519.c
SRC += gcm.c
SRC += cbcmac.c
SRC += ccm.c
SRC += sha3.c
SRC += sha1.c
SRC += poly1305.c
SRC += norx.c
SRC += chacha20poly1305.c
SRC += drbg.c
SRC += ocb.c
include $(RIOTBASE)/Makefile.base

View File

@ -0,0 +1,2 @@
INCLUDES += -I$(PKGDIRBASE)/cifra/src
INCLUDES += -I$(PKGDIRBASE)/cifra/src/ext

26
pkg/cifra/doc.txt Normal file
View File

@ -0,0 +1,26 @@
/**
* @defgroup pkg_cifra Cifra cryptographic library
* @ingroup pkg
* @brief Provides the Cifra cryptographic library.
*
* # Cifra RIOT package
*
* Cifra is a collection of cryptographic primitives targeted at embedded use.
*
* You can find the API and more information
* [here](https://cifra.readthedocs.org/en/latest/)
*
* ## Requirements
*
* @note Cifra only supports 32bit platforms.
*
* ## Usage
*
* Just add it as a package in your application:
*
* ```makefile
* USEPKG += cifra
* ```
*
* @see https://github.com/ctz/cifra
*/

View File

@ -0,0 +1,53 @@
From 16a6d98096f5cc15a5716b665341fd22d04ec426 Mon Sep 17 00:00:00 2001
From: Koen Zandberg <koen@bergzand.net>
Date: Thu, 5 Sep 2019 09:45:50 +0200
Subject: [PATCH 1/2] Replace typeof with __typeof__ for compatibility
---
src/ext/handy.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/ext/handy.h b/src/ext/handy.h
index a9b2d9d..d7d9dd4 100644
--- a/src/ext/handy.h
+++ b/src/ext/handy.h
@@ -15,14 +15,14 @@
/* Normal MIN/MAX macros. Evaluate argument expressions only once. */
#ifndef MIN
#define MIN(x, y) \
- ({ typeof (x) __x = (x); \
- typeof (y) __y = (y); \
+ ({ __typeof__ (x) __x = (x); \
+ __typeof__ (y) __y = (y); \
__x < __y ? __x : __y; })
#endif
#ifndef MAX
#define MAX(x, y) \
- ({ typeof (x) __x = (x); \
- typeof (y) __y = (y); \
+ ({ __typeof__ (x) __x = (x); \
+ __typeof__ (y) __y = (y); \
__x > __y ? __x : __y; })
#endif
@@ -30,7 +30,7 @@
#ifndef SWAP
#define SWAP(x, y) \
do { \
- typeof (x) __tmp = (x); \
+ __typeof__ (x) __tmp = (x); \
(x) = (y); \
(y) = __tmp; \
} while (0)
@@ -48,7 +48,7 @@
/** Error: return.
*
* If the expression fails, return the error from this function. */
-#define ER(expr) do { typeof (expr) err_ = (expr); if (err_) return err_; } while (0)
+#define ER(expr) do { __typeof__ (expr) err_ = (expr); if (err_) return err_; } while (0)
/** Error: goto.
*
--
2.21.0

View File

@ -0,0 +1,26 @@
From 4d3f2070b013036f0d936cda0b9262e8a8445b2e Mon Sep 17 00:00:00 2001
From: Koen Zandberg <koen@bergzand.net>
Date: Thu, 5 Sep 2019 09:46:10 +0200
Subject: [PATCH 2/2] replace struct initializer for c99 compatibility
---
src/ocb.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/ocb.c b/src/ocb.c
index 3d244d4..fb6d822 100644
--- a/src/ocb.c
+++ b/src/ocb.c
@@ -163,7 +163,8 @@ static void ocb_hash_block(void *vctx, const uint8_t *block)
static void ocb_process_header(ocb *o, const uint8_t *header, size_t nheader,
uint8_t out[BLOCK])
{
- ocb_hash ctx = { o };
+ ocb_hash ctx = { 0 };
+ ctx.o = o;
ocb_hash_init(&ctx);
uint8_t partial[BLOCK];
--
2.21.0