diff options
Diffstat (limited to 'package/libs/wolfssl')
-rw-r--r-- | package/libs/wolfssl/Config.in | 48 | ||||
-rw-r--r-- | package/libs/wolfssl/Makefile | 140 | ||||
-rw-r--r-- | package/libs/wolfssl/patches/400-additional_compatibility.patch | 12 |
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 |