summaryrefslogtreecommitdiff
path: root/cmake/dependencies/crypt/openssl.cmake
blob: 38eb826f6fb865612739e5c4f3818e57d80e7125 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
find_package(OpenSSL QUIET)
if(NOT OPENSSL_FOUND)
  message(STATUS "Install OpenSSL version >= 3.0.0 to enable OpenSSL support")
  unset(HAVE_OPENSSL_RNG)
  unset(HAVE_OPENSSL CACHE)
  return()
endif()

set(HAVE_OPENSSL_RNG TRUE)

if(OPENSSL_VERSION VERSION_LESS "3.0.0")
  message(STATUS "Install version >= 3.0.0 to enable OpenSSL support "
                 "(found version \"${OPENSSL_VERSION}\")")
  return()
endif()

set(DISABLE_OPENSSL FALSE CACHE BOOL "Disable OpenSSL support")
if(DISABLE_OPENSSL)
  message(STATUS "OpenSSL support disabled")
  unset(HAVE_OPENSSL CACHE)
  return()
endif()

message(STATUS "OpenSSL support enabled, found version ${OPENSSL_VERSION}")
set(HAVE_OPENSSL TRUE CACHE INTERNAL
  "OpenSSL cryptography support available")

if(OPENSSL_VERSION VERSION_GREATER_EQUAL "3.4.0")
  set(DISABLE_ML_KEM FALSE CACHE BOOL
    "Disable ML-KEM support")
  set(DISABLE_ML_DSA FALSE CACHE BOOL
    "Disable ML-DSA support")
  if(NOT DISABLE_ML_KEM)
    set(HAVE_OPENSSL_ML_KEM TRUE CACHE INTERNAL
      "OpenSSL ML-KEM available")
    message(STATUS "OpenSSL ML-KEM support enabled")
  else()
    message(STATUS "OpenSSL ML-KEM support disabled")
    unset(HAVE_OPENSSL_ML_KEM CACHE)
  endif()
  if(NOT DISABLE_ML_DSA)
    set(HAVE_OPENSSL_ML_DSA TRUE CACHE INTERNAL
      "OpenSSL ML-DSA available")
    message(STATUS "OpenSSL ML-DSA support enabled")
  else()
    message(STATUS "OpenSSL ML-DSA support disabled")
    unset(HAVE_OPENSSL_ML_DSA CACHE)
  endif()
else()
  message(STATUS
    "Install OpenSSL >= 3.4.0 for ML-KEM/ML-DSA")
  unset(HAVE_OPENSSL_ML_KEM CACHE)
  unset(HAVE_OPENSSL_ML_DSA CACHE)
endif()

if(OPENSSL_VERSION VERSION_GREATER_EQUAL "3.5.0")
  set(DISABLE_SLH_DSA FALSE CACHE BOOL
    "Disable SLH-DSA support")
  if(NOT DISABLE_SLH_DSA)
    set(HAVE_OPENSSL_SLH_DSA TRUE CACHE INTERNAL
      "OpenSSL SLH-DSA available")
    message(STATUS "OpenSSL SLH-DSA support enabled")
  else()
    message(STATUS "OpenSSL SLH-DSA support disabled")
    unset(HAVE_OPENSSL_SLH_DSA CACHE)
  endif()
else()
  message(STATUS
    "Install OpenSSL >= 3.5.0 for SLH-DSA")
  unset(HAVE_OPENSSL_SLH_DSA CACHE)
endif()

# Secure memory options are in cmake/config/global.cmake