Config.in 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. if PACKAGE_libopenssl
  2. comment "Build Options"
  3. config OPENSSL_OPTIMIZE_SPEED
  4. bool
  5. default y if x86_64 || i386
  6. prompt "Enable optimization for speed instead of size"
  7. select OPENSSL_WITH_ASM
  8. help
  9. Enabling this option increases code size and performance.
  10. The increase in performance and size depends on the
  11. target CPU. EC and AES seem to benefit the most.
  12. config OPENSSL_WITH_ASM
  13. bool
  14. default y if !SMALL_FLASH || !arm
  15. prompt "Compile with optimized assembly code"
  16. depends on !arc
  17. help
  18. Disabling this option will reduce code size and performance.
  19. The increase in performance and size depends on the target
  20. CPU and on the algorithms being optimized.
  21. config OPENSSL_WITH_SSE2
  22. bool
  23. default y if !TARGET_x86_legacy && !TARGET_x86_geode
  24. prompt "Enable use of x86 SSE2 instructions"
  25. depends on OPENSSL_WITH_ASM && i386
  26. help
  27. Use of SSE2 instructions greatly increase performance with a
  28. minimum increase in package size, but it will bring no benefit
  29. if your hardware does not support them, such as Geode GX and LX.
  30. AMD Geode NX, and Intel Pentium 4 and above support SSE2.
  31. config OPENSSL_WITH_DEPRECATED
  32. bool
  33. default y
  34. prompt "Include deprecated APIs"
  35. help
  36. This drops all deprecated API, including engine support.
  37. config OPENSSL_NO_DEPRECATED
  38. bool
  39. default !OPENSSL_WITH_DEPRECATED
  40. config OPENSSL_WITH_ERROR_MESSAGES
  41. bool
  42. default y if !SMALL_FLASH && !LOW_MEMORY_FOOTPRINT
  43. prompt "Include error messages"
  44. help
  45. This option aids debugging, but increases package size and
  46. memory usage.
  47. comment "Protocol Support"
  48. config OPENSSL_WITH_TLS13
  49. bool
  50. default y
  51. prompt "Enable support for TLS 1.3"
  52. help
  53. TLS 1.3 is the newest version of the TLS specification.
  54. It aims:
  55. * to increase the overall security of the protocol,
  56. removing outdated algorithms, and encrypting more of the
  57. protocol;
  58. * to increase performance by reducing the number of round-trips
  59. when performing a full handshake.
  60. config OPENSSL_WITH_DTLS
  61. bool
  62. prompt "Enable DTLS support"
  63. help
  64. Datagram Transport Layer Security (DTLS) provides TLS-like security
  65. for datagram-based (UDP, DCCP, CAPWAP, SCTP & SRTP) applications.
  66. config OPENSSL_WITH_NPN
  67. bool
  68. prompt "Enable NPN support"
  69. help
  70. NPN is a TLS extension, obsoleted and replaced with ALPN,
  71. used to negotiate SPDY, and HTTP/2.
  72. config OPENSSL_WITH_SRP
  73. bool
  74. default y
  75. prompt "Enable SRP support"
  76. help
  77. The Secure Remote Password protocol (SRP) is an augmented
  78. password-authenticated key agreement (PAKE) protocol, specifically
  79. designed to work around existing patents.
  80. config OPENSSL_WITH_CMS
  81. bool
  82. default y
  83. prompt "Enable CMS (RFC 5652) support"
  84. help
  85. Cryptographic Message Syntax (CMS) is used to digitally sign,
  86. digest, authenticate, or encrypt arbitrary message content.
  87. comment "Algorithm Selection"
  88. config OPENSSL_WITH_EC2M
  89. bool
  90. prompt "Enable ec2m support"
  91. help
  92. This option enables the more efficient, yet less common, binary
  93. field elliptic curves.
  94. config OPENSSL_WITH_CHACHA_POLY1305
  95. bool
  96. default y
  97. prompt "Enable ChaCha20-Poly1305 ciphersuite support"
  98. help
  99. ChaCha20-Poly1305 is an AEAD ciphersuite with 256-bit keys,
  100. combining ChaCha stream cipher with Poly1305 MAC.
  101. It is 3x faster than AES, when not using a CPU with AES-specific
  102. instructions, as is the case of most embedded devices.
  103. config OPENSSL_PREFER_CHACHA_OVER_GCM
  104. bool
  105. default y if !x86_64 && !aarch64
  106. prompt "Prefer ChaCha20-Poly1305 over AES-GCM by default"
  107. depends on OPENSSL_WITH_CHACHA_POLY1305
  108. help
  109. The default openssl preference is for AES-GCM before ChaCha, but
  110. that takes into account AES-NI capable chips. It is not the
  111. case with most embedded chips, so it may be better to invert
  112. that preference. This is just for the default case. The
  113. application can always override this.
  114. config OPENSSL_WITH_PSK
  115. bool
  116. default y
  117. prompt "Enable PSK support"
  118. help
  119. Build support for Pre-Shared Key based cipher suites.
  120. comment "Less commonly used build options"
  121. config OPENSSL_WITH_ARIA
  122. bool
  123. prompt "Enable ARIA support"
  124. help
  125. ARIA is a block cipher developed in South Korea, based on AES.
  126. config OPENSSL_WITH_CAMELLIA
  127. bool
  128. prompt "Enable Camellia cipher support"
  129. help
  130. Camellia is a bock cipher with security levels and processing
  131. abilities comparable to AES.
  132. config OPENSSL_WITH_IDEA
  133. bool
  134. prompt "Enable IDEA cipher support"
  135. help
  136. IDEA is a block cipher with 128-bit keys.
  137. config OPENSSL_WITH_SEED
  138. bool
  139. prompt "Enable SEED cipher support"
  140. help
  141. SEED is a block cipher with 128-bit keys broadly used in
  142. South Korea, but seldom found elsewhere.
  143. config OPENSSL_WITH_SM234
  144. bool
  145. prompt "Enable SM2/3/4 algorithms support"
  146. help
  147. These algorithms are a set of "Commercial Cryptography"
  148. algorithms approved for use in China.
  149. * SM2 is an EC algorithm equivalent to ECDSA P-256
  150. * SM3 is a hash function equivalent to SHA-256
  151. * SM4 is a 128-block cipher equivalent to AES-128
  152. config OPENSSL_WITH_BLAKE2
  153. bool
  154. prompt "Enable BLAKE2 digest support"
  155. help
  156. BLAKE2 is a cryptographic hash function based on the ChaCha
  157. stream cipher.
  158. config OPENSSL_WITH_MDC2
  159. bool
  160. prompt "Enable MDC2 digest support"
  161. config OPENSSL_WITH_WHIRLPOOL
  162. bool
  163. prompt "Enable Whirlpool digest support"
  164. config OPENSSL_WITH_COMPRESSION
  165. bool
  166. prompt "Enable compression support"
  167. help
  168. TLS compression is not recommended, as it is deemed insecure.
  169. The CRIME attack exploits this weakness.
  170. Even with this option turned on, it is disabled by default, and the
  171. application must explicitly turn it on.
  172. config OPENSSL_WITH_RFC3779
  173. bool
  174. prompt "Enable RFC3779 support (BGP)"
  175. help
  176. RFC 3779 defines two X.509 v3 certificate extensions. The first
  177. binds a list of IP address blocks, or prefixes, to the subject of a
  178. certificate. The second binds a list of autonomous system
  179. identifiers to the subject of a certificate. These extensions may be
  180. used to convey the authorization of the subject to use the IP
  181. addresses and autonomous system identifiers contained in the
  182. extensions.
  183. comment "Engine/Hardware Support"
  184. config OPENSSL_ENGINE
  185. bool "Enable engine support"
  186. select OPENSSL_WITH_DEPRECATED
  187. default y
  188. help
  189. This enables alternative cryptography implementations,
  190. most commonly for interfacing with external crypto devices,
  191. or supporting new/alternative ciphers and digests.
  192. If you compile the library with this option disabled, packages built
  193. using an engine-enabled library (i.e. from the official repo) may
  194. fail to run. Compile and install the packages with engine support
  195. disabled, and you should be fine.
  196. Note that you need to enable KERNEL_AIO to be able to build the
  197. afalg engine package.
  198. config OPENSSL_ENGINE_BUILTIN
  199. bool "Build chosen engines into libcrypto"
  200. depends on OPENSSL_ENGINE
  201. help
  202. This builds all chosen engines into libcrypto.so, instead of building
  203. them as dynamic engines in separate packages.
  204. The benefit of building the engines into libcrypto is that they won't
  205. require any configuration to be used by default.
  206. config OPENSSL_ENGINE_BUILTIN_AFALG
  207. bool
  208. prompt "Acceleration support through AF_ALG sockets engine"
  209. depends on OPENSSL_ENGINE_BUILTIN && KERNEL_AIO
  210. select PACKAGE_libopenssl-conf
  211. help
  212. This enables use of hardware acceleration through the
  213. AF_ALG kernel interface.
  214. config OPENSSL_ENGINE_BUILTIN_DEVCRYPTO
  215. bool
  216. prompt "Acceleration support through /dev/crypto"
  217. depends on OPENSSL_ENGINE_BUILTIN
  218. select PACKAGE_libopenssl-conf
  219. help
  220. This enables use of hardware acceleration through OpenBSD
  221. Cryptodev API (/dev/crypto) interface.
  222. Even though configuration is not strictly needed, it is worth seeing
  223. https://openwrt.org/docs/techref/hardware/cryptographic.hardware.accelerators
  224. for information on how to configure the engine.
  225. config OPENSSL_ENGINE_BUILTIN_PADLOCK
  226. bool
  227. prompt "VIA Padlock Acceleration support engine"
  228. depends on OPENSSL_ENGINE_BUILTIN && TARGET_x86
  229. select PACKAGE_libopenssl-conf
  230. help
  231. This enables use of hardware acceleration through the
  232. VIA Padlock module.
  233. config OPENSSL_WITH_ASYNC
  234. bool
  235. prompt "Enable asynchronous jobs support"
  236. depends on OPENSSL_ENGINE && USE_GLIBC
  237. help
  238. Enables async-aware applications to be able to use OpenSSL to
  239. initiate crypto operations asynchronously. In order to work
  240. this will require the presence of an async capable engine.
  241. endif