^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) comment "Crypto library routines"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) config CRYPTO_LIB_AES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) config CRYPTO_LIB_ARC4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) config CRYPTO_ARCH_HAVE_LIB_BLAKE2S
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) Declares whether the architecture provides an arch-specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) accelerated implementation of the Blake2s library interface,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) either builtin or as a module.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) config CRYPTO_LIB_BLAKE2S_GENERIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) This symbol can be depended upon by arch implementations of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) Blake2s library interface that require the generic code as a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) fallback, e.g., for SIMD implementations. If no arch specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) implementation is enabled, this implementation serves the users
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) of CRYPTO_LIB_BLAKE2S.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) config CRYPTO_LIB_BLAKE2S
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) tristate "BLAKE2s hash function library"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) depends on CRYPTO_ARCH_HAVE_LIB_BLAKE2S || !CRYPTO_ARCH_HAVE_LIB_BLAKE2S
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) select CRYPTO_LIB_BLAKE2S_GENERIC if CRYPTO_ARCH_HAVE_LIB_BLAKE2S=n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) Enable the Blake2s library interface. This interface may be fulfilled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) by either the generic implementation or an arch-specific one, if one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) is available and enabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) config CRYPTO_ARCH_HAVE_LIB_CHACHA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) Declares whether the architecture provides an arch-specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) accelerated implementation of the ChaCha library interface,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) either builtin or as a module.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) config CRYPTO_LIB_CHACHA_GENERIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) select CRYPTO_ALGAPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) This symbol can be depended upon by arch implementations of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) ChaCha library interface that require the generic code as a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) fallback, e.g., for SIMD implementations. If no arch specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) implementation is enabled, this implementation serves the users
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) of CRYPTO_LIB_CHACHA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) config CRYPTO_LIB_CHACHA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) tristate "ChaCha library interface"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) Enable the ChaCha library interface. This interface may be fulfilled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) by either the generic implementation or an arch-specific one, if one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) is available and enabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) config CRYPTO_ARCH_HAVE_LIB_CURVE25519
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) Declares whether the architecture provides an arch-specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) accelerated implementation of the Curve25519 library interface,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) either builtin or as a module.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) config CRYPTO_LIB_CURVE25519_GENERIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) This symbol can be depended upon by arch implementations of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) Curve25519 library interface that require the generic code as a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) fallback, e.g., for SIMD implementations. If no arch specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) implementation is enabled, this implementation serves the users
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) of CRYPTO_LIB_CURVE25519.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) config CRYPTO_LIB_CURVE25519
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) tristate "Curve25519 scalar multiplication library"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) depends on CRYPTO_ARCH_HAVE_LIB_CURVE25519 || !CRYPTO_ARCH_HAVE_LIB_CURVE25519
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) Enable the Curve25519 library interface. This interface may be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) fulfilled by either the generic implementation or an arch-specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) one, if one is available and enabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) config CRYPTO_LIB_DES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) config CRYPTO_LIB_POLY1305_RSIZE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) default 2 if MIPS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) default 11 if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) default 9 if ARM || ARM64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) default 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) config CRYPTO_ARCH_HAVE_LIB_POLY1305
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) Declares whether the architecture provides an arch-specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) accelerated implementation of the Poly1305 library interface,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) either builtin or as a module.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) config CRYPTO_LIB_POLY1305_GENERIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) This symbol can be depended upon by arch implementations of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) Poly1305 library interface that require the generic code as a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) fallback, e.g., for SIMD implementations. If no arch specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) implementation is enabled, this implementation serves the users
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) of CRYPTO_LIB_POLY1305.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) config CRYPTO_LIB_POLY1305
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) tristate "Poly1305 library interface"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) Enable the Poly1305 library interface. This interface may be fulfilled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) by either the generic implementation or an arch-specific one, if one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) is available and enabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) config CRYPTO_LIB_CHACHA20POLY1305
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) tristate "ChaCha20-Poly1305 AEAD support (8-byte nonce library version)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) select CRYPTO_LIB_CHACHA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) select CRYPTO_LIB_POLY1305
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) config CRYPTO_LIB_SHA256
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) tristate