commit 6a14b24
Michael Forney
·
2026-04-03 09:19:51 +0000 UTC
parent 3619aa1
libressl: Update to 4.2.1
10 files changed,
+1444,
-171
+1,
-1
1@@ -12,7 +12,7 @@
2 /kbd-2.4.0.tar.gz
3 /less-643.tar.gz
4 /libbluray-1.3.4.tar.bz2
5-/libressl-3.4.2.tar.gz
6+/libressl-4.2.1.tar.gz
7 /libtermkey-0.22.tar.gz
8 /linux-6.19.tar.xz
9 /lpeg-1.1.0.tar.gz
+415,
-153
1@@ -1,20 +1,39 @@
2 cflags{
3- '-Wundef', '-Wno-attributes',
4+ '-std=c11', '-Wall', '-Wundef', '-Wno-attributes',
5+ '-D _DEFAULT_SOURCE',
6 '-D LIBRESSL_INTERNAL',
7 '-D OPENSSL_NO_HW_PADLOCK',
8 '-D OPENSSL_NO_ASM',
9 '-D __BEGIN_HIDDEN_DECLS=',
10 '-D __END_HIDDEN_DECLS=',
11 [[-D '__warn_references(sym,msg)=_Static_assert(1, "")']],
12+ '-I $srcdir/crypto/hidden',
13+ '-I $srcdir/ssl/hidden',
14 '-I $srcdir/include',
15 '-I $srcdir/crypto',
16+ '-I $srcdir/crypto/arch/amd64',
17+ '-I $srcdir/crypto/aes',
18 '-I $srcdir/crypto/asn1',
19+ '-I $srcdir/crypto/bio',
20 '-I $srcdir/crypto/bn',
21+ '-I $srcdir/crypto/bn/arch/amd64',
22+ '-I $srcdir/crypto/bytestring',
23+ '-I $srcdir/crypto/conf',
24+ '-I $srcdir/crypto/curve25519',
25+ '-I $srcdir/crypto/dh',
26+ '-I $srcdir/crypto/dsa',
27 '-I $srcdir/crypto/ec',
28- '-I $srcdir/crypto/ecdh',
29 '-I $srcdir/crypto/ecdsa',
30+ '-I $srcdir/crypto/err',
31 '-I $srcdir/crypto/evp',
32+ '-I $srcdir/crypto/hmac',
33 '-I $srcdir/crypto/modes',
34+ '-I $srcdir/crypto/ocsp',
35+ '-I $srcdir/crypto/pkcs12',
36+ '-I $srcdir/crypto/rsa',
37+ '-I $srcdir/crypto/sha',
38+ '-I $srcdir/crypto/stack',
39+ '-I $srcdir/crypto/x509',
40 '-I $basedir/pkg/openbsd/include',
41 '-idirafter $srcdir/include/compat',
42 }
43@@ -24,6 +43,7 @@ pkg.hdrs = {
44 'aes.h',
45 'asn1.h',
46 'asn1t.h',
47+ 'posix_time.h',
48 'blowfish.h',
49 'bio.h',
50 'bn.h',
51@@ -35,33 +55,33 @@ pkg.hdrs = {
52 'cms.h',
53 'comp.h',
54 'conf.h',
55- 'conf_api.h',
56 'crypto.h',
57+ 'ct.h',
58 'curve25519.h',
59 'des.h',
60 'dh.h',
61 'dsa.h',
62- 'dso.h',
63 'ec.h',
64 'ecdh.h',
65 'ecdsa.h',
66 'engine.h',
67 'err.h',
68 'evp.h',
69- 'gost.h',
70 'hmac.h',
71 'idea.h',
72+ 'kdf.h',
73 'lhash.h',
74 'md4.h',
75 'md5.h',
76+ 'mlkem.h',
77 'modes.h',
78 'objects.h',
79 'ocsp.h',
80+ 'opensslconf.h',
81 'opensslfeatures.h',
82 'opensslv.h',
83 'ossl_typ.h',
84 'pem.h',
85- 'pem2.h',
86 'pkcs12.h',
87 'pkcs7.h',
88 'poly1305.h',
89@@ -78,215 +98,455 @@ pkg.hdrs = {
90 'ts.h',
91 'txt_db.h',
92 'ui.h',
93- 'ui_compat.h',
94- 'whrlpool.h',
95 'x509.h',
96 'x509_vfy.h',
97- 'x509_verify.h',
98 'x509v3.h',
99
100- 'opensslconf.h',
101 'obj_mac.h',
102
103+ 'dtls1.h',
104 'srtp.h',
105 'ssl.h',
106- 'ssl2.h',
107 'ssl3.h',
108- 'ssl23.h',
109 'tls1.h',
110- 'dtls1.h',
111 }),
112 install=true,
113 }
114
115 -- src/crypto/Makefile.am
116 lib('libcrypto.a', [[crypto/(
117- cryptlib.c malloc-wrapper.c mem_dbg.c cversion.c ex_data.c cpt_err.c
118- o_time.c o_str.c o_init.c
119- mem_clr.c crypto_init.c crypto_lock.c
120+ crypto_err.c
121+ crypto_ex_data.c
122+ crypto_init.c
123+ crypto_legacy.c
124+ crypto_lock.c
125+ crypto_memory.c
126+ arch/amd64/crypto_cpu_caps.c
127 aes/(
128- aes_misc.c aes_ecb.c aes_cfb.c aes_ofb.c
129- aes_ctr.c aes_ige.c aes_wrap.c
130+ aes.c
131+ aes_core.c
132 )
133 asn1/(
134- a_object.c a_bitstr.c a_time.c a_int.c a_octet.c
135- a_print.c a_type.c a_dup.c a_d2i_fp.c a_i2d_fp.c
136- a_enum.c a_utf8.c a_sign.c a_digest.c a_verify.c a_mbstr.c a_strex.c
137- x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_bignum.c
138- x_long.c x_name.c x_x509.c x_x509a.c x_crl.c x_info.c x_spki.c nsseq.c
139- x_nx509.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c
140- t_req.c t_x509.c t_x509a.c t_crl.c t_pkey.c t_spki.c t_bitst.c
141- tasn_new.c tasn_fre.c tasn_enc.c tasn_dec.c tasn_utl.c tasn_typ.c
142- tasn_prn.c ameth_lib.c
143- f_int.c f_string.c n_pkey.c
144- f_enum.c x_pkey.c a_bool.c x_exten.c bio_asn1.c bio_ndef.c asn_mime.c
145- asn1_gen.c asn1_par.c asn1_lib.c asn1_err.c a_strnid.c
146- evp_asn1.c asn_pack.c p5_pbe.c p5_pbev2.c p8_pkey.c asn_moid.c
147+ a_bitstr.c
148+ a_enum.c
149+ a_int.c
150+ a_mbstr.c
151+ a_object.c
152+ a_octet.c
153+ a_pkey.c
154+ a_print.c
155+ a_pubkey.c
156+ a_strex.c
157+ a_string.c
158+ a_strnid.c
159+ a_time.c
160+ a_time_posix.c
161 a_time_tm.c
162+ a_type.c
163+ a_utf8.c
164+ asn1_err.c
165+ asn1_gen.c
166+ asn1_item.c
167+ asn1_lib.c
168+ asn1_old.c
169+ asn1_old_lib.c
170+ asn1_par.c
171+ asn1_types.c
172+ asn_mime.c
173+ asn_moid.c
174+ bio_asn1.c
175+ bio_ndef.c
176+ p5_pbe.c
177+ p5_pbev2.c
178+ p8_pkey.c
179+ t_crl.c
180+ t_req.c
181+ t_spki.c
182+ t_x509.c
183+ t_x509a.c
184+ tasn_dec.c
185+ tasn_enc.c
186+ tasn_fre.c
187+ tasn_new.c
188+ tasn_prn.c
189+ tasn_typ.c
190+ tasn_utl.c
191+ x_algor.c
192+ x_attrib.c
193+ x_bignum.c
194+ x_crl.c
195+ x_exten.c
196+ x_long.c
197+ x_name.c
198+ x_pubkey.c
199+ x_req.c
200+ x_sig.c
201+ x_spki.c
202+ x_val.c
203+ x_x509.c
204+ x_x509a.c
205 )
206- bf/(bf_skey.c bf_ecb.c bf_cfb64.c bf_ofb64.c)
207+ bf/blowfish.c
208 bio/(
209- bio_lib.c bio_cb.c bio_err.c bio_meth.c
210- bss_mem.c bss_null.c bss_fd.c
211- bss_file.c bss_sock.c bss_conn.c
212- bf_null.c bf_buff.c b_print.c b_dump.c
213- b_posix.c b_sock.c bss_acpt.c bf_nbio.c bss_log.c bss_bio.c
214+ b_dump.c
215+ b_posix.c
216+ b_print.c
217+ b_sock.c
218+ bf_buff.c
219+ bf_nbio.c
220+ bf_null.c
221+ bio_cb.c
222+ bio_err.c
223+ bio_lib.c
224+ bio_meth.c
225+ bss_acpt.c
226+ bss_bio.c
227+ bss_conn.c
228 bss_dgram.c
229+ bss_fd.c
230+ bss_file.c
231+ bss_mem.c
232+ bss_null.c
233+ bss_sock.c
234 )
235 bn/(
236- bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c bn_mod.c
237- bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c
238- bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c
239- bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c
240- bn_depr.c bn_const.c bn_x931p.c
241+ bn_add.c
242+ bn_add_sub.c
243+ bn_bpsw.c
244+ bn_const.c
245+ bn_convert.c
246+ bn_ctx.c
247+ bn_div.c
248+ bn_err.c
249+ bn_exp.c
250+ bn_gcd.c
251+ bn_isqrt.c
252+ bn_kron.c
253+ bn_lib.c
254+ bn_mod.c
255+ bn_mod_sqrt.c
256+ bn_mod_words.c
257+ bn_mont.c
258+ bn_mul.c
259+ bn_prime.c
260+ bn_primitives.c
261+ bn_print.c
262+ bn_rand.c
263+ bn_recp.c
264+ bn_shift.c
265+ bn_small_primes.c
266+ bn_sqr.c
267+ bn_word.c
268 )
269- buffer/(buffer.c buf_err.c buf_str.c)
270- camellia/(cmll_cfb.c cmll_ctr.c cmll_ecb.c cmll_ofb.c)
271- cast/(c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c)
272+ buffer/(buf_err.c buffer.c)
273+ bytestring/(bs_ber.c bs_cbb.c bs_cbs.c)
274+ camellia/camellia.c
275+ cast/cast.c
276 chacha/chacha.c
277- cmac/(cmac.c cm_ameth.c cm_pmeth.c)
278+ cmac/(cm_ameth.c cm_pmeth.c cmac.c)
279 cms/(
280- cms_asn1.c cms_att.c cms_cd.c cms_dd.c cms_enc.c cms_env.c cms_err.c
281- cms_ess.c cms_io.c cms_kari.c cms_lib.c cms_pwri.c cms_sd.c
282+ cms_asn1.c
283+ cms_att.c
284+ cms_dd.c
285+ cms_enc.c
286+ cms_env.c
287+ cms_err.c
288+ cms_ess.c
289+ cms_io.c
290+ cms_kari.c
291+ cms_lib.c
292+ cms_pwri.c
293+ cms_sd.c
294 cms_smime.c
295 )
296- comp/(comp_lib.c comp_err.c c_rle.c c_zlib.c)
297 conf/(
298- conf_err.c conf_lib.c conf_api.c conf_def.c conf_mod.c
299- conf_mall.c conf_sap.c
300+ conf_api.c
301+ conf_def.c
302+ conf_err.c
303+ conf_lib.c
304+ conf_mod.c
305+ conf_sap.c
306+ )
307+ ct/(
308+ ct_b64.c
309+ ct_err.c
310+ ct_log.c
311+ ct_oct.c
312+ ct_policy.c
313+ ct_prn.c
314+ ct_sct.c
315+ ct_sct_ctx.c
316+ ct_vfy.c
317+ ct_x509v3.c
318 )
319- curve25519/(curve25519.c curve25519-generic.c)
320+ curve25519/(curve25519-generic.c curve25519.c)
321 des/(
322- cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c
323- ecb3_enc.c ecb_enc.c enc_read.c enc_writ.c
324- fcrypt.c ofb64enc.c ofb_enc.c pcbc_enc.c
325- qud_cksm.c rand_key.c set_key.c xcbc_enc.c
326- str2key.c cfb64ede.c ofb64ede.c ede_cbcm_enc.c
327+ des.c
328+ des_cksum.c
329+ des_enc.c
330+ des_fcrypt.c
331+ des_key.c
332 )
333 dh/(
334- dh_asn1.c dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c dh_depr.c
335- dh_ameth.c dh_pmeth.c dh_prn.c
336+ dh_ameth.c
337+ dh_asn1.c
338+ dh_check.c
339+ dh_err.c
340+ dh_gen.c
341+ dh_key.c
342+ dh_lib.c
343+ dh_pmeth.c
344 )
345 dsa/(
346- dsa_gen.c dsa_key.c dsa_lib.c dsa_asn1.c dsa_vrf.c dsa_sign.c
347- dsa_err.c dsa_ossl.c dsa_depr.c dsa_ameth.c dsa_pmeth.c dsa_prn.c
348+ dsa_ameth.c
349+ dsa_asn1.c
350+ dsa_err.c
351+ dsa_gen.c
352+ dsa_key.c
353+ dsa_lib.c
354 dsa_meth.c
355- )
356- dso/(
357- dso_dlfcn.c dso_err.c dso_lib.c dso_null.c
358- dso_openssl.c
359+ dsa_ossl.c
360+ dsa_pmeth.c
361+ dsa_prn.c
362 )
363 ec/(
364- ec_lib.c ecp_smpl.c ecp_mont.c ecp_nist.c ec_cvt.c ec_mult.c
365- ec_err.c ec_curve.c ec_check.c ec_print.c ec_asn1.c ec_key.c
366- ec2_smpl.c ec2_mult.c ec_ameth.c ec_pmeth.c ec_kmeth.c eck_prn.c
367- ecp_oct.c ec2_oct.c ec_oct.c
368- )
369- ecdh/(ech_lib.c ech_key.c ech_err.c ecdh_kdf.c)
370- ecdsa/(ecs_lib.c ecs_asn1.c ecs_ossl.c ecs_sign.c ecs_vrf.c ecs_err.c)
371- engine/(
372- eng_err.c eng_lib.c eng_list.c eng_init.c eng_ctrl.c
373- eng_table.c eng_pkey.c eng_fat.c eng_all.c
374- tb_rsa.c tb_dsa.c tb_ecdsa.c tb_dh.c tb_ecdh.c tb_rand.c tb_store.c
375- tb_cipher.c tb_digest.c tb_pkmeth.c tb_asnmth.c tb_eckey.c
376- eng_openssl.c eng_cnf.c eng_dyn.c
377+ ec_ameth.c
378+ ec_asn1.c
379+ ec_convert.c
380+ ec_curve.c
381+ ec_err.c
382+ ec_field.c
383+ ec_key.c
384+ ec_lib.c
385+ ec_mult.c
386+ ec_pmeth.c
387+ eck_prn.c
388+ ecp_hp_methods.c
389+ ecp_methods.c
390+ ecx_methods.c
391 )
392+ ecdh/ecdh.c
393+ ecdsa/ecdsa.c
394+ engine/engine_stubs.c
395 err/(err.c err_all.c err_prn.c)
396 evp/(
397- encode.c digest.c evp_enc.c evp_key.c
398- e_des.c e_bf.c e_idea.c e_des3.c e_camellia.c
399- e_rc4.c e_aes.c names.c
400- e_xcbc_d.c e_rc2.c e_cast.c
401- m_null.c m_md4.c m_md5.c m_sha1.c m_sm3.c m_wp.c
402- m_dss.c m_dss1.c m_ripemd.c m_ecdsa.c
403- p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c
404- bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c
405- c_all.c evp_lib.c
406- evp_pkey.c evp_pbe.c p5_crpt.c p5_crpt2.c
407- e_old.c pmeth_lib.c pmeth_fn.c pmeth_gn.c m_sigver.c
408- e_aes_cbc_hmac_sha1.c e_rc4_hmac_md5.c
409- e_chacha.c evp_aead.c e_chacha20poly1305.c
410- e_gost2814789.c m_gost2814789.c m_gostr341194.c m_streebog.c
411+ bio_b64.c
412+ bio_enc.c
413+ bio_md.c
414+ e_aes.c
415+ e_bf.c
416+ e_camellia.c
417+ e_cast.c
418+ e_chacha.c
419+ e_chacha20poly1305.c
420+ e_des.c
421+ e_des3.c
422+ e_idea.c
423+ e_null.c
424+ e_rc2.c
425+ e_rc4.c
426 e_sm4.c
427+ e_xcbc_d.c
428+ evp_aead.c
429+ evp_cipher.c
430+ evp_digest.c
431+ evp_encode.c
432+ evp_err.c
433+ evp_key.c
434+ evp_names.c
435+ evp_pbe.c
436+ evp_pkey.c
437+ m_md4.c
438+ m_md5.c
439 m_md5_sha1.c
440- )
441- gost/(
442- gost2814789.c gost89_keywrap.c gost89_params.c gost89imit_ameth.c
443- gost89imit_pmeth.c gost_asn1.c gost_err.c gostr341001.c
444- gostr341001_ameth.c gostr341001_key.c gostr341001_params.c
445- gostr341001_pmeth.c gostr341194.c streebog.c
446+ m_null.c
447+ m_ripemd.c
448+ m_sha1.c
449+ m_sha3.c
450+ m_sigver.c
451+ m_sm3.c
452+ p_legacy.c
453+ p_lib.c
454+ p_sign.c
455+ p_verify.c
456+ pmeth_fn.c
457+ pmeth_gn.c
458+ pmeth_lib.c
459 )
460 hkdf/hkdf.c
461- hmac/(hmac.c hm_ameth.c hm_pmeth.c)
462- idea/(i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c i_skey.c)
463- lhash/(lhash.c lh_stats.c)
464- md4/(md4_dgst.c md4_one.c)
465- md5/(md5_dgst.c md5_one.c)
466- modes/(cbc128.c ctr128.c cts128.c cfb128.c ofb128.c gcm128.c ccm128.c xts128.c)
467- objects/(o_names.c obj_dat.c obj_lib.c obj_err.c obj_xref.c)
468+ hmac/(hm_ameth.c hm_pmeth.c hmac.c)
469+ idea/idea.c
470+ kdf/(hkdf_evp.c kdf_err.c tls1_prf.c)
471+ lhash/lhash.c
472+ md4/md4.c
473+ md5/md5.c
474+ mlkem/(mlkem.c mlkem_internal.c mlkem_key.c)
475+ modes/(
476+ cbc128.c
477+ ccm128.c
478+ cfb128.c
479+ ctr128.c
480+ gcm128.c
481+ ofb128.c
482+ xts128.c
483+ )
484+ objects/(
485+ obj_dat.c
486+ obj_err.c
487+ obj_lib.c
488+ obj_xref.c
489+ )
490 ocsp/(
491- ocsp_asn.c ocsp_ext.c ocsp_ht.c ocsp_lib.c ocsp_cl.c
492- ocsp_srv.c ocsp_prn.c ocsp_vfy.c ocsp_err.c
493+ ocsp_asn.c
494+ ocsp_cl.c
495+ ocsp_err.c
496+ ocsp_ext.c
497+ ocsp_ht.c
498+ ocsp_lib.c
499+ ocsp_prn.c
500+ ocsp_srv.c
501+ ocsp_vfy.c
502 )
503 pem/(
504- pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c
505- pem_x509.c pem_xaux.c pem_oth.c pem_pk8.c pem_pkey.c pvkfmt.c
506+ pem_all.c
507+ pem_err.c
508+ pem_info.c
509+ pem_lib.c
510+ pem_oth.c
511+ pem_pk8.c
512+ pem_pkey.c
513+ pem_sign.c
514+ pem_x509.c
515+ pem_xaux.c
516+ pvkfmt.c
517 )
518 pkcs12/(
519- p12_add.c p12_asn.c p12_attr.c p12_crpt.c p12_crt.c p12_decr.c
520- p12_init.c p12_key.c p12_kiss.c p12_mutl.c
521- p12_utl.c p12_npas.c pk12err.c p12_p8d.c p12_p8e.c
522+ p12_add.c
523+ p12_asn.c
524+ p12_attr.c
525+ p12_crt.c
526+ p12_decr.c
527+ p12_init.c
528+ p12_key.c
529+ p12_kiss.c
530+ p12_mutl.c
531+ p12_npas.c
532+ p12_p8d.c
533+ p12_p8e.c
534+ p12_sbag.c
535+ p12_utl.c
536+ pk12err.c
537 )
538 pkcs7/(
539- pk7_asn1.c pk7_lib.c pkcs7err.c pk7_doit.c pk7_smime.c pk7_attr.c
540- pk7_mime.c bio_pk7.c
541+ pk7_asn1.c
542+ pk7_attr.c
543+ pk7_doit.c
544+ pk7_lib.c
545+ pk7_mime.c
546+ pk7_smime.c
547+ pkcs7err.c
548 )
549 poly1305/poly1305.c
550- rand/(randfile.c rand_lib.c rand_err.c)
551- rc2/(rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c)
552- ripemd/(rmd_dgst.c rmd_one.c)
553+ rand/(rand_err.c rand_lib.c randfile.c)
554+ rc2/rc2.c
555+ rc4/rc4.c
556+ ripemd/ripemd.c
557 rsa/(
558- rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c
559- rsa_pk1.c rsa_none.c rsa_oaep.c rsa_chk.c
560- rsa_pss.c rsa_x931.c rsa_asn1.c rsa_depr.c rsa_ameth.c rsa_prn.c
561- rsa_pmeth.c rsa_crpt.c rsa_meth.c
562+ rsa_ameth.c
563+ rsa_asn1.c
564+ rsa_blinding.c
565+ rsa_chk.c
566+ rsa_eay.c
567+ rsa_err.c
568+ rsa_gen.c
569+ rsa_lib.c
570+ rsa_meth.c
571+ rsa_none.c
572+ rsa_oaep.c
573+ rsa_pk1.c
574+ rsa_pmeth.c
575+ rsa_prn.c
576+ rsa_pss.c
577+ rsa_saos.c
578+ rsa_sign.c
579+ rsa_x931.c
580 )
581- sha/(sha1dgst.c sha1_one.c sha256.c sha512.c)
582+ sha/(sha1.c sha256.c sha3.c sha512.c)
583 sm3/sm3.c
584 sm4/sm4.c
585 stack/stack.c
586 ts/(
587- ts_err.c ts_req_utils.c ts_req_print.c ts_rsp_utils.c ts_rsp_print.c
588- ts_rsp_sign.c ts_rsp_verify.c ts_verify_ctx.c ts_lib.c ts_conf.c
589 ts_asn1.c
590+ ts_conf.c
591+ ts_err.c
592+ ts_lib.c
593+ ts_req_print.c
594+ ts_req_utils.c
595+ ts_rsp_print.c
596+ ts_rsp_sign.c
597+ ts_rsp_utils.c
598+ ts_rsp_verify.c
599+ ts_verify_ctx.c
600 )
601 txt_db/txt_db.c
602- ui/(ui_err.c ui_lib.c ui_openssl.c ui_util.c)
603- whrlpool/wp_dgst.c
604+ ui/(ui_err.c ui_lib.c ui_null.c ui_openssl.c)
605 x509/(
606- x509_addr.c x509_asid.c
607- x509_def.c x509_d2.c x509_r2x.c x509_cmp.c
608- x509_obj.c x509_req.c x509spki.c x509_vfy.c
609- x509_set.c x509cset.c x509rset.c x509_err.c
610- x509name.c x509_v3.c x509_ext.c x509_att.c
611- x509type.c x509_lu.c x_all.c x509_txt.c
612- x509_trs.c by_file.c by_dir.c by_mem.c x509_vpm.c
613-
614- x509_bcons.c x509_bitst.c x509_conf.c x509_extku.c x509_ia5.c x509_lib.c
615- x509_prn.c x509_utl.c x509_genn.c x509_alt.c x509_skey.c x509_akey.c x509_pku.c
616- x509_int.c x509_enum.c x509_sxnet.c x509_cpols.c x509_crld.c x509_purp.c x509_info.c
617- x509_ocsp.c x509_akeya.c x509_pmaps.c x509_pcons.c x509_ncons.c x509_pcia.c x509_pci.c
618- x509_issuer_cache.c x509_constraints.c x509_verify.c
619- pcy_cache.c pcy_node.c pcy_data.c pcy_map.c pcy_tree.c pcy_lib.c
620+ by_dir.c
621+ by_file.c
622+ by_mem.c
623+ x509_addr.c
624+ x509_akey.c
625+ x509_akeya.c
626+ x509_alt.c
627+ x509_asid.c
628+ x509_att.c
629+ x509_bcons.c
630+ x509_bitst.c
631+ x509_cmp.c
632+ x509_conf.c
633+ x509_constraints.c
634+ x509_cpols.c
635+ x509_crld.c
636+ x509_d2.c
637+ x509_def.c
638+ x509_err.c
639+ x509_ext.c
640+ x509_extku.c
641+ x509_genn.c
642+ x509_ia5.c
643+ x509_info.c
644+ x509_int.c
645+ x509_issuer_cache.c
646+ x509_lib.c
647+ x509_lu.c
648+ x509_ncons.c
649+ x509_obj.c
650+ x509_ocsp.c
651+ x509_pcons.c
652+ x509_pku.c
653+ x509_pmaps.c
654+ x509_policy.c
655+ x509_prn.c
656+ x509_purp.c
657+ x509_r2x.c
658+ x509_req.c
659+ x509_set.c
660+ x509_siginfo.c
661+ x509_skey.c
662+ x509_trs.c
663+ x509_txt.c
664+ x509_utl.c
665+ x509_v3.c
666+ x509_verify.c
667+ x509_vfy.c
668+ x509_vpm.c
669+ x509cset.c
670+ x509name.c
671+ x509rset.c
672+ x509spki.c
673+ x509type.c
674+ x_all.c
675 )
676-
677- aes/(aes_core.c aes_cbc.c)
678- bf/bf_enc.c
679- bn/bn_asm.c
680- camellia/(camellia.c cmll_cbc.c cmll_misc.c)
681- des/(des_enc.c fcrypt_b.c)
682- rc4/(rc4_enc.c rc4_skey.c)
683- whrlpool/wp_block.c
684 ) $builddir/pkg/openbsd/libbsd.a.d]])
685 file('lib/libcrypto.a', '644', '$outdir/libcrypto.a')
686
687@@ -303,7 +563,6 @@ lib('libssl.a', [[ssl/(
688 pqueue.c
689 s3_cbc.c
690 s3_lib.c
691- ssl_algs.c
692 ssl_asn1.c
693 ssl_both.c
694 ssl_cert.c
695@@ -318,6 +577,7 @@ lib('libssl.a', [[ssl/(
696 ssl_packet.c
697 ssl_pkt.c
698 ssl_rsa.c
699+ ssl_seclevel.c
700 ssl_sess.c
701 ssl_sigalgs.c
702 ssl_srvr.c
703@@ -331,29 +591,31 @@ lib('libssl.a', [[ssl/(
704 tls12_key_schedule.c
705 tls12_lib.c
706 tls12_record_layer.c
707- tls13_buffer.c
708 tls13_client.c
709 tls13_error.c
710 tls13_handshake.c
711 tls13_handshake_msg.c
712 tls13_key_schedule.c
713- tls13_key_share.c
714 tls13_legacy.c
715 tls13_lib.c
716+ tls13_quic.c
717 tls13_record.c
718 tls13_record_layer.c
719 tls13_server.c
720+ tls_buffer.c
721 tls_content.c
722+ tls_key_share.c
723+ tls_lib.c
724 ) libcrypto.a.d]])
725 file('lib/libssl.a', '644', '$outdir/libssl.a')
726
727 exe('openssl', [[apps/openssl/(
728 apps.c apps_posix.c asn1pars.c ca.c certhash.c ciphers.c cms.c crl.c
729 crl2p7.c dgst.c dh.c dhparam.c dsa.c dsaparam.c ec.c ecparam.c enc.c
730- errstr.c gendh.c gendsa.c genpkey.c genrsa.c nseq.c ocsp.c
731+ errstr.c gendh.c gendsa.c genpkey.c genrsa.c ocsp.c
732 openssl.c passwd.c pkcs12.c pkcs7.c pkcs8.c pkey.c pkeyparam.c
733 pkeyutl.c prime.c rand.c req.c rsa.c rsautl.c s_cb.c s_client.c
734- s_server.c s_socket.c s_time.c sess_id.c smime.c speed.c spkac.c ts.c
735+ s_server.c s_socket.c s_time.c sess_id.c smime.c speed.c ts.c
736 verify.c version.c x509.c
737 ) libssl.a.d libcrypto.a.d]])
738 file('bin/openssl', '755', '$outdir/openssl')
1@@ -1,4 +1,4 @@
2-From a16c45e3c7b271fb74a83d84e83189858b9b88bb Mon Sep 17 00:00:00 2001
3+From 08eee219f4fa095dcafdea8b0d8eee6da8fe87db Mon Sep 17 00:00:00 2001
4 From: Michael Forney <mforney@mforney.org>
5 Date: Wed, 24 Apr 2019 00:07:34 -0700
6 Subject: [PATCH] Use plain vsyslog for OPENSSL_showfatal
7@@ -6,14 +6,14 @@ Subject: [PATCH] Use plain vsyslog for OPENSSL_showfatal
8 The compat version just ignores the second argument anyway, and
9 patching it out allows us to continue to ignore the compat functions.
10 ---
11- crypto/cryptlib.c | 3 +--
12+ crypto/crypto_legacy.c | 3 +--
13 1 file changed, 1 insertion(+), 2 deletions(-)
14
15-diff --git a/crypto/cryptlib.c b/crypto/cryptlib.c
16-index 38d31e7ac..d6eface9b 100644
17---- a/crypto/cryptlib.c
18-+++ b/crypto/cryptlib.c
19-@@ -345,11 +345,10 @@ OPENSSL_cpuid_setup(void)
20+diff --git a/crypto/crypto_legacy.c b/crypto/crypto_legacy.c
21+index dcaa632..3c63111 100644
22+--- a/crypto/crypto_legacy.c
23++++ b/crypto/crypto_legacy.c
24+@@ -316,11 +316,10 @@ LCRYPTO_ALIAS(OPENSSL_cpu_caps);
25 static void
26 OPENSSL_showfatal(const char *fmta, ...)
27 {
28@@ -21,11 +21,11 @@ index 38d31e7ac..d6eface9b 100644
29 va_list ap;
30
31 va_start(ap, fmta);
32-- vsyslog_r(LOG_INFO|LOG_LOCAL2, &sdata, fmta, ap);
33-+ vsyslog(LOG_INFO|LOG_LOCAL2, fmta, ap);
34+- vsyslog_r(LOG_CONS|LOG_LOCAL2, &sdata, fmta, ap);
35++ vsyslog(LOG_CONS|LOG_LOCAL2, fmta, ap);
36 va_end(ap);
37 }
38
39 --
40-2.21.0
41+2.49.0
42
1@@ -1,4 +1,4 @@
2-From adc84eef824bd6d685848965bc1271272a723727 Mon Sep 17 00:00:00 2001
3+From fee3065756fb041241389e49991454ec62cc3d47 Mon Sep 17 00:00:00 2001
4 From: Michael Forney <mforney@mforney.org>
5 Date: Fri, 30 Apr 2021 18:14:07 -0700
6 Subject: [PATCH] Remove unneeded ';' at top level
7@@ -6,10 +6,11 @@ Subject: [PATCH] Remove unneeded ';' at top level
8 This is not allowed in the ISO C grammar.
9 ---
10 crypto/x509/x509_issuer_cache.c | 4 ++--
11- 1 file changed, 2 insertions(+), 2 deletions(-)
12+ crypto/x509/x509_lib.c | 2 +-
13+ 2 files changed, 3 insertions(+), 3 deletions(-)
14
15 diff --git a/crypto/x509/x509_issuer_cache.c b/crypto/x509/x509_issuer_cache.c
16-index 26cde17..d1af24a 100644
17+index 070e85b..12afd6d 100644
18 --- a/crypto/x509/x509_issuer_cache.c
19 +++ b/crypto/x509/x509_issuer_cache.c
20 @@ -53,8 +53,8 @@ static TAILQ_HEAD(lruqueue, x509_issuer) x509_issuer_lru =
21@@ -23,6 +24,19 @@ index 26cde17..d1af24a 100644
22
23 /*
24 * Set the maximum number of cached entries. On additions to the cache
25+diff --git a/crypto/x509/x509_lib.c b/crypto/x509/x509_lib.c
26+index 0285ac0..d5f07e0 100644
27+--- a/crypto/x509/x509_lib.c
28++++ b/crypto/x509/x509_lib.c
29+@@ -162,7 +162,7 @@ X509V3_EXT_get_nid(int nid)
30+ default:
31+ return NULL;
32+ }
33+-};
34++}
35+ LCRYPTO_ALIAS(X509V3_EXT_get_nid);
36+
37+ const X509V3_EXT_METHOD *
38 --
39-2.31.1
40+2.49.0
41
1@@ -0,0 +1,53 @@
2+From 20e0b159b36aabcdd7b33c07f8a20b4dd9c2a25f Mon Sep 17 00:00:00 2001
3+From: Michael Forney <mforney@mforney.org>
4+Date: Thu, 2 Apr 2026 23:45:13 -0700
5+Subject: [PATCH] Use _Static_assert instead of asm("") for empty declaration
6+
7+Also, use the same technique for LCRYPTO_USED.
8+---
9+ crypto/hidden/crypto_namespace.h | 6 +++---
10+ ssl/hidden/ssl_namespace.h | 4 ++--
11+ 2 files changed, 5 insertions(+), 5 deletions(-)
12+
13+diff --git a/crypto/hidden/crypto_namespace.h b/crypto/hidden/crypto_namespace.h
14+index 43c8718..4ad8ce0 100644
15+--- a/crypto/hidden/crypto_namespace.h
16++++ b/crypto/hidden/crypto_namespace.h
17+@@ -42,13 +42,13 @@
18+ # define LCRYPTO_USED(x) typeof(x) x asm("_libre_"#x)
19+ #endif
20+ #else
21+-# define LCRYPTO_UNUSED(x)
22+-# define LCRYPTO_USED(x)
23++# define LCRYPTO_UNUSED(x) _Static_assert(1, "")
24++# define LCRYPTO_USED(x) _Static_assert(1, "")
25+ # define LCRYPTO_ALIAS1(pre,x)
26+ #ifdef _MSC_VER
27+ # define LCRYPTO_ALIAS(x)
28+ #else
29+-# define LCRYPTO_ALIAS(x) asm("")
30++# define LCRYPTO_ALIAS(x) _Static_assert(1, "")
31+ #endif /* _MSC_VER */
32+ #endif
33+
34+diff --git a/ssl/hidden/ssl_namespace.h b/ssl/hidden/ssl_namespace.h
35+index 763dcd7..d48c95e 100644
36+--- a/ssl/hidden/ssl_namespace.h
37++++ b/ssl/hidden/ssl_namespace.h
38+@@ -34,11 +34,11 @@
39+ #endif
40+ #else
41+ #define LSSL_UNUSED(x)
42+-#define LSSL_USED(x)
43++#define LSSL_USED(x) _Static_assert(1, "")
44+ #ifdef _MSC_VER
45+ #define LSSL_ALIAS(x)
46+ #else
47+-#define LSSL_ALIAS(x) asm("")
48++#define LSSL_ALIAS(x) _Static_assert(1, "")
49+ #endif /* _MSC_VER */
50+ #endif
51+
52+--
53+2.49.0
54+
1@@ -0,0 +1,919 @@
2+From 89e3854e0e38996edb165111a24b1bf498b392dc Mon Sep 17 00:00:00 2001
3+From: Michael Forney <mforney@mforney.org>
4+Date: Thu, 2 Apr 2026 23:52:53 -0700
5+Subject: [PATCH] Avoid implicit pointer sign conversions
6+
7+s_client_options:
8+All option values for clr and off used here fit in a 32-bit int,
9+the largest being SSL_OP_NO_TLSv1_3=0x20000000L, so make these
10+fields int.
11+
12+sm4_ctr_cipher:
13+CRYPTO_ctr128_encrypt expects an unsigned int *, but ctx->num is
14+an int. Use a local variable with the correct type to avoid aliasing
15+issues.
16+
17+addr_validate_path_internal:
18+length is used twice, its address is passed to
19+IPAddressFamily_afi_length, expecting an int *, and addr_contains, also
20+expecting int, so change its type to int.
21+
22+tls_decrypt_ticket:
23+hlen is used for the result of HMAC_size. Though the manual documents
24+this as returning a size_t, it actually returns an int since it
25+wraps EVP_MD_size, which can return a negative value. HMAC_Final
26+expects an unsigned int *, so we need a separate variable for the
27+final length.
28+
29+tls13_new_session_ticket_recv:
30+session_id_length is used twice, its address is passed to EVP_Digest
31+which expects an unsigned int, and then it is saved in
32+SSL_SESSION.session_id_length, a size_t. So its type from int to
33+unsigned int.
34+
35+All other changes simply make explicit the conversions among pointers
36+to character types already being done. These implicit conversions
37+are constraint violations in ISO C.
38+---
39+ apps/openssl/ca.c | 6 +++---
40+ apps/openssl/cms.c | 2 +-
41+ apps/openssl/s_client.c | 4 ++--
42+ crypto/asn1/a_object.c | 12 ++++++------
43+ crypto/asn1/a_time.c | 2 +-
44+ crypto/asn1/a_time_tm.c | 22 ++++++++++++----------
45+ crypto/bio/b_dump.c | 2 +-
46+ crypto/bio/bss_mem.c | 4 ++--
47+ crypto/bn/bn_convert.c | 8 ++++----
48+ crypto/bn/bn_print.c | 2 +-
49+ crypto/evp/e_sm4.c | 4 +++-
50+ crypto/ocsp/ocsp_cl.c | 4 ++--
51+ crypto/pkcs7/pk7_attr.c | 2 +-
52+ crypto/x509/x509_addr.c | 2 +-
53+ crypto/x509/x509_constraints.c | 18 +++++++++---------
54+ crypto/x509/x509_obj.c | 10 +++++-----
55+ crypto/x509/x509_utl.c | 8 ++++----
56+ crypto/x509/x509_verify.c | 3 ++-
57+ crypto/x509/x509name.c | 3 ++-
58+ ssl/s3_lib.c | 2 +-
59+ ssl/ssl_clnt.c | 2 +-
60+ ssl/ssl_lib.c | 8 ++++----
61+ ssl/ssl_srvr.c | 2 +-
62+ ssl/ssl_tlsext.c | 3 ++-
63+ ssl/ssl_txt.c | 4 ++--
64+ ssl/t1_lib.c | 4 +++-
65+ ssl/tls13_client.c | 8 ++++----
66+ ssl/tls13_key_schedule.c | 12 ++++++------
67+ ssl/tls13_legacy.c | 2 +-
68+ ssl/tls13_lib.c | 3 ++-
69+ ssl/tls13_record_layer.c | 2 +-
70+ ssl/tls13_server.c | 10 +++++-----
71+ 32 files changed, 95 insertions(+), 85 deletions(-)
72+
73+diff --git a/apps/openssl/ca.c b/apps/openssl/ca.c
74+index b644b74..0d78f63 100644
75+--- a/apps/openssl/ca.c
76++++ b/apps/openssl/ca.c
77+@@ -2153,7 +2153,7 @@ do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
78+
79+ if ((tm = X509_get_notAfter(ret)) == NULL)
80+ goto err;
81+- row[DB_exp_date] = strndup(tm->data, tm->length);
82++ row[DB_exp_date] = strndup((char *)tm->data, tm->length);
83+ if (row[DB_type] == NULL || row[DB_exp_date] == NULL) {
84+ BIO_printf(bio_err, "Memory allocation failure\n");
85+ goto err;
86+@@ -2280,7 +2280,7 @@ do_revoke(X509 *x509, CA_DB *db, int type, char *value)
87+
88+ if ((tm = X509_get_notAfter(x509)) == NULL)
89+ goto err;
90+- row[DB_exp_date] = strndup(tm->data, tm->length);
91++ row[DB_exp_date] = strndup((char *)tm->data, tm->length);
92+ if (row[DB_type] == NULL || row[DB_exp_date] == NULL) {
93+ BIO_printf(bio_err, "Memory allocation failure\n");
94+ goto err;
95+@@ -2443,7 +2443,7 @@ do_updatedb(CA_DB *db)
96+ cnt = -1;
97+ goto err;
98+ }
99+- a_tm_s = strndup(a_tm->data, a_tm->length);
100++ a_tm_s = strndup((char *)a_tm->data, a_tm->length);
101+ if (a_tm_s == NULL) {
102+ cnt = -1;
103+ goto err;
104+diff --git a/apps/openssl/cms.c b/apps/openssl/cms.c
105+index 458ddb0..26197ea 100644
106+--- a/apps/openssl/cms.c
107++++ b/apps/openssl/cms.c
108+@@ -1530,7 +1530,7 @@ cms_main(int argc, char **argv)
109+ cfg.secret_keyid = NULL;
110+ }
111+ if (cfg.pwri_pass != NULL) {
112+- pwri_tmp = strdup(cfg.pwri_pass);
113++ pwri_tmp = (unsigned char *)strdup((char *)cfg.pwri_pass);
114+ if (pwri_tmp == NULL)
115+ goto end;
116+ if (CMS_add0_recipient_password(cms, -1, NID_undef,
117+diff --git a/apps/openssl/s_client.c b/apps/openssl/s_client.c
118+index 84718c1..90c203e 100644
119+--- a/apps/openssl/s_client.c
120++++ b/apps/openssl/s_client.c
121+@@ -193,7 +193,7 @@ static struct {
122+ char *cert_file;
123+ int cert_format;
124+ char *cipher;
125+- unsigned int clr;
126++ int clr;
127+ char *connect;
128+ int crlf;
129+ int debug;
130+@@ -214,7 +214,7 @@ static struct {
131+ int nbio_test;
132+ int no_servername;
133+ char *npn_in;
134+- unsigned int off;
135++ int off;
136+ char *passarg;
137+ int peekaboo;
138+ char *port;
139+diff --git a/crypto/asn1/a_object.c b/crypto/asn1/a_object.c
140+index 333ac60..25e7a2a 100644
141+--- a/crypto/asn1/a_object.c
142++++ b/crypto/asn1/a_object.c
143+@@ -182,7 +182,7 @@ oid_add_arc_txt(CBB *cbb, uint64_t arc, int first)
144+ n = snprintf(s, sizeof(s), fmt, (unsigned long long)arc);
145+ if (n < 0 || (size_t)n >= sizeof(s))
146+ return 0;
147+- if (!CBB_add_bytes(cbb, s, n))
148++ if (!CBB_add_bytes(cbb, (uint8_t *)s, n))
149+ return 0;
150+
151+ return 1;
152+@@ -343,7 +343,7 @@ a2d_ASN1_OBJECT(unsigned char *out, int out_len, const char *in, int in_len)
153+ if (in_len <= 0)
154+ goto err;
155+
156+- CBS_init(&cbs, in, in_len);
157++ CBS_init(&cbs, (uint8_t *)in, in_len);
158+
159+ if (!CBB_init(&cbb, 0))
160+ goto err;
161+@@ -401,7 +401,7 @@ i2t_ASN1_OBJECT_name(const ASN1_OBJECT *aobj, CBB *cbb, const char **out_name)
162+
163+ *out_name = name;
164+
165+- if (!CBB_add_bytes(cbb, name, strlen(name)))
166++ if (!CBB_add_bytes(cbb, (uint8_t *)name, strlen(name)))
167+ return 0;
168+
169+ /* NUL terminate. */
170+@@ -448,7 +448,7 @@ i2t_ASN1_OBJECT_internal(const ASN1_OBJECT *aobj, char *buf, int buf_len, int no
171+ if (!CBB_finish(&cbb, &data, &data_len))
172+ goto err;
173+
174+- ret = strlcpy(buf, data, buf_len);
175++ ret = strlcpy(buf, (char *)data, buf_len);
176+ err:
177+ CBB_cleanup(&cbb);
178+ free(data);
179+@@ -474,7 +474,7 @@ t2i_ASN1_OBJECT_internal(const char *oid)
180+
181+ memset(&cbb, 0, sizeof(cbb));
182+
183+- CBS_init(&cbs, oid, strlen(oid));
184++ CBS_init(&cbs, (uint8_t *)oid, strlen(oid));
185+
186+ if (!CBB_init(&cbb, 0))
187+ goto err;
188+@@ -521,7 +521,7 @@ i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *aobj)
189+ if (!CBB_finish(&cbb, &data, &data_len))
190+ goto err;
191+
192+- ret = BIO_write(bp, data, strlen(data));
193++ ret = BIO_write(bp, data, strlen((char *)data));
194+
195+ err:
196+ CBB_cleanup(&cbb);
197+diff --git a/crypto/asn1/a_time.c b/crypto/asn1/a_time.c
198+index 3deff56..10634c0 100644
199+--- a/crypto/asn1/a_time.c
200++++ b/crypto/asn1/a_time.c
201+@@ -99,7 +99,7 @@ ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm)
202+ time_t now;
203+
204+ if (s != NULL)
205+- return ASN1_time_parse(s->data, s->length, tm, 0) != -1;
206++ return ASN1_time_parse((char *)s->data, s->length, tm, 0) != -1;
207+
208+ time(&now);
209+ memset(tm, 0, sizeof(*tm));
210+diff --git a/crypto/asn1/a_time_tm.c b/crypto/asn1/a_time_tm.c
211+index dd28931..c0e0d62 100644
212+--- a/crypto/asn1/a_time_tm.c
213++++ b/crypto/asn1/a_time_tm.c
214+@@ -96,7 +96,7 @@ tm_to_gentime(struct tm *tm, ASN1_TIME *atime)
215+ }
216+
217+ free(atime->data);
218+- atime->data = time_str;
219++ atime->data = (unsigned char *)time_str;
220+ atime->length = GENTIME_LENGTH;
221+ atime->type = V_ASN1_GENERALIZEDTIME;
222+
223+@@ -122,7 +122,7 @@ tm_to_utctime(struct tm *tm, ASN1_TIME *atime)
224+ }
225+
226+ free(atime->data);
227+- atime->data = time_str;
228++ atime->data = (unsigned char *)time_str;
229+ atime->length = UTCTIME_LENGTH;
230+ atime->type = V_ASN1_UTCTIME;
231+
232+@@ -293,7 +293,7 @@ ASN1_time_parse(const char *bytes, size_t len, struct tm *tm, int mode)
233+ if (bytes == NULL)
234+ return -1;
235+
236+- CBS_init(&cbs, bytes, len);
237++ CBS_init(&cbs, (uint8_t *)bytes, len);
238+
239+ if (CBS_len(&cbs) == UTCTIME_LENGTH)
240+ type = V_ASN1_UTCTIME;
241+@@ -401,7 +401,8 @@ ASN1_TIME_check(const ASN1_TIME *t)
242+ {
243+ if (t->type != V_ASN1_GENERALIZEDTIME && t->type != V_ASN1_UTCTIME)
244+ return 0;
245+- return t->type == ASN1_time_parse(t->data, t->length, NULL, t->type);
246++ return t->type == ASN1_time_parse((char *)t->data, t->length, NULL,
247++ t->type);
248+ }
249+ LCRYPTO_ALIAS(ASN1_TIME_check);
250+
251+@@ -414,7 +415,7 @@ ASN1_TIME_to_generalizedtime(const ASN1_TIME *t, ASN1_GENERALIZEDTIME **out)
252+ if (t->type != V_ASN1_GENERALIZEDTIME && t->type != V_ASN1_UTCTIME)
253+ goto err;
254+
255+- if (t->type != ASN1_time_parse(t->data, t->length, &tm, t->type))
256++ if (t->type != ASN1_time_parse((char *)t->data, t->length, &tm, t->type))
257+ goto err;
258+
259+ if (out == NULL || (agt = *out) == NULL)
260+@@ -460,7 +461,7 @@ ASN1_TIME_cmp_time_t_internal(const ASN1_TIME *s, time_t t2, int mode)
261+ * one of those pervasive things from OpenSSL we must continue with.
262+ */
263+
264+- if (ASN1_time_parse(s->data, s->length, &tm1, mode) == -1)
265++ if (ASN1_time_parse((char *)s->data, s->length, &tm1, mode) == -1)
266+ return -2;
267+
268+ if (!asn1_time_time_t_to_tm(&t2, &tm2))
269+@@ -480,10 +481,10 @@ ASN1_TIME_compare(const ASN1_TIME *t1, const ASN1_TIME *t2)
270+ if (t2->type != V_ASN1_UTCTIME && t2->type != V_ASN1_GENERALIZEDTIME)
271+ return -2;
272+
273+- if (ASN1_time_parse(t1->data, t1->length, &tm1, t1->type) == -1)
274++ if (ASN1_time_parse((char *)t1->data, t1->length, &tm1, t1->type) == -1)
275+ return -2;
276+
277+- if (ASN1_time_parse(t2->data, t2->length, &tm2, t2->type) == -1)
278++ if (ASN1_time_parse((char *)t2->data, t2->length, &tm2, t2->type) == -1)
279+ return -2;
280+
281+ return ASN1_time_tm_cmp(&tm1, &tm2);
282+@@ -511,7 +512,7 @@ ASN1_UTCTIME_check(const ASN1_UTCTIME *d)
283+ {
284+ if (d->type != V_ASN1_UTCTIME)
285+ return 0;
286+- return d->type == ASN1_time_parse(d->data, d->length, NULL, d->type);
287++ return d->type == ASN1_time_parse((char *)d->data, d->length, NULL, d->type);
288+ }
289+ LCRYPTO_ALIAS(ASN1_UTCTIME_check);
290+
291+@@ -557,7 +558,8 @@ ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *d)
292+ {
293+ if (d->type != V_ASN1_GENERALIZEDTIME)
294+ return 0;
295+- return d->type == ASN1_time_parse(d->data, d->length, NULL, d->type);
296++ return d->type == ASN1_time_parse((char *)d->data, d->length, NULL,
297++ d->type);
298+ }
299+ LCRYPTO_ALIAS(ASN1_GENERALIZEDTIME_check);
300+
301+diff --git a/crypto/bio/b_dump.c b/crypto/bio/b_dump.c
302+index 3f67320..40b09dc 100644
303+--- a/crypto/bio/b_dump.c
304++++ b/crypto/bio/b_dump.c
305+@@ -86,7 +86,7 @@ BIO_dump_indent(BIO *bio, const char *s, int len, int indent)
306+
307+ if (len < 0)
308+ goto err;
309+- CBS_init(&cbs, s, len);
310++ CBS_init(&cbs, (uint8_t *)s, len);
311+
312+ if (indent < 0)
313+ indent = 0;
314+diff --git a/crypto/bio/bss_mem.c b/crypto/bio/bss_mem.c
315+index 0fa6317..afcd6b2 100644
316+--- a/crypto/bio/bss_mem.c
317++++ b/crypto/bio/bss_mem.c
318+@@ -84,7 +84,7 @@ bio_mem_pending(struct bio_mem *bm)
319+ static uint8_t *
320+ bio_mem_read_ptr(struct bio_mem *bm)
321+ {
322+- return &bm->buf->data[bm->read_offset];
323++ return (uint8_t *)&bm->buf->data[bm->read_offset];
324+ }
325+
326+ static int mem_new(BIO *bio);
327+@@ -349,7 +349,7 @@ mem_gets(BIO *bio, char *out, int out_len)
328+ return 0;
329+ }
330+
331+- p = bio_mem_read_ptr(bm);
332++ p = (char *)bio_mem_read_ptr(bm);
333+ for (i = 0; i < out_max; i++) {
334+ if (p[i] == '\n') {
335+ i++;
336+diff --git a/crypto/bn/bn_convert.c b/crypto/bn/bn_convert.c
337+index ca5c7d7..60d0c86 100644
338+--- a/crypto/bn/bn_convert.c
339++++ b/crypto/bn/bn_convert.c
340+@@ -253,7 +253,7 @@ BN_asc2bn(BIGNUM **bnp, const char *s)
341+ if ((s_len = strlen(s)) == 0)
342+ return 0;
343+
344+- CBS_init(&cbs, s, s_len);
345++ CBS_init(&cbs, (uint8_t *)s, s_len);
346+
347+ /* Handle negative sign. */
348+ if (!CBS_peek_u8(&cbs, &v))
349+@@ -365,7 +365,7 @@ BN_bn2dec(const BIGNUM *bn)
350+ CBB_cleanup(&cbb);
351+ freezero(data, data_len);
352+
353+- return s;
354++ return (char *)s;
355+ }
356+ LCRYPTO_ALIAS(BN_bn2dec);
357+
358+@@ -468,7 +468,7 @@ BN_dec2bn(BIGNUM **bnp, const char *s)
359+ if ((s_len = strlen(s)) == 0)
360+ return 0;
361+
362+- CBS_init(&cbs, s, s_len);
363++ CBS_init(&cbs, (uint8_t *)s, s_len);
364+
365+ return bn_dec2bn_cbs(bnp, &cbs);
366+ }
367+@@ -669,7 +669,7 @@ BN_hex2bn(BIGNUM **bnp, const char *s)
368+ if ((s_len = strlen(s)) == 0)
369+ return 0;
370+
371+- CBS_init(&cbs, s, s_len);
372++ CBS_init(&cbs, (uint8_t *)s, s_len);
373+
374+ return bn_hex2bn_cbs(bnp, &cbs);
375+ }
376+diff --git a/crypto/bn/bn_print.c b/crypto/bn/bn_print.c
377+index cd8b663..6557324 100644
378+--- a/crypto/bn/bn_print.c
379++++ b/crypto/bn/bn_print.c
380+@@ -82,7 +82,7 @@ bn_print_bignum(BIO *bio, const BIGNUM *bn, int indent)
381+ if (!bn_bn2hex_nosign(bn, &hex, &hex_len))
382+ goto err;
383+
384+- CBS_init(&cbs, hex, hex_len);
385++ CBS_init(&cbs, (uint8_t *)hex, hex_len);
386+
387+ if (BN_is_negative(bn)) {
388+ if (BIO_printf(bio, " (Negative)") <= 0)
389+diff --git a/crypto/evp/e_sm4.c b/crypto/evp/e_sm4.c
390+index cde2f6c..9f8b13e 100644
391+--- a/crypto/evp/e_sm4.c
392++++ b/crypto/evp/e_sm4.c
393+@@ -237,9 +237,11 @@ sm4_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in,
394+ size_t len)
395+ {
396+ EVP_SM4_KEY *key = ((EVP_SM4_KEY *)(ctx)->cipher_data);
397++ unsigned int num;
398+
399+ CRYPTO_ctr128_encrypt(in, out, len, &key->ks, ctx->iv, ctx->buf,
400+- &ctx->num, (block128_f)SM4_encrypt);
401++ &num, (block128_f)SM4_encrypt);
402++ ctx->num = num;
403+ return 1;
404+ }
405+
406+diff --git a/crypto/ocsp/ocsp_cl.c b/crypto/ocsp/ocsp_cl.c
407+index 460c1bc..15a70b1 100644
408+--- a/crypto/ocsp/ocsp_cl.c
409++++ b/crypto/ocsp/ocsp_cl.c
410+@@ -410,7 +410,7 @@ OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd,
411+ * (such as UTCTIME permitted/required by RFC 5280 for certificates)
412+ */
413+ /* Check that thisUpdate is valid. */
414+- if (ASN1_time_parse(thisupd->data, thisupd->length, &tm_this,
415++ if (ASN1_time_parse((char *)thisupd->data, thisupd->length, &tm_this,
416+ V_ASN1_GENERALIZEDTIME) != V_ASN1_GENERALIZEDTIME) {
417+ OCSPerror(OCSP_R_ERROR_IN_THISUPDATE_FIELD);
418+ return 0;
419+@@ -433,7 +433,7 @@ OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd,
420+ return 1;
421+
422+ /* Check that nextUpdate is valid. */
423+- if (ASN1_time_parse(nextupd->data, nextupd->length, &tm_next,
424++ if (ASN1_time_parse((char *)nextupd->data, nextupd->length, &tm_next,
425+ V_ASN1_GENERALIZEDTIME) != V_ASN1_GENERALIZEDTIME) {
426+ OCSPerror(OCSP_R_ERROR_IN_NEXTUPDATE_FIELD);
427+ return 0;
428+diff --git a/crypto/pkcs7/pk7_attr.c b/crypto/pkcs7/pk7_attr.c
429+index f2e1780..cb6b2e8 100644
430+--- a/crypto/pkcs7/pk7_attr.c
431++++ b/crypto/pkcs7/pk7_attr.c
432+@@ -192,7 +192,7 @@ PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t)
433+ }
434+
435+ /* RFC 5652, section 11.3 - UTCTime for the years 1950-2049. */
436+- if (ASN1_time_parse(tm->data, tm->length, NULL, tm->type) == -1)
437++ if (ASN1_time_parse((char *)tm->data, tm->length, NULL, tm->type) == -1)
438+ goto err;
439+ if (!PKCS7_add_signed_attribute(si, NID_pkcs9_signingTime, tm->type, tm))
440+ goto err;
441+diff --git a/crypto/x509/x509_addr.c b/crypto/x509/x509_addr.c
442+index b4ee92a..615375d 100644
443+--- a/crypto/x509/x509_addr.c
444++++ b/crypto/x509/x509_addr.c
445+@@ -1875,7 +1875,7 @@ addr_validate_path_internal(X509_STORE_CTX *ctx, STACK_OF(X509) *chain,
446+ X509 *cert = NULL;
447+ int depth = -1;
448+ int i;
449+- unsigned int length;
450++ int length;
451+ int ret = 1;
452+
453+ /* We need a non-empty chain to test against. */
454+diff --git a/crypto/x509/x509_constraints.c b/crypto/x509/x509_constraints.c
455+index 0773d2b..673a159 100644
456+--- a/crypto/x509/x509_constraints.c
457++++ b/crypto/x509/x509_constraints.c
458+@@ -347,7 +347,7 @@ x509_constraints_parse_mailbox(CBS *candidate,
459+
460+ for (i = 0; i < len; i++) {
461+ char c;
462+- if (!CBS_get_u8(©, &c))
463++ if (!CBS_get_u8(©, (uint8_t *)&c))
464+ goto bad;
465+ /* non ascii, cr, lf, or nul is never allowed */
466+ if (!isascii(c) || c == '\r' || c == '\n' || c == '\0')
467+@@ -445,7 +445,7 @@ x509_constraints_parse_mailbox(CBS *candidate,
468+ }
469+ if (candidate_local == NULL || candidate_domain == NULL)
470+ goto bad;
471+- CBS_init(&domain_cbs, candidate_domain, strlen(candidate_domain));
472++ CBS_init(&domain_cbs, (uint8_t *)candidate_domain, strlen(candidate_domain));
473+ if (!x509_constraints_valid_host(&domain_cbs, 0))
474+ goto bad;
475+
476+@@ -549,7 +549,7 @@ x509_constraints_uri_host(uint8_t *uri, size_t len, char **hostpart)
477+ if (host != NULL)
478+ break;
479+ /* start after the userinfo part */
480+- host = uri + i + 1;
481++ host = (char *)uri + i + 1;
482+ continue;
483+ }
484+ /* did we find the end? */
485+@@ -561,8 +561,8 @@ x509_constraints_uri_host(uint8_t *uri, size_t len, char **hostpart)
486+ if (hostlen == 0)
487+ return 0;
488+ if (host == NULL)
489+- host = authority;
490+- CBS_init(&host_cbs, host, hostlen);
491++ host = (char *)authority;
492++ CBS_init(&host_cbs, (uint8_t *)host, hostlen);
493+ if (!x509_constraints_valid_host(&host_cbs, 1))
494+ return 0;
495+ if (hostpart != NULL && !CBS_strdup(&host_cbs, hostpart))
496+@@ -648,8 +648,8 @@ x509_constraints_uri(uint8_t *uri, size_t ulen, uint8_t *constraint,
497+ *error = X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX;
498+ goto err;
499+ }
500+- ret = x509_constraints_domain(hostpart, strlen(hostpart), constraint,
501+- len);
502++ ret = x509_constraints_domain(hostpart, strlen(hostpart),
503++ (char *)constraint, len);
504+ err:
505+ free(hostpart);
506+ return ret;
507+@@ -999,7 +999,7 @@ x509_constraints_validate(GENERAL_NAME *constraint,
508+ case GEN_DNS:
509+ if (!x509_constraints_valid_domain_constraint(&cbs))
510+ goto err;
511+- if ((name->name = strndup(bytes, len)) == NULL) {
512++ if ((name->name = strndup((char *)bytes, len)) == NULL) {
513+ error = X509_V_ERR_OUT_OF_MEM;
514+ goto err;
515+ }
516+@@ -1045,7 +1045,7 @@ x509_constraints_validate(GENERAL_NAME *constraint,
517+ case GEN_URI:
518+ if (!x509_constraints_valid_domain_constraint(&cbs))
519+ goto err;
520+- if ((name->name = strndup(bytes, len)) == NULL) {
521++ if ((name->name = strndup((char *)bytes, len)) == NULL) {
522+ error = X509_V_ERR_OUT_OF_MEM;
523+ goto err;
524+ }
525+diff --git a/crypto/x509/x509_obj.c b/crypto/x509/x509_obj.c
526+index db1741c..43afeb8 100644
527+--- a/crypto/x509/x509_obj.c
528++++ b/crypto/x509/x509_obj.c
529+@@ -78,13 +78,13 @@ X509_NAME_ENTRY_add_object_cbb(CBB *cbb, const ASN1_OBJECT *aobj)
530+ /* Prefer SN over LN, and fall back to textual representation of OID. */
531+ if ((nid = OBJ_obj2nid(aobj)) != NID_undef) {
532+ if ((str = OBJ_nid2sn(nid)) != NULL)
533+- return CBB_add_bytes(cbb, str, strlen(str));
534++ return CBB_add_bytes(cbb, (uint8_t *)str, strlen(str));
535+ if ((str = OBJ_nid2ln(nid)) != NULL)
536+- return CBB_add_bytes(cbb, str, strlen(str));
537++ return CBB_add_bytes(cbb, (uint8_t *)str, strlen(str));
538+ }
539+ if (OBJ_obj2txt(buf, sizeof(buf), aobj, 1) == 0)
540+ return 0;
541+- return CBB_add_bytes(cbb, buf, strlen(buf));
542++ return CBB_add_bytes(cbb, (uint8_t *)buf, strlen(buf));
543+ }
544+
545+ static int
546+@@ -183,9 +183,9 @@ X509_NAME_oneline(const X509_NAME *a, char *buf, int len)
547+ goto err;
548+
549+ if (buf == NULL)
550+- return line;
551++ return (char *)line;
552+
553+- strlcpy(buf, line, len);
554++ strlcpy(buf, (char *)line, len);
555+ free(line);
556+
557+ return buf;
558+diff --git a/crypto/x509/x509_utl.c b/crypto/x509/x509_utl.c
559+index 4be8630..0960fc9 100644
560+--- a/crypto/x509/x509_utl.c
561++++ b/crypto/x509/x509_utl.c
562+@@ -508,7 +508,7 @@ hex_to_string(const unsigned char *buffer, long len)
563+ err:
564+ CBB_cleanup(&cbb);
565+
566+- return out;
567++ return (char *)out;
568+ }
569+ LCRYPTO_ALIAS(hex_to_string);
570+
571+@@ -573,7 +573,7 @@ string_to_hex(const char *str, long *len)
572+ goto err;
573+ }
574+
575+- CBS_init(&cbs, str, strlen(str));
576++ CBS_init(&cbs, (uint8_t *)str, strlen(str));
577+ while (CBS_len(&cbs) > 0) {
578+ /*
579+ * Skipping only a single colon between two pairs of digits
580+@@ -817,7 +817,7 @@ equal_nocase(const unsigned char *pattern, size_t pattern_len,
581+ skip_prefix(&pattern, &pattern_len, subject, subject_len, flags);
582+ if (pattern_len != subject_len)
583+ return 0;
584+- return (strncasecmp(pattern, subject, pattern_len) == 0);
585++ return (strncasecmp((char *)pattern, (char *)subject, pattern_len) == 0);
586+ }
587+
588+ /* Compare using strncmp. */
589+@@ -832,7 +832,7 @@ equal_case(const unsigned char *pattern, size_t pattern_len,
590+ skip_prefix(&pattern, &pattern_len, subject, subject_len, flags);
591+ if (pattern_len != subject_len)
592+ return 0;
593+- return (strncmp(pattern, subject, pattern_len) == 0);
594++ return (strncmp((char *)pattern, (char *)subject, pattern_len) == 0);
595+ }
596+
597+ /*
598+diff --git a/crypto/x509/x509_verify.c b/crypto/x509/x509_verify.c
599+index f25e2b3..c52be9e 100644
600+--- a/crypto/x509/x509_verify.c
601++++ b/crypto/x509/x509_verify.c
602+@@ -55,7 +55,8 @@ x509_verify_asn1_time_to_time_t(const ASN1_TIME *atime, int notAfter,
603+ if (atime == NULL)
604+ return 0;
605+
606+- type = ASN1_time_parse(atime->data, atime->length, &tm, atime->type);
607++ type = ASN1_time_parse((char *)atime->data, atime->length, &tm,
608++ atime->type);
609+ if (type == -1)
610+ return 0;
611+
612+diff --git a/crypto/x509/x509name.c b/crypto/x509/x509name.c
613+index 9a582d3..20498dd 100644
614+--- a/crypto/x509/x509name.c
615++++ b/crypto/x509/x509name.c
616+@@ -107,7 +107,8 @@ X509_NAME_get_text_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, char *buf,
617+ goto err;
618+ /* We still support the "pass NULL to find out how much" API */
619+ if (buf != NULL) {
620+- if (len <= 0 || !CBS_write_bytes(&cbs, buf, len - 1, NULL))
621++ if (len <= 0 || !CBS_write_bytes(&cbs, (uint8_t *)buf,
622++ len - 1, NULL))
623+ goto err;
624+ /* It must be a C string */
625+ buf[text_len] = '\0';
626+diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c
627+index 86b32ae..e760c0b 100644
628+--- a/ssl/s3_lib.c
629++++ b/ssl/s3_lib.c
630+@@ -1548,7 +1548,7 @@ _SSL_set_tlsext_host_name(SSL *s, const char *name)
631+ if (name == NULL)
632+ return 1;
633+
634+- CBS_init(&cbs, name, strlen(name));
635++ CBS_init(&cbs, (uint8_t *)name, strlen(name));
636+
637+ if (!tlsext_sni_is_valid_hostname(&cbs, &is_ip)) {
638+ SSLerror(s, SSL_R_SSL3_EXT_INVALID_SERVERNAME);
639+diff --git a/ssl/ssl_clnt.c b/ssl/ssl_clnt.c
640+index 0d3dcf7..9a59d98 100644
641+--- a/ssl/ssl_clnt.c
642++++ b/ssl/ssl_clnt.c
643+@@ -2330,7 +2330,7 @@ ssl3_send_client_change_cipher_spec(SSL *s)
644+ memset(&cbb, 0, sizeof(cbb));
645+
646+ if (s->s3->hs.state == SSL3_ST_CW_CHANGE_A) {
647+- if (!CBB_init_fixed(&cbb, s->init_buf->data,
648++ if (!CBB_init_fixed(&cbb, (uint8_t *)s->init_buf->data,
649+ s->init_buf->length))
650+ goto err;
651+ if (!CBB_add_u8(&cbb, SSL3_MT_CCS))
652+diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
653+index 630724e..32ab533 100644
654+--- a/ssl/ssl_lib.c
655++++ b/ssl/ssl_lib.c
656+@@ -2004,12 +2004,12 @@ SSL_export_keying_material(SSL *s, unsigned char *out, size_t out_len,
657+ context = NULL;
658+ context_len = 0;
659+ }
660+- return tls13_exporter(s->tls13, label, label_len, context,
661+- context_len, out, out_len);
662++ return tls13_exporter(s->tls13, (uint8_t *)label, label_len,
663++ context, context_len, out, out_len);
664+ }
665+
666+- return tls12_exporter(s, label, label_len, context, context_len,
667+- use_context, out, out_len);
668++ return tls12_exporter(s, (uint8_t *)label, label_len, context,
669++ context_len, use_context, out, out_len);
670+ }
671+ LSSL_ALIAS(SSL_export_keying_material);
672+
673+diff --git a/ssl/ssl_srvr.c b/ssl/ssl_srvr.c
674+index db4ba38..4dfaaf5 100644
675+--- a/ssl/ssl_srvr.c
676++++ b/ssl/ssl_srvr.c
677+@@ -2371,7 +2371,7 @@ ssl3_send_server_change_cipher_spec(SSL *s)
678+ memset(&cbb, 0, sizeof(cbb));
679+
680+ if (s->s3->hs.state == SSL3_ST_SW_CHANGE_A) {
681+- if (!CBB_init_fixed(&cbb, s->init_buf->data,
682++ if (!CBB_init_fixed(&cbb, (uint8_t *)s->init_buf->data,
683+ s->init_buf->length))
684+ goto err;
685+ if (!CBB_add_u8(&cbb, SSL3_MT_CCS))
686+diff --git a/ssl/ssl_tlsext.c b/ssl/ssl_tlsext.c
687+index 311c29b..e1c9b3c 100644
688+--- a/ssl/ssl_tlsext.c
689++++ b/ssl/ssl_tlsext.c
690+@@ -808,7 +808,8 @@ tlsext_sni_server_process(SSL *s, uint16_t msg_type, CBS *cbs, int *alert)
691+ *alert = SSL_AD_UNRECOGNIZED_NAME;
692+ goto err;
693+ }
694+- if (!CBS_mem_equal(&host_name, s->session->tlsext_hostname,
695++ if (!CBS_mem_equal(&host_name,
696++ (uint8_t *)s->session->tlsext_hostname,
697+ strlen(s->session->tlsext_hostname))) {
698+ *alert = SSL_AD_UNRECOGNIZED_NAME;
699+ goto err;
700+diff --git a/ssl/ssl_txt.c b/ssl/ssl_txt.c
701+index 4ed76c9..1ad3b92 100644
702+--- a/ssl/ssl_txt.c
703++++ b/ssl/ssl_txt.c
704+@@ -170,8 +170,8 @@ SSL_SESSION_print(BIO *bp, const SSL_SESSION *x)
705+ if (x->tlsext_tick != NULL) {
706+ if (BIO_puts(bp, "\n TLS session ticket:\n") <= 0)
707+ goto err;
708+- if (BIO_dump_indent(bp, x->tlsext_tick, x->tlsext_ticklen,
709+- 4) <= 0)
710++ if (BIO_dump_indent(bp, (char *)x->tlsext_tick,
711++ x->tlsext_ticklen, 4) <= 0)
712+ goto err;
713+ }
714+
715+diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c
716+index 57cd180..9797aab 100644
717+--- a/ssl/t1_lib.c
718++++ b/ssl/t1_lib.c
719+@@ -1018,6 +1018,7 @@ tls_decrypt_ticket(SSL *s, CBS *ticket, int *alert, SSL_SESSION **psess)
720+ EVP_CIPHER_CTX *cctx = NULL;
721+ SSL_CTX *tctx = s->initial_ctx;
722+ int slen, hlen, iv_len;
723++ unsigned int hlenu;
724+ int alert_desc = SSL_AD_INTERNAL_ERROR;
725+ int ret = TLS1_TICKET_FATAL_ERROR;
726+
727+@@ -1112,8 +1113,9 @@ tls_decrypt_ticket(SSL *s, CBS *ticket, int *alert, SSL_SESSION **psess)
728+ if (HMAC_Update(hctx, CBS_data(&ticket_encdata),
729+ CBS_len(&ticket_encdata)) <= 0)
730+ goto err;
731+- if (HMAC_Final(hctx, hmac, &hlen) <= 0)
732++ if (HMAC_Final(hctx, hmac, &hlenu) <= 0)
733+ goto err;
734++ hlen = hlenu;
735+
736+ if (!CBS_mem_equal(&ticket_hmac, hmac, hlen))
737+ goto derr;
738+diff --git a/ssl/tls13_client.c b/ssl/tls13_client.c
739+index 901b38f..414c9cb 100644
740+--- a/ssl/tls13_client.c
741++++ b/ssl/tls13_client.c
742+@@ -656,7 +656,7 @@ tls13_server_certificate_verify_recv(struct tls13_ctx *ctx, CBS *cbs)
743+ sizeof(tls13_cert_verify_pad)))
744+ goto err;
745+ if (!CBB_add_bytes(&cbb, tls13_cert_server_verify_context,
746+- strlen(tls13_cert_server_verify_context)))
747++ strlen((char *)tls13_cert_server_verify_context)))
748+ goto err;
749+ if (!CBB_add_u8(&cbb, 0))
750+ goto err;
751+@@ -710,7 +710,7 @@ int
752+ tls13_server_finished_recv(struct tls13_ctx *ctx, CBS *cbs)
753+ {
754+ struct tls13_secrets *secrets = ctx->hs->tls13.secrets;
755+- struct tls13_secret context = { .data = "", .len = 0 };
756++ struct tls13_secret context = { .data = (uint8_t *)"", .len = 0 };
757+ struct tls13_secret finished_key;
758+ uint8_t transcript_hash[EVP_MAX_MD_SIZE];
759+ size_t transcript_hash_len;
760+@@ -932,7 +932,7 @@ tls13_client_certificate_verify_send(struct tls13_ctx *ctx, CBB *cbb)
761+ sizeof(tls13_cert_verify_pad)))
762+ goto err;
763+ if (!CBB_add_bytes(&sig_cbb, tls13_cert_client_verify_context,
764+- strlen(tls13_cert_client_verify_context)))
765++ strlen((char *)tls13_cert_client_verify_context)))
766+ goto err;
767+ if (!CBB_add_u8(&sig_cbb, 0))
768+ goto err;
769+@@ -993,7 +993,7 @@ int
770+ tls13_client_finished_send(struct tls13_ctx *ctx, CBB *cbb)
771+ {
772+ struct tls13_secrets *secrets = ctx->hs->tls13.secrets;
773+- struct tls13_secret context = { .data = "", .len = 0 };
774++ struct tls13_secret context = { .data = (uint8_t *)"", .len = 0 };
775+ struct tls13_secret finished_key = { .data = NULL, .len = 0 };
776+ uint8_t transcript_hash[EVP_MAX_MD_SIZE];
777+ size_t transcript_hash_len;
778+diff --git a/ssl/tls13_key_schedule.c b/ssl/tls13_key_schedule.c
779+index 05bcf0f..19afc79 100644
780+--- a/ssl/tls13_key_schedule.c
781++++ b/ssl/tls13_key_schedule.c
782+@@ -160,8 +160,8 @@ tls13_hkdf_expand_label(struct tls13_secret *out, const EVP_MD *digest,
783+ const struct tls13_secret *secret, const char *label,
784+ const struct tls13_secret *context)
785+ {
786+- return tls13_hkdf_expand_label_with_length(out, digest, secret, label,
787+- strlen(label), context);
788++ return tls13_hkdf_expand_label_with_length(out, digest, secret,
789++ (uint8_t *)label, strlen(label), context);
790+ }
791+
792+ int
793+@@ -185,7 +185,7 @@ tls13_hkdf_expand_label_with_length(struct tls13_secret *out,
794+ goto err;
795+ if (!CBB_add_u8_length_prefixed(&cbb, &child))
796+ goto err;
797+- if (!CBB_add_bytes(&child, tls13_plabel, strlen(tls13_plabel)))
798++ if (!CBB_add_bytes(&child, (uint8_t *)tls13_plabel, strlen(tls13_plabel)))
799+ goto err;
800+ if (!CBB_add_bytes(&child, label, label_len))
801+ goto err;
802+@@ -362,7 +362,7 @@ tls13_derive_application_secrets(struct tls13_secrets *secrets,
803+ int
804+ tls13_update_client_traffic_secret(struct tls13_secrets *secrets)
805+ {
806+- struct tls13_secret context = { .data = "", .len = 0 };
807++ struct tls13_secret context = { .data = (uint8_t *)"", .len = 0 };
808+
809+ if (!secrets->init_done || !secrets->early_done ||
810+ !secrets->handshake_done || !secrets->schedule_done)
811+@@ -376,7 +376,7 @@ tls13_update_client_traffic_secret(struct tls13_secrets *secrets)
812+ int
813+ tls13_update_server_traffic_secret(struct tls13_secrets *secrets)
814+ {
815+- struct tls13_secret context = { .data = "", .len = 0 };
816++ struct tls13_secret context = { .data = (uint8_t *)"", .len = 0 };
817+
818+ if (!secrets->init_done || !secrets->early_done ||
819+ !secrets->handshake_done || !secrets->schedule_done)
820+@@ -423,7 +423,7 @@ tls13_exporter(struct tls13_ctx *ctx, const uint8_t *label, size_t label_len,
821+
822+ /* In TLSv1.3 no context is equivalent to an empty context. */
823+ if (context_value == NULL) {
824+- context_value = "";
825++ context_value = (uint8_t *)"";
826+ context_value_len = 0;
827+ }
828+
829+diff --git a/ssl/tls13_legacy.c b/ssl/tls13_legacy.c
830+index 6c33ecc..481ca9e 100644
831+--- a/ssl/tls13_legacy.c
832++++ b/ssl/tls13_legacy.c
833+@@ -360,7 +360,7 @@ tls13_use_legacy_stack(struct tls13_ctx *ctx)
834+ tls13_handshake_msg_data(ctx->hs_msg, &cbs);
835+ if (!BUF_MEM_grow_clean(s->init_buf, CBS_len(&cbs)))
836+ goto err;
837+- if (!CBS_write_bytes(&cbs, s->init_buf->data,
838++ if (!CBS_write_bytes(&cbs, (uint8_t *)s->init_buf->data,
839+ s->init_buf->length, NULL))
840+ goto err;
841+
842+diff --git a/ssl/tls13_lib.c b/ssl/tls13_lib.c
843+index c3470b2..5d9f159 100644
844+--- a/ssl/tls13_lib.c
845++++ b/ssl/tls13_lib.c
846+@@ -378,7 +378,8 @@ tls13_new_session_ticket_recv(struct tls13_ctx *ctx, CBS *cbs)
847+ uint32_t ticket_lifetime, ticket_age_add;
848+ CBS ticket_nonce, ticket;
849+ SSL_SESSION *sess = NULL;
850+- int alert, session_id_length;
851++ int alert;
852++ unsigned int session_id_length;
853+ ssize_t ret = 0;
854+
855+ memset(&nonce, 0, sizeof(nonce));
856+diff --git a/ssl/tls13_record_layer.c b/ssl/tls13_record_layer.c
857+index f5604ad..9bdd61c 100644
858+--- a/ssl/tls13_record_layer.c
859++++ b/ssl/tls13_record_layer.c
860+@@ -467,7 +467,7 @@ static int
861+ tls13_record_layer_set_traffic_key(const EVP_AEAD *aead, const EVP_MD *hash,
862+ struct tls13_record_protection *rp, struct tls13_secret *traffic_key)
863+ {
864+- struct tls13_secret context = { .data = "", .len = 0 };
865++ struct tls13_secret context = { .data = (uint8_t *)"", .len = 0 };
866+ struct tls13_secret key = { .data = NULL, .len = 0 };
867+ int ret = 0;
868+
869+diff --git a/ssl/tls13_server.c b/ssl/tls13_server.c
870+index 650fd13..184b3d3 100644
871+--- a/ssl/tls13_server.c
872++++ b/ssl/tls13_server.c
873+@@ -728,7 +728,7 @@ tls13_server_certificate_verify_send(struct tls13_ctx *ctx, CBB *cbb)
874+ sizeof(tls13_cert_verify_pad)))
875+ goto err;
876+ if (!CBB_add_bytes(&sig_cbb, tls13_cert_server_verify_context,
877+- strlen(tls13_cert_server_verify_context)))
878++ strlen((char *)tls13_cert_server_verify_context)))
879+ goto err;
880+ if (!CBB_add_u8(&sig_cbb, 0))
881+ goto err;
882+@@ -783,7 +783,7 @@ int
883+ tls13_server_finished_send(struct tls13_ctx *ctx, CBB *cbb)
884+ {
885+ struct tls13_secrets *secrets = ctx->hs->tls13.secrets;
886+- struct tls13_secret context = { .data = "", .len = 0 };
887++ struct tls13_secret context = { .data = (uint8_t *)"", .len = 0 };
888+ struct tls13_secret finished_key = { .data = NULL, .len = 0 } ;
889+ uint8_t transcript_hash[EVP_MAX_MD_SIZE];
890+ size_t transcript_hash_len;
891+@@ -840,7 +840,7 @@ int
892+ tls13_server_finished_sent(struct tls13_ctx *ctx)
893+ {
894+ struct tls13_secrets *secrets = ctx->hs->tls13.secrets;
895+- struct tls13_secret context = { .data = "", .len = 0 };
896++ struct tls13_secret context = { .data = (uint8_t *)"", .len = 0 };
897+
898+ /*
899+ * Derive application traffic keys.
900+@@ -959,7 +959,7 @@ tls13_client_certificate_verify_recv(struct tls13_ctx *ctx, CBS *cbs)
901+ sizeof(tls13_cert_verify_pad)))
902+ goto err;
903+ if (!CBB_add_bytes(&cbb, tls13_cert_client_verify_context,
904+- strlen(tls13_cert_client_verify_context)))
905++ strlen((char *)tls13_cert_client_verify_context)))
906+ goto err;
907+ if (!CBB_add_u8(&cbb, 0))
908+ goto err;
909+@@ -1020,7 +1020,7 @@ int
910+ tls13_client_finished_recv(struct tls13_ctx *ctx, CBS *cbs)
911+ {
912+ struct tls13_secrets *secrets = ctx->hs->tls13.secrets;
913+- struct tls13_secret context = { .data = "", .len = 0 };
914++ struct tls13_secret context = { .data = (uint8_t *)"", .len = 0 };
915+ struct tls13_secret finished_key;
916+ uint8_t *verify_data = NULL;
917+ size_t verify_data_len;
918+--
919+2.49.0
920+
1@@ -0,0 +1,25 @@
2+From 5825db2081409ded9b815461c4ff05839215baa5 Mon Sep 17 00:00:00 2001
3+From: Michael Forney <mforney@mforney.org>
4+Date: Fri, 3 Apr 2026 02:27:29 -0700
5+Subject: [PATCH] Use void * for printf %p format specifier
6+
7+---
8+ crypto/bio/bio_cb.c | 2 +-
9+ 1 file changed, 1 insertion(+), 1 deletion(-)
10+
11+diff --git a/crypto/bio/bio_cb.c b/crypto/bio/bio_cb.c
12+index 990cb20..35f9f18 100644
13+--- a/crypto/bio/bio_cb.c
14++++ b/crypto/bio/bio_cb.c
15+@@ -78,7 +78,7 @@ BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, long argl,
16+ if (BIO_CB_RETURN & cmd)
17+ r = ret;
18+
19+- nbuf = snprintf(buf, sizeof(buf), "BIO[%p]: ", bio);
20++ nbuf = snprintf(buf, sizeof(buf), "BIO[%p]: ", (void *)bio);
21+ if (nbuf < 0)
22+ nbuf = 0; /* Ignore error; continue printing. */
23+ if (nbuf >= sizeof(buf))
24+--
25+2.49.0
26+
+1,
-1
1@@ -1 +1 @@
2-cb82ca7d547336917352fbd23db2fc483c6c44d35157b32780214ec74197b3ce libressl-3.4.2.tar.gz
3+6d5c2f58583588ea791f4c8645004071d00dfa554a5bf788a006ca1eb5abd70b libressl-4.2.1.tar.gz
+1,
-1
1@@ -1 +1 @@
2-url = "https://cdn.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.4.2.tar.gz"
3+url = "https://cdn.openbsd.org/pub/OpenBSD/LibreSSL/libressl-4.2.1.tar.gz"
+1,
-1
1@@ -1 +1 @@
2-3.4.2 r0
3+4.2.1 r0