1
0

Config.in 8.9 KB

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