Files
bun.sh/test/js/sql/mysql-tls/ssl/ca-key.pem
Ciro Spaciari b79bbfe289 fix(Bun.SQL) fix SSLRequest (#22378)
### What does this PR do?
Fixes https://github.com/oven-sh/bun/issues/22312
Fixes https://github.com/oven-sh/bun/issues/22313

The correct flow for TLS handshaking is:

Server sending
[Protocol::Handshake](https://dev.mysql.com/doc/dev/mysql-server/8.4.5/page_protocol_connection_phase_packets_protocol_handshake.html)
Client replying with
[Protocol::SSLRequest:](https://dev.mysql.com/doc/dev/mysql-server/8.4.5/page_protocol_connection_phase_packets_protocol_ssl_request.html)
The usual SSL exchange leading to establishing SSL connection
Client sends
[Protocol::HandshakeResponse:](https://dev.mysql.com/doc/dev/mysql-server/8.4.5/page_protocol_connection_phase_packets_protocol_handshake_response.html)

<img width="460" height="305" alt="Screenshot 2025-09-03 at 15 02 25"
src="https://github.com/user-attachments/assets/091bbc54-75bc-44ac-98b8-5996e8d69ed8"
/>

Source:
https://dev.mysql.com/doc/dev/mysql-server/8.4.5/page_protocol_connection_phase.html

### How did you verify your code works?
Tests

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-03 18:59:15 -07:00

53 lines
3.2 KiB
Plaintext

-----BEGIN PRIVATE KEY-----
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
nqvCgB/RFZmsH54yrG/MBVretR2ocg==
-----END PRIVATE KEY-----