What's changed
Upstream sync (winddriver/Delphi-Cross-Socket, August 2026)
- `AddCACertificate` replaces `SetCACertificate` — additive API rename; multiple CA certs can be registered in sequence.
- Password parameter on `SetPrivateKey` / `SetPrivateKeyFile` — `APassword: string = ''` is now a direct parameter; separate `SetPrivateKeyPassword` method removed.
- HTTP request flow refactor (`07cf3dc7`) — improved connection lifecycle and TLS config locking.
- HTTP parser CL=0 fix (`f543650e`) — `FHasBody` formula correctly handles `Content-Length: 0`; prevents `TCrossHttpClient` hang on empty responses.
Fork-only additions (preserved from v1.0.5)
- `SetCipherList(ACipherList: string)` — overrides the TLS 1.2 cipher list via `SSL_CTX_set_cipher_list`. Not in upstream winddriver.
- PATCH-CSHTTP-3 — retry-once on stale reused keep-alive connection in `TCrossHttpClient`; 50 ms backoff; forced fresh connect on retry.
Migration from v1.0.5
| Old call | New call |
|---|---|
| `SetCACertificateFile(file)` | `AddCACertificateFile(file)` |
| `SetPrivateKeyPassword(pwd)` then `SetPrivateKeyFile(file)` | `SetPrivateKeyFile(file, pwd)` |
| `SetCACertificate(buf, size)` | `AddCACertificate(buf, size)` |
`SetVerifyPeer` and `SetCipherList` are unchanged.