2
0

Config.in 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. if PACKAGE_libopenssl
  2. comment "Build Options"
  3. config OPENSSL_OPTIMIZE_SPEED
  4. bool
  5. prompt "Enable optimization for speed instead of size"
  6. select OPENSSL_WITH_ASM
  7. help
  8. Enabling this option increases code size (around 20%) and
  9. performance. The increase in performance and size depends on the
  10. target CPU. EC and AES seem to benefit the most, with EC speed
  11. increased by 20%-50% (mipsel & x86).
  12. AES-GCM is supposed to be 3x faster on x86. YMMV.
  13. config OPENSSL_WITH_ASM
  14. bool
  15. default y
  16. prompt "Compile with optimized assembly code"
  17. depends on !arc
  18. help
  19. Disabling this option will reduce code size and performance.
  20. The increase in performance and size depends on the target
  21. CPU and on the algorithms being optimized. As of 1.1.0i*:
  22. Platform Pkg Inc. Algorithms where assembly is used - ~% Speed Increase
  23. aarch64 174K BN, aes, sha1, sha256, sha512, nist256, poly1305
  24. arm 152K BN, aes, sha1, sha256, sha512, nist256, poly1305
  25. i386 183K BN+147%, aes+300%, rc4+55%, sha1+160%, sha256+114%, sha512+270%, nist256+282%, poly1305+292%
  26. mipsel 1.5K BN+97%, aes+4%, sha1+94%, sha256+60%
  27. mips64 3.7K BN, aes, sha1, sha256, sha512, poly1305
  28. powerpc 20K BN, aes, sha1, sha256, sha512, poly1305
  29. x86_64 228K BN+220%, aes+173%, rc4+38%, sha1+40%, sha256+64%, sha512+31%, nist256+354%, poly1305+228%
  30. * Only most common algorithms shown. Your mileage may vary.
  31. BN (bignum) performance was measured using RSA sign/verify.
  32. config OPENSSL_WITH_SSE2
  33. bool
  34. default y if !TARGET_x86_legacy && !TARGET_x86_geode
  35. prompt "Enable use of x86 SSE2 instructions"
  36. depends on OPENSSL_WITH_ASM && i386
  37. help
  38. Use of SSE2 instructions greatly increase performance (up to
  39. 3x faster) with a minimum (~0.2%, or 23KB) increase in package
  40. size, but it will bring no benefit if your hardware does not
  41. support them, such as Geode GX and LX. In this case you may
  42. save 23KB by saying yes here. AMD Geode NX, and Intel
  43. Pentium 4 and above support SSE2.
  44. config OPENSSL_WITH_DEPRECATED
  45. bool
  46. default y
  47. prompt "Include deprecated APIs (See help for a list of packages that need this)"
  48. help
  49. Since openssl 1.1.x is still new to openwrt, some packages
  50. requiring this option do not list it as a requirement yet:
  51. * freeswitch-stable, freeswitch, python, python3, squid.
  52. config OPENSSL_NO_DEPRECATED
  53. bool
  54. default !OPENSSL_WITH_DEPRECATED
  55. config OPENSSL_WITH_ERROR_MESSAGES
  56. bool
  57. prompt "Include error messages"
  58. help
  59. This option aids debugging, but increases package size and
  60. memory usage.
  61. comment "Protocol Support"
  62. config OPENSSL_WITH_TLS13
  63. bool
  64. default y
  65. prompt "Enable support for TLS 1.3"
  66. select OPENSSL_WITH_EC
  67. help
  68. TLS 1.3 is the newest version of the TLS specification.
  69. It aims:
  70. * to increase the overall security of the protocol,
  71. removing outdated algorithms, and encrypting more of the
  72. protocol;
  73. * to increase performance by reducing the number of round-trips
  74. when performing a full handshake.
  75. It increases package size by ~4KB.
  76. config OPENSSL_WITH_DTLS
  77. bool
  78. prompt "Enable DTLS support"
  79. help
  80. Datagram Transport Layer Security (DTLS) provides TLS-like security
  81. for datagram-based (UDP, DCCP, CAPWAP, SCTP & SRTP) applications.
  82. config OPENSSL_WITH_NPN
  83. bool
  84. default y
  85. prompt "Enable NPN support"
  86. help
  87. NPN is a TLS extension, obsoleted and replaced with ALPN,
  88. used to negotiate SPDY, and HTTP/2.
  89. config OPENSSL_WITH_SRP
  90. bool
  91. default y
  92. prompt "Enable SRP support"
  93. help
  94. The Secure Remote Password protocol (SRP) is an augmented
  95. password-authenticated key agreement (PAKE) protocol, specifically
  96. designed to work around existing patents.
  97. config OPENSSL_WITH_CMS
  98. bool
  99. default y
  100. prompt "Enable CMS (RFC 5652) support"
  101. help
  102. Cryptographic Message Syntax (CMS) is used to digitally sign,
  103. digest, authenticate, or encrypt arbitrary message content.
  104. comment "Algorithm Selection"
  105. config OPENSSL_WITH_EC
  106. bool
  107. default y
  108. prompt "Enable elliptic curve support"
  109. help
  110. Elliptic-curve cryptography (ECC) is an approach to public-key
  111. cryptography based on the algebraic structure of elliptic curves
  112. over finite fields. ECC requires smaller keys compared to non-ECC
  113. cryptography to provide equivalent security.
  114. config OPENSSL_WITH_EC2M
  115. bool
  116. depends on OPENSSL_WITH_EC
  117. prompt "Enable ec2m support"
  118. help
  119. This option enables the more efficient, yet less common, binary
  120. field elliptic curves.
  121. config OPENSSL_WITH_CHACHA_POLY1305
  122. bool
  123. default y
  124. prompt "Enable ChaCha20-Poly1305 ciphersuite support"
  125. help
  126. ChaCha20-Poly1305 is an AEAD ciphersuite with 256-bit keys,
  127. combining ChaCha stream cipher with Poly1305 MAC.
  128. It is 3x faster than AES, when not using a CPU with AES-specific
  129. instructions, as is the case of most embedded devices.
  130. config OPENSSL_WITH_PSK
  131. bool
  132. default y
  133. prompt "Enable PSK support"
  134. help
  135. Build support for Pre-Shared Key based cipher suites.
  136. comment "Less commonly used build options"
  137. config OPENSSL_WITH_ARIA
  138. bool
  139. prompt "Enable ARIA support"
  140. help
  141. ARIA is a block cipher developed in South Korea, based on AES.
  142. config OPENSSL_WITH_CAMELLIA
  143. bool
  144. prompt "Enable Camellia cipher support"
  145. help
  146. Camellia is a bock cipher with security levels and processing
  147. abilities comparable to AES.
  148. config OPENSSL_WITH_IDEA
  149. bool
  150. prompt "Enable IDEA cipher support"
  151. help
  152. IDEA is a block cipher with 128-bit keys.
  153. config OPENSSL_WITH_SEED
  154. bool
  155. prompt "Enable SEED cipher support"
  156. help
  157. SEED is a block cipher with 128-bit keys broadly used in
  158. South Korea, but seldom found elsewhere.
  159. config OPENSSL_WITH_SM234
  160. bool
  161. prompt "Enable SM2/3/4 algorithms support"
  162. help
  163. These algorithms are a set of "Commercial Cryptography"
  164. algorithms approved for use in China.
  165. * SM2 is an EC algorithm equivalent to ECDSA P-256
  166. * SM3 is a hash function equivalent to SHA-256
  167. * SM4 is a 128-block cipher equivalent to AES-128
  168. config OPENSSL_WITH_BLAKE2
  169. bool
  170. prompt "Enable BLAKE2 digest support"
  171. help
  172. BLAKE2 is a cryptographic hash function based on the ChaCha
  173. stream cipher.
  174. config OPENSSL_WITH_MDC2
  175. bool
  176. prompt "Enable MDC2 digest support"
  177. config OPENSSL_WITH_WHIRLPOOL
  178. bool
  179. prompt "Enable Whirlpool digest support"
  180. config OPENSSL_WITH_COMPRESSION
  181. bool
  182. prompt "Enable compression support"
  183. help
  184. TLS compression is not recommended, as it is deemed insecure.
  185. The CRIME attack exploits this weakness.
  186. Even with this option turned on, it is disabled by default, and the
  187. application must explicitly turn it on.
  188. config OPENSSL_WITH_RFC3779
  189. bool
  190. prompt "Enable RFC3779 support (BGP)"
  191. help
  192. RFC 3779 defines two X.509 v3 certificate extensions. The first
  193. binds a list of IP address blocks, or prefixes, to the subject of a
  194. certificate. The second binds a list of autonomous system
  195. identifiers to the subject of a certificate. These extensions may be
  196. used to convey the authorization of the subject to use the IP
  197. addresses and autonomous system identifiers contained in the
  198. extensions.
  199. comment "Engine/Hardware Support"
  200. config OPENSSL_ENGINE
  201. bool "Enable engine support"
  202. help
  203. This enables alternative cryptography implementations,
  204. most commonly for interfacing with external crypto devices,
  205. or supporting new/alternative ciphers and digests.
  206. config OPENSSL_ENGINE_CRYPTO
  207. bool
  208. select OPENSSL_ENGINE
  209. select PACKAGE_kmod-cryptodev
  210. prompt "Acceleration support through /dev/crypto"
  211. help
  212. This enables use of hardware acceleration through OpenBSD
  213. Cryptodev API (/dev/crypto) interface.
  214. You must install kmod-cryptodev (under Kernel modules, Cryptographic
  215. API modules) for /dev/crypto to show up and use hardware
  216. acceleration; otherwise it falls back to software.
  217. config OPENSSL_WITH_ASYNC
  218. bool
  219. prompt "Enable asynchronous jobs support"
  220. depends on OPENSSL_ENGINE && USE_GLIBC
  221. help
  222. Enables async-aware applications to be able to use OpenSSL to
  223. initiate crypto operations asynchronously. In order to work
  224. this will require the presence of an async capable engine.
  225. config OPENSSL_WITH_GOST
  226. bool
  227. prompt "Prepare library for GOST engine"
  228. depends on OPENSSL_ENGINE
  229. help
  230. This option prepares the library to accept engine support
  231. for Russian GOST crypto algorithms.
  232. The gost engine is not included in standard openwrt feeds.
  233. To build such engine yourself, see:
  234. https://github.com/gost-engine/engine
  235. endif