Skip to content

Commit f61df0c

Browse files
author
Elliot Haisley Brown
committed
s2n-tls: add initial wrap
1 parent d976ccb commit f61df0c

File tree

4 files changed

+256
-0
lines changed

4 files changed

+256
-0
lines changed

ci_config.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1235,6 +1235,14 @@
12351235
"libjack-dev"
12361236
]
12371237
},
1238+
"s2n-tls": {
1239+
"build_on": {
1240+
"windows": false
1241+
},
1242+
"alpine_packages": [
1243+
"openssl-dev"
1244+
]
1245+
},
12381246
"sdl3": {
12391247
"alpine_packages": [
12401248
"libudev-zero-dev",

releases.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3633,6 +3633,14 @@
36333633
"4.1.0-1"
36343634
]
36353635
},
3636+
"s2n-tls": {
3637+
"dependency_names": [
3638+
"s2n-tls"
3639+
],
3640+
"versions": [
3641+
"1.5.24-1"
3642+
]
3643+
},
36363644
"sassc": {
36373645
"program_names": [
36383646
"sassc"
Lines changed: 231 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,231 @@
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)

subprojects/s2n-tls.wrap

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[wrap-file]
2+
directory = s2n-tls-1.5.24
3+
source_url = https://github.com/aws/s2n-tls/archive/refs/tags/v1.5.24.tar.gz
4+
source_filename = s2n-tls-1.5.24.tar.gz
5+
source_hash = 72a160498f97565d694c740901fbfa320f6fad7db4a8e946ccd5352c9472c556
6+
patch_directory = s2n-tls
7+
8+
[provide]
9+
dependency_names = s2n-tls

0 commit comments

Comments
 (0)