zig/lib/std
Frank Denis 9c3e09cbee
Fix TLS 1.2 client key exchange to use negotiated named group (#25007)
The TLS 1.2 implementation was incorrectly hardcoded to always send the
secp256r1 public key in the client key exchange message, regardless of
which elliptic curve the server actually negotiated.

This caused TLS handshake failures with servers that preferred other curves
like X25519.

This fix:

- Tracks the negotiated named group from the server key exchange message
- Dynamically selects the correct public key (X25519, secp256r1, or
  secp384r1) based on what the server negotiated
- Properly constructs the client key exchange message with the
  appropriate key size for each curve type

Fixes TLS 1.2 connections to servers like ziglang.freetls.fastly.net
that prefer X25519 over secp256r1.
2025-08-27 20:53:42 +02:00
..
Build std.Build.WebServer: fix race 2025-08-26 21:17:38 +02:00
builtin
c std.c: Remove serenity's internet_checksum() function 2025-08-10 18:21:47 +02:00
compress zstd: Protect against index out-of-bounds when decoding sequences 2025-08-15 22:11:51 -07:00
crypto Fix TLS 1.2 client key exchange to use negotiated named group (#25007) 2025-08-27 20:53:42 +02:00
debug std.compress.zstd.Decompress fixes 2025-08-15 10:44:35 -07:00
dwarf
fmt
fs std.fs.Dir: fix updateFile() to flush the file before updating its times 2025-08-24 02:30:31 +02:00
hash simplify std.hash.Adler32 2025-07-31 22:10:11 -07:00
heap std.ArrayList: make unmanaged the default 2025-08-11 15:52:49 -07:00
http Merge pull request #24926 from mrjbq7/http-fetch 2025-08-22 23:23:18 +02:00
Io std.Io.Writer: fix upper case hex float formatting 2025-08-19 16:01:45 -07:00
json std: remove lossy int to float coercion on json parse 2025-08-22 04:19:22 +02:00
math Update powi.zig to fix docstring formatting 2025-08-25 18:51:41 +02:00
mem lib: Reword documentation for realloc to clarify size 2025-08-25 18:51:26 +02:00
meta
net
os os.linux: faccessat wrapper prefer to faccessat syscall when flags is zero. 2025-08-26 00:11:43 +02:00
posix lib/std/posix/test.zig: don't compare blksize in "fstatat" 2025-08-06 22:12:42 -07:00
process Compilation: remove last instance of deprecatedReader 2025-08-16 14:46:20 -07:00
Random
sort
tar std.io.Writer.Allocating: rename getWritten() to written() 2025-08-13 01:43:52 -07:00
Target std.ArrayList: make unmanaged the default 2025-08-11 15:52:49 -07:00
testing
Thread
time
tz
unicode
valgrind
zig std.zig.system: fix check for sparc "v8+" in getExternalExecutor() 2025-08-25 18:50:48 +02:00
zon std.io.Writer.Allocating: rename getWritten() to written() 2025-08-13 01:43:52 -07:00
array_hash_map.zig std: introduce orderedRemoveMany 2025-08-11 13:32:12 -07:00
array_list.zig std.compress.zstd.Decompress fixes 2025-08-15 10:44:35 -07:00
ascii.zig
atomic.zig
base64.zig std.base64: delete encodeFromReaderToWriter 2025-08-05 09:56:02 -07:00
bit_set.zig
BitStack.zig std.ArrayList: make unmanaged the default 2025-08-11 15:52:49 -07:00
buf_map.zig
buf_set.zig
Build.zig std.ArrayList: make unmanaged the default 2025-08-11 15:52:49 -07:00
builtin.zig aarch64: workaround some optional/union issues 2025-07-28 09:03:17 -07:00
c.zig expose darwin.PT in std.c 2025-08-19 16:19:09 -07:00
coff.zig
compress.zig std.compress: rework flate to new I/O API 2025-07-31 22:10:11 -07:00
crypto.zig
debug.zig std.io.Writer.Allocating: rename getWritten() to written() 2025-08-13 01:43:52 -07:00
DoublyLinkedList.zig
dwarf.zig
dynamic_library.zig
elf.zig Fix: std.elf offset computation 2025-08-08 12:47:00 -07:00
enums.zig std.enums: fix EnumIndexer branch quota 2025-07-31 22:10:22 +01:00
fmt.zig zig std: fix build failures 2025-08-08 17:17:53 -07:00
fs.zig
gpu.zig
hash.zig simplify std.hash.Adler32 2025-07-31 22:10:11 -07:00
hash_map.zig std.ArrayList: make unmanaged the default 2025-08-11 15:52:49 -07:00
heap.zig std.ArrayList: make unmanaged the default 2025-08-11 15:52:49 -07:00
http.zig http.BodyWriter: improve clarity of chunked state machine 2025-08-17 14:42:57 +02:00
Io.zig std: more reliable HTTP and TLS networking 2025-08-16 00:16:15 -07:00
json.zig std.io.Writer.Allocating: rename getWritten() to written() 2025-08-13 01:43:52 -07:00
leb128.zig
log.zig
macho.zig
math.zig std.math: Add splat for vectors of u0s in rotl/rotr (#24822) 2025-08-15 23:45:33 +02:00
mem.zig aarch64: implement more assembler instructions 2025-08-11 15:47:51 -07:00
meta.zig remove usages of .alignment = 0 2025-08-01 14:57:16 -07:00
multi_array_list.zig std: introduce orderedRemoveMany 2025-08-11 13:32:12 -07:00
net.zig Fix bugs in Windows readVec implementations 2025-08-19 16:19:06 -07:00
once.zig
os.zig
pdb.zig
pie.zig zig fmt: apply new cast builtin order 2025-08-03 14:59:56 +02:00
posix.zig net: Always set WSA_FLAG_OVERLAPPED when creating Windows sockets. Rework send and receive logic to use overlapped I/O. 2025-08-09 18:48:15 -04:00
priority_dequeue.zig std.ArrayList: make unmanaged the default 2025-08-11 15:52:49 -07:00
priority_queue.zig
process.zig add macOS handling for totalSystemMemory (#24903) 2025-08-26 00:11:34 +02:00
Progress.zig std: replace various mem copies with @memmove 2025-08-05 09:56:02 -07:00
Random.zig
segmented_list.zig
SemanticVersion.zig
simd.zig
SinglyLinkedList.zig
sort.zig
start.zig std: Add serenity to more OS checks 2025-07-30 23:28:58 +01:00
static_string_map.zig
std.zig std.ArrayList: make unmanaged the default 2025-08-11 15:52:49 -07:00
tar.zig
Target.zig std.Target: bump default android API level from 24 to 29 2025-08-13 08:59:13 +02:00
testing.zig
Thread.zig
time.zig
treap.zig std.ArrayList: make unmanaged the default 2025-08-11 15:52:49 -07:00
tz.zig
unicode.zig std.compress.zstd.Decompress fixes 2025-08-15 10:44:35 -07:00
Uri.zig std.http: address review comments 2025-08-07 10:04:52 -07:00
valgrind.zig
wasm.zig
zig.zig std.compress.zstd.Decompress fixes 2025-08-15 10:44:35 -07:00
zip.zig std.fs.File.Reader.getSize: check file kind on stat 2025-08-10 17:51:22 -07:00
zon.zig zon: Add anonymous struct literal in the example 2025-08-15 23:35:16 +02:00