From 277f85c21ae0ede4e15e66cbd801b9fb502531df Mon Sep 17 00:00:00 2001 From: Andreas Schultz Date: Sat, 20 Aug 2016 12:52:42 +0200 Subject: [PATCH] cyassl: make CyaSSL/WolfSSL more configurable The default configuration might not be suitable for every use case. Add options to enable/disable additional options. Signed-off-by: Andreas Schultz --- package/libs/cyassl/Config.in | 49 ++++++++++++++++++++++++ package/libs/cyassl/Makefile | 70 ++++++++++++++++++++++++++++++++++- 2 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 package/libs/cyassl/Config.in diff --git a/package/libs/cyassl/Config.in b/package/libs/cyassl/Config.in new file mode 100644 index 0000000000..e366ae51e3 --- /dev/null +++ b/package/libs/cyassl/Config.in @@ -0,0 +1,49 @@ +menu "Configuration" + depends on PACKAGE_libcyassl + +config CYASSL_HAS_AES_CCM + bool "Include AES-CCM support" + default y + +config CYASSL_HAS_AES_GCM + bool "Include AES-GCM support" + default y + +config CYASSL_HAS_CHACHA + bool "Include ChaCha cipher suite support" + default y + +config CYASSL_HAS_ECC + bool "Include ECC (Elliptic Curve Cryptography) support" + default y + +config CYASSL_HAS_DH + bool "Include DH (Diffie-Hellman) support" + default y + +config CYASSL_HAS_ARC4 + bool "Include ARC4 support" + default n + +config CYASSL_HAS_DES3 + bool "Include DES3 (Tripple-DES) support" + default n + +config CYASSL_HAS_PSK + bool "Include PKS (Pre Share Key) support" + default n + +config CYASSL_HAS_DTLS + bool "Include DTLS support" + default n + +config CYASSL_HAS_ECC25519 + bool "Include ECC Curve 22519 support" + depends on CYASSL_HAS_ECC + default n + +config CYASSL_HAS_POLY_1305 + bool "Include Poly-1305 support" + default n + +endmenu diff --git a/package/libs/cyassl/Makefile b/package/libs/cyassl/Makefile index 4e46751897..674bf27342 100644 --- a/package/libs/cyassl/Makefile +++ b/package/libs/cyassl/Makefile @@ -35,6 +35,10 @@ CyaSSL is an SSL library optimized for small footprint, both on disk and for memory use. endef +define Package/libcyassl/config + source "$(SOURCE)/Config.in" +endef + TARGET_CFLAGS += $(FPIC) CONFIGURE_ARGS += \ @@ -42,9 +46,69 @@ CONFIGURE_ARGS += \ --enable-opensslextra \ --enable-sni \ --enable-stunnel \ - --enable-ecc \ --disable-examples +ifeq ($(CONFIG_IPV6),y) +CONFIGURE_ARGS += \ + --enable-ipv6 +endif + +ifeq ($(CONFIG_CYASSL_HAS_AES_CCM),y) +CONFIGURE_ARGS += \ + --enable-aesccm +endif + +ifeq ($(CONFIG_CYASSL_HAS_AES_GCM),y) +CONFIGURE_ARGS += \ + --enable-aesgcm +endif + +ifeq ($(CONFIG_CYASSL_HAS_CHACHA),y) +CONFIGURE_ARGS += \ + --enable-chacha +endif + +ifeq ($(CONFIG_CYASSL_HAS_ECC),y) +CONFIGURE_ARGS += \ + --enable-ecc \ + --enable-supportedcurves +endif + +ifeq ($(CONFIG_CYASSL_HAS_DH),y) +CONFIGURE_ARGS += \ + --enable-dh +endif + +ifeq ($(CONFIG_CYASSL_HAS_ARC4),n) +CONFIGURE_ARGS += \ + --disable-arc4 +endif + +ifeq ($(CONFIG_CYASSL_HAS_DES3),y) +CONFIGURE_ARGS += \ + --disable-des3 +endif + +ifeq ($(CONFIG_CYASSL_HAS_PSK),y) +CONFIGURE_ARGS += \ + --enable-psk +endif + +ifeq ($(CONFIG_CYASSL_HAS_DTLS),y) +CONFIGURE_ARGS += \ + --enable-dtls +endif + +ifeq ($(CONFIG_CYASSL_HAS_ECC25519),y) +CONFIGURE_ARGS += \ + --enable-ecc25519 +endif + +ifeq ($(CONFIG_CYASSL_HAS_POLY1305),y) +CONFIGURE_ARGS += \ + --enable-poly1305 +endif + #ifneq ($(CONFIG_TARGET_x86),) # CONFIGURE_ARGS += --enable-intelasm #endif @@ -53,13 +117,15 @@ CONFIGURE_ARGS += \ #endif define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/include + $(INSTALL_DIR) $(1)/usr/include $(1)/usr/lib/pkgconfig $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/ $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/libwolfssl.{so*,la} $(1)/usr/lib/ ln -s libwolfssl.so $(1)/usr/lib/libcyassl.so ln -s libwolfssl.la $(1)/usr/lib/libcyassl.la + + $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig endef define Package/libcyassl/install