You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
2.7 KiB

  1. #
  2. # Copyright (C) 2009-2016 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. PKG_NAME:=libsodium
  9. PKG_VERSION:=1.0.12
  10. PKG_RELEASE:=1
  11. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
  12. PKG_SOURCE_URL:=https://download.libsodium.org/libsodium/releases \
  13. https://github.com/jedisct1/libsodium/releases/download/$(PKG_VERSION)
  14. PKG_HASH:=b8648f1bb3a54b0251cf4ffa4f0d76ded13977d4fa7517d988f4c902dd8e2f95
  15. PKG_FIXUP:=libtool autoreconf
  16. PKG_USE_MIPS16:=0
  17. PKG_INSTALL:=1
  18. PKG_MAINTAINER:=Damiano Renfer <damiano.renfer@gmail.com>
  19. PKG_LICENSE:=ISC
  20. include $(INCLUDE_DIR)/package.mk
  21. define Package/libsodium
  22. SECTION:=libs
  23. CATEGORY:=Libraries
  24. TITLE:=P(ortable|ackageable) NaCl-based crypto library
  25. URL:=https://github.com/jedisct1/libsodium
  26. MAINTAINER:=Damiano Renfer <damiano.renfer@gmail.com>
  27. endef
  28. define Package/libsodium/description
  29. NaCl (pronounced "salt") is a new easy-to-use high-speed software library for network communication, encryption, decryption, signatures, etc.
  30. NaCl's goal is to provide all of the core operations needed to build higher-level cryptographic tools.
  31. Sodium is a portable, cross-compilable, installable, packageable fork of NaCl (based on the latest released upstream version nacl-20110221), with a compatible API.
  32. The design choices, particularly in regard to the Curve25519 Diffie-Hellman function, emphasize security (whereas NIST curves emphasize "performance" at the cost of security), and "magic constants" in NaCl/Sodium have clear rationales.
  33. The same cannot be said of NIST curves, where the specific origins of certain constants are not described by the standards.
  34. And despite the emphasis on higher security, primitives are faster across-the-board than most implementations of the NIST standards.
  35. endef
  36. define Package/libsodium/config
  37. menu "Configuration"
  38. depends on PACKAGE_libsodium
  39. config LIBSODIUM_MINIMAL
  40. bool "Compile only what is required for the high-level API (no aes128ctr), should be fine in most cases."
  41. default y
  42. endmenu
  43. endef
  44. CONFIGURE_ARGS+= \
  45. --disable-ssp \
  46. $(if $(CONFIG_LIBSODIUM_MINIMAL),--enable-minimal=yes,--enable-minimal=no)
  47. define Build/InstallDev
  48. $(INSTALL_DIR) $(1)/usr/include/sodium
  49. $(CP) $(PKG_INSTALL_DIR)/usr/include/sodium.h $(1)/usr/include
  50. $(CP) $(PKG_INSTALL_DIR)/usr/include/sodium/*.h $(1)/usr/include/sodium
  51. $(INSTALL_DIR) $(1)/usr/lib
  52. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsodium.{a,so*} $(1)/usr/lib
  53. $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
  54. $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libsodium.pc $(1)/usr/lib/pkgconfig/
  55. endef
  56. define Package/libsodium/install
  57. $(INSTALL_DIR) $(1)/usr/lib
  58. $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsodium.so.* $(1)/usr/lib/
  59. endef
  60. $(eval $(call BuildPackage,libsodium))