aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs/wolfssl
diff options
context:
space:
mode:
Diffstat (limited to 'package/libs/wolfssl')
-rw-r--r--package/libs/wolfssl/Config.in48
-rw-r--r--package/libs/wolfssl/Makefile140
-rw-r--r--package/libs/wolfssl/patches/400-additional_compatibility.patch12
3 files changed, 200 insertions, 0 deletions
diff --git a/package/libs/wolfssl/Config.in b/package/libs/wolfssl/Config.in
new file mode 100644
index 0000000000..7e8a4b6cee
--- /dev/null
+++ b/package/libs/wolfssl/Config.in
@@ -0,0 +1,48 @@
+if PACKAGE_libwolfssl
+
+config WOLFSSL_HAS_AES_CCM
+ bool "Include AES-CCM support"
+ default n
+
+config WOLFSSL_HAS_AES_GCM
+ bool "Include AES-GCM support"
+ default n
+
+config WOLFSSL_HAS_CHACHA
+ bool "Include ChaCha cipher suite support"
+ default n
+
+config WOLFSSL_HAS_ECC
+ bool "Include ECC (Elliptic Curve Cryptography) support"
+ default y
+
+config WOLFSSL_HAS_DH
+ bool "Include DH (Diffie-Hellman) support"
+ default n
+
+config WOLFSSL_HAS_ARC4
+ bool "Include ARC4 support"
+ default n
+
+config WOLFSSL_HAS_DES3
+ bool "Include DES3 (Tripple-DES) support"
+ default n
+
+config WOLFSSL_HAS_PSK
+ bool "Include PKS (Pre Share Key) support"
+ default n
+
+config WOLFSSL_HAS_DTLS
+ bool "Include DTLS support"
+ default n
+
+config WOLFSSL_HAS_ECC25519
+ bool "Include ECC Curve 22519 support"
+ depends on WOLFSSL_HAS_ECC
+ default n
+
+config WOLFSSL_HAS_POLY_1305
+ bool "Include Poly-1305 support"
+ default n
+
+endif
diff --git a/package/libs/wolfssl/Makefile b/package/libs/wolfssl/Makefile
new file mode 100644
index 0000000000..e8498162ef
--- /dev/null
+++ b/package/libs/wolfssl/Makefile
@@ -0,0 +1,140 @@
+#
+# Copyright (C) 2006-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=wolfssl
+PKG_VERSION:=3.10.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip
+PKG_SOURCE_URL:=https://www.wolfssl.com/
+PKG_HASH:=66f7f2a8b8ee37d6b4beab3cb0dcb6a6980fd4674373bfd3bf1214b9d0d2c02e
+
+PKG_FIXUP:=libtool
+PKG_INSTALL:=1
+PKG_USE_MIPS16:=0
+PKG_BUILD_PARALLEL:=1
+PKG_LICENSE:=GPL-2.0+
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libwolfssl
+ SECTION:=libs
+ SUBMENU:=SSL
+ CATEGORY:=Libraries
+ TITLE:=wolfSSL library
+ URL:=http://www.wolfssl.com/
+ MENU:=1
+ PROVIDES:=libcyassl
+endef
+
+define Package/libwolfssl/description
+wolfSSL (formerly CyaSSL) is an SSL library optimized for small
+footprint, both on disk and for memory use.
+endef
+
+define Package/libwolfssl/config
+ source "$(SOURCE)/Config.in"
+endef
+
+TARGET_CFLAGS += $(FPIC)
+
+# --enable-stunnel needed for OpenSSL API compatibility bits
+CONFIGURE_ARGS += \
+ --enable-opensslextra \
+ --enable-sni \
+ --enable-stunnel \
+ --disable-examples
+
+ifeq ($(CONFIG_IPV6),y)
+CONFIGURE_ARGS += \
+ --enable-ipv6
+endif
+
+ifeq ($(CONFIG_WOLFSSL_HAS_AES_CCM),y)
+CONFIGURE_ARGS += \
+ --enable-aesccm
+endif
+
+ifeq ($(CONFIG_WOLFSSL_HAS_AES_GCM),y)
+CONFIGURE_ARGS += \
+ --enable-aesgcm
+endif
+
+ifeq ($(CONFIG_WOLFSSL_HAS_CHACHA),y)
+CONFIGURE_ARGS += \
+ --enable-chacha
+endif
+
+ifeq ($(CONFIG_WOLFSSL_HAS_ECC),y)
+CONFIGURE_ARGS += \
+ --enable-ecc \
+ --enable-supportedcurves
+endif
+
+ifeq ($(CONFIG_WOLFSSL_HAS_DH),y)
+CONFIGURE_ARGS += \
+ --enable-dh
+endif
+
+ifeq ($(CONFIG_WOLFSSL_HAS_ARC4),n)
+CONFIGURE_ARGS += \
+ --disable-arc4
+endif
+
+ifeq ($(CONFIG_WOLFSSL_HAS_DES3),y)
+CONFIGURE_ARGS += \
+ --disable-des3
+endif
+
+ifeq ($(CONFIG_WOLFSSL_HAS_PSK),y)
+CONFIGURE_ARGS += \
+ --enable-psk
+endif
+
+ifeq ($(CONFIG_WOLFSSL_HAS_DTLS),y)
+CONFIGURE_ARGS += \
+ --enable-dtls
+endif
+
+ifeq ($(CONFIG_WOLFSSL_HAS_ECC25519),y)
+CONFIGURE_ARGS += \
+ --enable-ecc25519
+endif
+
+ifeq ($(CONFIG_WOLFSSL_HAS_POLY1305),y)
+CONFIGURE_ARGS += \
+ --enable-poly1305
+endif
+
+#ifneq ($(CONFIG_TARGET_x86),)
+# CONFIGURE_ARGS += --enable-intelasm
+#endif
+#ifneq ($(CONFIG_TARGET_x86_64),)
+# CONFIGURE_ARGS += --enable-intelasm
+#endif
+
+define Build/InstallDev
+ $(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/libwolfssl/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libwolfssl.so* $(1)/usr/lib/
+ ln -s libwolfssl.so $(1)/usr/lib/libcyassl.so
+endef
+
+$(eval $(call BuildPackage,libwolfssl))
diff --git a/package/libs/wolfssl/patches/400-additional_compatibility.patch b/package/libs/wolfssl/patches/400-additional_compatibility.patch
new file mode 100644
index 0000000000..1464e9d2a8
--- /dev/null
+++ b/package/libs/wolfssl/patches/400-additional_compatibility.patch
@@ -0,0 +1,12 @@
+--- a/cyassl/openssl/ssl.h
++++ b/cyassl/openssl/ssl.h
+@@ -28,6 +28,9 @@
+ #define CYASSL_OPENSSL_H_
+
+ #include <cyassl/ssl.h>
++#ifndef HAVE_SNI
++#undef CYASSL_SNI_HOST_NAME
++#endif
+ #include <wolfssl/openssl/ssl.h>
+
+ #endif