|
| 1 | +project( |
| 2 | + 's2n-tls', |
| 3 | + 'c', |
| 4 | + version: '1.5.24', |
| 5 | + meson_version: '>=0.63.0', |
| 6 | + default_options: ['warning_level=3', 'c_std=c11'], |
| 7 | + license: 'Apache-2.0', |
| 8 | +) |
| 9 | + |
| 10 | +cc = meson.get_compiler('c') |
| 11 | + |
| 12 | +crypto = dependency('libcrypto') |
| 13 | +threads = dependency('threads') |
| 14 | +m = cc.find_library('m') |
| 15 | + |
| 16 | +deps = [crypto, threads, m] |
| 17 | + |
| 18 | +private_include = include_directories( |
| 19 | + 'crypto', |
| 20 | + 'error', |
| 21 | + 'stuffer', |
| 22 | + 'tls', |
| 23 | + 'utils', |
| 24 | +) |
| 25 | +public_include = include_directories('api') |
| 26 | + |
| 27 | +c_args = cc.get_supported_arguments( |
| 28 | + '-Wno-strict-prototypes', |
| 29 | + '-Wno-unused-parameter', |
| 30 | + '-Wno-deprecated-declarations', |
| 31 | +) |
| 32 | + |
| 33 | +# This is required |
| 34 | +c_args += ['-include', meson.current_source_dir() / 'utils/s2n_prelude.h'] |
| 35 | + |
| 36 | +# shopt -s globstar |
| 37 | +# for f in crypto/**/*.c error/**/*.c stuffer/**/*.c tls/**/*.c utils/**/*.c; do |
| 38 | +# echo " '$f'," |
| 39 | +# done |
| 40 | +src = [ |
| 41 | + 'crypto/s2n_aead_cipher_aes_gcm.c', |
| 42 | + 'crypto/s2n_aead_cipher_chacha20_poly1305.c', |
| 43 | + 'crypto/s2n_cbc_cipher_3des.c', |
| 44 | + 'crypto/s2n_cbc_cipher_aes.c', |
| 45 | + 'crypto/s2n_certificate.c', |
| 46 | + 'crypto/s2n_cipher.c', |
| 47 | + 'crypto/s2n_composite_cipher_aes_sha.c', |
| 48 | + 'crypto/s2n_crypto.c', |
| 49 | + 'crypto/s2n_dhe.c', |
| 50 | + 'crypto/s2n_drbg.c', |
| 51 | + 'crypto/s2n_ecc_evp.c', |
| 52 | + 'crypto/s2n_evp_kem.c', |
| 53 | + 'crypto/s2n_fips.c', |
| 54 | + 'crypto/s2n_fips_rules.c', |
| 55 | + 'crypto/s2n_hash.c', |
| 56 | + 'crypto/s2n_hkdf.c', |
| 57 | + 'crypto/s2n_hmac.c', |
| 58 | + 'crypto/s2n_libcrypto.c', |
| 59 | + 'crypto/s2n_locking.c', |
| 60 | + 'crypto/s2n_mldsa.c', |
| 61 | + 'crypto/s2n_openssl_x509.c', |
| 62 | + 'crypto/s2n_pkey.c', |
| 63 | + 'crypto/s2n_pkey_evp.c', |
| 64 | + 'crypto/s2n_pq.c', |
| 65 | + 'crypto/s2n_prf_libcrypto.c', |
| 66 | + 'crypto/s2n_rsa_pss.c', |
| 67 | + 'crypto/s2n_sequence.c', |
| 68 | + 'crypto/s2n_stream_cipher_null.c', |
| 69 | + 'crypto/s2n_stream_cipher_rc4.c', |
| 70 | + 'crypto/s2n_tls13_keys.c', |
| 71 | + 'error/s2n_errno.c', |
| 72 | + 'stuffer/s2n_stuffer.c', |
| 73 | + 'stuffer/s2n_stuffer_base64.c', |
| 74 | + 'stuffer/s2n_stuffer_file.c', |
| 75 | + 'stuffer/s2n_stuffer_hex.c', |
| 76 | + 'stuffer/s2n_stuffer_network_order.c', |
| 77 | + 'stuffer/s2n_stuffer_pem.c', |
| 78 | + 'stuffer/s2n_stuffer_text.c', |
| 79 | + 'tls/extensions/s2n_cert_authorities.c', |
| 80 | + 'tls/extensions/s2n_cert_status.c', |
| 81 | + 'tls/extensions/s2n_cert_status_response.c', |
| 82 | + 'tls/extensions/s2n_client_alpn.c', |
| 83 | + 'tls/extensions/s2n_client_cert_status_request.c', |
| 84 | + 'tls/extensions/s2n_client_cookie.c', |
| 85 | + 'tls/extensions/s2n_client_early_data_indication.c', |
| 86 | + 'tls/extensions/s2n_client_ems.c', |
| 87 | + 'tls/extensions/s2n_client_key_share.c', |
| 88 | + 'tls/extensions/s2n_client_max_frag_len.c', |
| 89 | + 'tls/extensions/s2n_client_pq_kem.c', |
| 90 | + 'tls/extensions/s2n_client_psk.c', |
| 91 | + 'tls/extensions/s2n_client_renegotiation_info.c', |
| 92 | + 'tls/extensions/s2n_client_sct_list.c', |
| 93 | + 'tls/extensions/s2n_client_server_name.c', |
| 94 | + 'tls/extensions/s2n_client_session_ticket.c', |
| 95 | + 'tls/extensions/s2n_client_signature_algorithms.c', |
| 96 | + 'tls/extensions/s2n_client_supported_groups.c', |
| 97 | + 'tls/extensions/s2n_client_supported_versions.c', |
| 98 | + 'tls/extensions/s2n_ec_point_format.c', |
| 99 | + 'tls/extensions/s2n_extension_list.c', |
| 100 | + 'tls/extensions/s2n_extension_type.c', |
| 101 | + 'tls/extensions/s2n_extension_type_lists.c', |
| 102 | + 'tls/extensions/s2n_key_share.c', |
| 103 | + 'tls/extensions/s2n_npn.c', |
| 104 | + 'tls/extensions/s2n_nst_early_data_indication.c', |
| 105 | + 'tls/extensions/s2n_psk_key_exchange_modes.c', |
| 106 | + 'tls/extensions/s2n_quic_transport_params.c', |
| 107 | + 'tls/extensions/s2n_server_alpn.c', |
| 108 | + 'tls/extensions/s2n_server_cert_status_request.c', |
| 109 | + 'tls/extensions/s2n_server_cookie.c', |
| 110 | + 'tls/extensions/s2n_server_early_data_indication.c', |
| 111 | + 'tls/extensions/s2n_server_ems.c', |
| 112 | + 'tls/extensions/s2n_server_key_share.c', |
| 113 | + 'tls/extensions/s2n_server_max_fragment_length.c', |
| 114 | + 'tls/extensions/s2n_server_psk.c', |
| 115 | + 'tls/extensions/s2n_server_renegotiation_info.c', |
| 116 | + 'tls/extensions/s2n_server_sct_list.c', |
| 117 | + 'tls/extensions/s2n_server_server_name.c', |
| 118 | + 'tls/extensions/s2n_server_session_ticket.c', |
| 119 | + 'tls/extensions/s2n_server_signature_algorithms.c', |
| 120 | + 'tls/extensions/s2n_server_supported_versions.c', |
| 121 | + 'tls/extensions/s2n_supported_versions.c', |
| 122 | + 'tls/s2n_aead.c', |
| 123 | + 'tls/s2n_alerts.c', |
| 124 | + 'tls/s2n_async_pkey.c', |
| 125 | + 'tls/s2n_auth_selection.c', |
| 126 | + 'tls/s2n_cbc.c', |
| 127 | + 'tls/s2n_certificate_keys.c', |
| 128 | + 'tls/s2n_change_cipher_spec.c', |
| 129 | + 'tls/s2n_cipher_preferences.c', |
| 130 | + 'tls/s2n_cipher_suites.c', |
| 131 | + 'tls/s2n_client_cert.c', |
| 132 | + 'tls/s2n_client_cert_verify.c', |
| 133 | + 'tls/s2n_client_finished.c', |
| 134 | + 'tls/s2n_client_hello.c', |
| 135 | + 'tls/s2n_client_hello_request.c', |
| 136 | + 'tls/s2n_client_key_exchange.c', |
| 137 | + 'tls/s2n_config.c', |
| 138 | + 'tls/s2n_connection.c', |
| 139 | + 'tls/s2n_connection_serialize.c', |
| 140 | + 'tls/s2n_crl.c', |
| 141 | + 'tls/s2n_crypto.c', |
| 142 | + 'tls/s2n_early_data.c', |
| 143 | + 'tls/s2n_early_data_io.c', |
| 144 | + 'tls/s2n_ecc_preferences.c', |
| 145 | + 'tls/s2n_encrypted_extensions.c', |
| 146 | + 'tls/s2n_establish_session.c', |
| 147 | + 'tls/s2n_fingerprint.c', |
| 148 | + 'tls/s2n_fingerprint_ja3.c', |
| 149 | + 'tls/s2n_fingerprint_ja4.c', |
| 150 | + 'tls/s2n_handshake.c', |
| 151 | + 'tls/s2n_handshake_hashes.c', |
| 152 | + 'tls/s2n_handshake_io.c', |
| 153 | + 'tls/s2n_handshake_transcript.c', |
| 154 | + 'tls/s2n_handshake_type.c', |
| 155 | + 'tls/s2n_kem.c', |
| 156 | + 'tls/s2n_kem_preferences.c', |
| 157 | + 'tls/s2n_kex.c', |
| 158 | + 'tls/s2n_key_log.c', |
| 159 | + 'tls/s2n_key_update.c', |
| 160 | + 'tls/s2n_ktls.c', |
| 161 | + 'tls/s2n_ktls_io.c', |
| 162 | + 'tls/s2n_next_protocol.c', |
| 163 | + 'tls/s2n_ocsp_stapling.c', |
| 164 | + 'tls/s2n_post_handshake.c', |
| 165 | + 'tls/s2n_prf.c', |
| 166 | + 'tls/s2n_protocol_preferences.c', |
| 167 | + 'tls/s2n_psk.c', |
| 168 | + 'tls/s2n_quic_support.c', |
| 169 | + 'tls/s2n_record_read.c', |
| 170 | + 'tls/s2n_record_read_aead.c', |
| 171 | + 'tls/s2n_record_read_cbc.c', |
| 172 | + 'tls/s2n_record_read_composite.c', |
| 173 | + 'tls/s2n_record_read_stream.c', |
| 174 | + 'tls/s2n_record_write.c', |
| 175 | + 'tls/s2n_recv.c', |
| 176 | + 'tls/s2n_renegotiate.c', |
| 177 | + 'tls/s2n_resume.c', |
| 178 | + 'tls/s2n_security_policies.c', |
| 179 | + 'tls/s2n_security_rules.c', |
| 180 | + 'tls/s2n_send.c', |
| 181 | + 'tls/s2n_server_cert.c', |
| 182 | + 'tls/s2n_server_cert_request.c', |
| 183 | + 'tls/s2n_server_done.c', |
| 184 | + 'tls/s2n_server_extensions.c', |
| 185 | + 'tls/s2n_server_finished.c', |
| 186 | + 'tls/s2n_server_hello.c', |
| 187 | + 'tls/s2n_server_hello_retry.c', |
| 188 | + 'tls/s2n_server_key_exchange.c', |
| 189 | + 'tls/s2n_server_new_session_ticket.c', |
| 190 | + 'tls/s2n_shutdown.c', |
| 191 | + 'tls/s2n_signature_algorithms.c', |
| 192 | + 'tls/s2n_signature_scheme.c', |
| 193 | + 'tls/s2n_tls.c', |
| 194 | + 'tls/s2n_tls13.c', |
| 195 | + 'tls/s2n_tls13_certificate_verify.c', |
| 196 | + 'tls/s2n_tls13_handshake.c', |
| 197 | + 'tls/s2n_tls13_key_schedule.c', |
| 198 | + 'tls/s2n_tls13_secrets.c', |
| 199 | + 'tls/s2n_x509_validator.c', |
| 200 | + 'utils/s2n_array.c', |
| 201 | + 'utils/s2n_atomic.c', |
| 202 | + 'utils/s2n_blob.c', |
| 203 | + 'utils/s2n_ensure.c', |
| 204 | + 'utils/s2n_fork_detection.c', |
| 205 | + 'utils/s2n_init.c', |
| 206 | + 'utils/s2n_io.c', |
| 207 | + 'utils/s2n_map.c', |
| 208 | + 'utils/s2n_mem.c', |
| 209 | + 'utils/s2n_random.c', |
| 210 | + 'utils/s2n_rfc5952.c', |
| 211 | + 'utils/s2n_safety.c', |
| 212 | + 'utils/s2n_socket.c', |
| 213 | + 'utils/s2n_timer.c', |
| 214 | +] |
| 215 | + |
| 216 | +libs2n = library( |
| 217 | + 's2n', |
| 218 | + src, |
| 219 | + include_directories: [private_include, public_include], |
| 220 | + dependencies: deps, |
| 221 | + c_args: c_args, |
| 222 | + install: true, |
| 223 | +) |
| 224 | + |
| 225 | +s2n_tls_dep = declare_dependency( |
| 226 | + include_directories: [public_include], |
| 227 | + link_with: libs2n, |
| 228 | + dependencies: deps, |
| 229 | +) |
| 230 | + |
| 231 | +meson.override_dependency('s2n-tls', s2n_tls_dep) |
0 commit comments