hongzhi-gao opened a new pull request, #18130:
URL: https://github.com/apache/iotdb/pull/18130
Add NTLS (TLCP) support to the C++ client. Tongsuo is chosen because it is
Apache-2.0 licensed and provides both standard TLS and NTLS in one
OpenSSL-compatible stack; it is built from source by default and bundled into
the SDK.
## Description
### NTLS / TLCP client support
- Extend C++ and C Session builders with `sslProtocol` (`TLS` / `TLCP`),
PKCS12 `trustStore` / `keyStore`, mirroring the Java Session API.
- `RpcSslUtils` wires Thrift `TSSLSocket` for TLS and TLCP (including dual
SM2 PKCS12 for mutual auth).
### Why Tongsuo
- **License**: Apache-2.0, suitable for bundling in the IoTDB SDK.
- **Protocol coverage**: one dependency covers both TLS and NTLS; no
separate GM/T stack.
- Built from `8.4-stable` at configure time (`WITH_SSL=ON`, default);
`libssl` / `libcrypto` shipped in the SDK package.
### Tests & CI
- CTest phases: `plain` → `ssl` (IoTDB TLS) → `ntls` (`openssl s_server`).
- TLS/TLCP examples and Catch2 unit/e2e tests with committed PKCS12 fixtures.
<hr>
This PR has:
- [x] been self-reviewed.
- [x] added documentation for new or modified features or behaviors.
- [x] added or updated version, __license__, or notice information
- [x] added unit tests or modified existing tests to cover new code paths,
ensuring the threshold for code coverage.
- [x] added integration tests.
- [x] been tested in a test IoTDB cluster.
<hr>
##### Key changed/added classes
- `RpcSslUtils.{h,cpp}` — TLS/TLCP SSL context and Thrift factory
- `SessionBuilder.h`, `SessionC.{h,cpp}` — client SSL configuration API
- `cmake/FetchOpenSSL.cmake` — Tongsuo source build and SDK bundling
- `test/scripts/run_cpp_it_phases.py` — plain / TLS / NTLS IT phases
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]