Commit Graph

86 Commits

Author SHA1 Message Date
tlhc 3ba30169c2 feat: Add cross-platform support for Darwin/macOS
**Core Platform Support:**
- Add Darwin/macOS platform detection and conditional compilation
- Implement platform-specific library extensions (.dylib for macOS, .so for Linux)
- Enhanced dynamic library loading with cross-platform error handling
- Platform-optimized time functions (clock_gettime_nsec_np for macOS)
- Add App module support for Darwin/macOS

**Threading & Synchronization:**
- BSL: Migrate from simple integer flags to proper pthread_once_t implementation
- Add BSL_SAL_OnceControl type with platform-specific implementations
- Implement thread-safe one-time initialization across platforms
- Fix memory initialization patterns for thread-once controls

**Build System Improvements:**
- Remove GNU ld-specific flags for test-framework use c function pointer replace or `stub_utils.h` to hook target function
- Boundcheck components will linked as static library for tests, reduce tests dynamic library deps
- Update CMake configurations for Darwin support

**Test Framework Enhancements:**
- Replace jmp_buf with sigjmp_buf for better signal handling
- Update time handling to avoid platform-specific gmtime issues
- Improve entropy test stability across platforms
- Add proper RAND initialization/deinitialization

**Entropy & Cryptographic Updates:**
- Temporarily disable CPU jitter entropy on macOS (pending validation)
- Add cross-platform entropy source management
- Update DRBG configuration for improved compatibility
- Enhance hardware entropy detection and handling

**Network & I/O:**
- Extend POSIX network functions to support both Linux and Darwin
- Add file accessibility checks before dynamic loading
- Improve error handling for symbol resolution across platforms
- Update socket and I/O operations for cross-platform compatibility

Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/677

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 19:50:28 +08:00
TemEnticE 0dc7fa95ab feat(crypto): add SM4-HCTR block cipher mode
- Implement the generic HCTR block cipher mode of operation.
- Utilize universal hashing based on GF(128) multiplication for data integrity.
- Employ a CTR-like mechanism for confidentiality using the underlying block cipher (ECB mode).
- Support key splitting (K1, K2) and tweak (TW) as required by HCTR.
- Provide a specific implementation wrapper for SM4-HCTR.
- Include internal buffering to handle data streams via Update/Final.

Related to #41

Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/395

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 19:50:27 +08:00
tlhc b67050ce74 feat: build system improvements and cross-platform support (macOS)
Major Features:
- Multi-compiler/linker configuration system with toolchain support
- Auto-manage Secure C (libboundscheck) dependency
- Dynamic provider library names for CMVP modes (ISO19790, SM)
- macOS/Darwin platform support with unified POSIX abstractions
- Cross-platform build improvements and optimizations

Build System:
- Add toolchain management for cross-compilation
- Support nested 'common' format in compile config
- with _EXTRA/_REMOVE/_OVERRIDE in common flags, we can add remove by
  per compiler
- Unify toolchain naming convention (arch-vendor-os-abi-compiler)

Platform Support:
- Unify Linux and Darwin sources under POSIX
- Add Darwin support for SAL and build flags
- Add Darwin support for REC wrapper functions (WIP)
- Cross-platform ops count macros for benchmarking
- Platform-specific library extension detection (.dylib vs .so)

Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/652

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 19:50:26 +08:00
Ooohui 546420a052 Optimize the code to reduce ROM space
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/575

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 19:50:25 +08:00
baoyi84930 0ce3ef3182 fix: remove HITLS_EC_GROUP_CURVESM2
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/638

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 19:43:48 +08:00
xxxlu 72b8827361 feat:Support RFC8998 cipher suites
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/638

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 19:43:37 +08:00
pi_ixeL e8eb690e82 feat: Enhanced session capabilities
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/602

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 19:43:06 +08:00
balabala-123 70960b2e09 fix:Fix client not disabling tlcp version in tls_all
Co-authored-by: balabala-123<guozhang4@huawei.com>

# message auto-generated for no-merge-commit merge:
merge fixbug into main

fix:Fix client not disabling tlcp version in tls_all

Created-by: balabala-123
Commit-by: balabala-123
Merged-by: liwei3013
Description: fix:Fix client not disabling tlcp version in tls_all

See merge request: openHiTLS/openhitls!594

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:30 +08:00
dumb a2275a5119 preparing for riscv-CI
Co-authored-by: dumb<liuermeng2@huawei.com>

# message auto-generated for no-merge-commit merge:
merge riscv_ci into main

preparing for riscv-CI

Created-by: dumb
Commit-by: dumb
Merged-by: liwei3013
Description: preparing for riscv-CI

See merge request: openHiTLS/openhitls!582

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:30 +08:00
balabala-123 fb8fc7b0fd fix:Supplement missing interfaces
Co-authored-by: balabala-123<guozhang4@huawei.com>

# message auto-generated for no-merge-commit merge:
merge fixbug into main

fix:Supplement missing interfaces

Created-by: balabala-123
Commit-by: balabala-123
Merged-by: liwei3013
Description: fix:Supplement missing interfaces

See merge request: openHiTLS/openhitls!517

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:29 +08:00
longparty 82d86ea187 feat:memory minimization for handshake buffer
Co-authored-by: longparty<taoye35@huawei.com>

# message auto-generated for no-merge-commit merge:
merge main into main

feat:memory minimization for handshake buffer

Created-by: longparty
Commit-by: longparty
Merged-by: liwei3013
Description: feat:memory minimization for handshake buffer

See merge request: openHiTLS/openhitls!447

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:28 +08:00
baoyi84930 22fc02a493 fix: fix some issue
Co-authored-by: baoyi84930<zhangcheng170@huawei.com>

# message auto-generated for no-merge-commit merge:
merge dev into main

fix: fix some issue

Created-by: baoyi84930
Commit-by: baoyi84930
Merged-by: liwei3013
Description: fix: fix some issue

See merge request: openHiTLS/openhitls!457

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:27 +08:00
Ooohui 096c529ddf Supports offloading hash algorithms in composition algorithms
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/392

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:24 +08:00
balabala-123 7ecbf7611a fix:Certificate configuration supports reference counting
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/414

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:24 +08:00
离标量 1cf5a5970a New command line added
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/415

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:24 +08:00
baoyi84930 8fe145c5eb feat: add timeout signal handler to prevent test cases from blocking for too long
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/409

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:23 +08:00
pi_ixeL 29e25c3d45 feat: support Certificate Authorities extension
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/397

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:23 +08:00
longparty 73990625de fix:fix the mtu single flight problem
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/380

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:20 +08:00
bala ed498e245e fix:DTLS adds a timeout detection external interface.
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/328

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:19 +08:00
longparty 1ff66831d6 feat: add mtu related functions
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/338

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:19 +08:00
pi_ixeL 832879f4ff feat: support client hello callback and cert callback
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/326

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-03-30 17:49:19 +08:00
dumb d4231e59e4 add sha256-mb interfaces
Co-authored-by: dumb<liuermeng2@huawei.com>

# message auto-generated for no-merge-commit merge:
!1020 merge openhitls-0.2 into openhitls-0.2

add sha256-mb interfaces

Created-by: dumb
Commit-by: dumb
Merged-by: liwei3013
Description: add sha256-mb interfaces

See merge request: openHiTLS/openhitls!1020

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-02-02 10:47:49 +08:00
longparty 6a260e7a3e fix:spelling error of ems
Co-authored-by: longparty<taoye35@huawei.com>

# message auto-generated for no-merge-commit merge:
!986 merge openhitls-0.2 into openhitls-0.2

fix:spelling error of ems

Created-by: longparty
Commit-by: longparty
Merged-by: liwei3013
Description: <!--  感谢您提交 Pull Request!以下是一些提示:

1) 如果您是第一次提交,请阅读我们的贡献者指南:https://gitcode.com/openHiTLS/openhitls/wiki/FAQ-社区需求贡献流程.md

-->

**此 PR 的作用 / 为什么需要它**:修改拼写错误

**自检清单**:

- [ ] **测试**:代码是否已有UT/ST测试用例覆盖,新增测试用例是否随本PR一并上库 不涉及
- [ ] **接口**:是否涉及对外接口变更,变更已通过接口评审 不涉及
- [ ] **文档**:是否涉及文档修改 不涉及

<!-- **给审查者的特别说明**: -->
<!-- + - [ ] 是否导致无法前向兼容 -->
<!-- + - [ ] 是否涉及依赖的三方库变更 -->

See merge request: openHiTLS/openhitls!986

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-01-15 15:48:46 +08:00
baoyi84930 f4e8e88511 fix: fix spelling erros
Co-authored-by: baoyi84930<zhangcheng170@huawei.com>

# message auto-generated for no-merge-commit merge:
!983 merge dev into openhitls-0.2

fix: fix spelling erros

Created-by: baoyi84930
Commit-by: baoyi84930
Merged-by: liwei3013
Description: <!--  感谢您提交 Pull Request!以下是一些提示:

1) 如果您是第一次提交,请阅读我们的贡献者指南:https://gitcode.com/openHiTLS/openhitls/wiki/FAQ-社区需求贡献流程.md

-->

**此 PR 的作用 / 为什么需要它**:

**自检清单**:

- [ ] **测试**:代码是否已有UT/ST测试用例覆盖,新增测试用例是否随本PR一并上库
- [ ] **接口**:是否涉及对外接口变更,变更已通过接口评审
- [ ] **文档**:是否涉及文档修改

<!-- **给审查者的特别说明**: -->
<!-- + - [ ] 是否导致无法前向兼容 -->
<!-- + - [ ] 是否涉及依赖的三方库变更 -->

See merge request: openHiTLS/openhitls!983

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-01-15 15:48:46 +08:00
Dongjianwei001 b7319b6ab7 feat: Add context copy capability for cipher,kdf and MAC algorithms.
Co-authored-by: Dongjianwei001<dongjianwei1@huawei.com>

# message auto-generated for no-merge-commit merge:
!981 merge openhitls-0.2 into openhitls-0.2

feat: Add context copy capability for cipher,kdf and MAC algorithms.

Created-by: Dongjianwei001
Commit-by: Dongjianwei001
Merged-by: liwei3013
Description: <!--  感谢您提交 Pull Request!以下是一些提示:

1) 如果您是第一次提交,请阅读我们的贡献者指南:https://gitcode.com/openHiTLS/openhitls/wiki/FAQ-社区需求贡献流程.md

-->

**此 PR 的作用 / 为什么需要它**:

**自检清单**:

- [x] **测试**:代码是否已有UT/ST测试用例覆盖,新增测试用例是否随本PR一并上库
- [x] **接口**:是否涉及对外接口变更,变更已通过接口评审
- [ ] **文档**:是否涉及文档修改

<!-- **给审查者的特别说明**: -->
<!-- + - [ ] 是否导致无法前向兼容 -->
<!-- + - [ ] 是否涉及依赖的三方库变更 -->

See merge request: openHiTLS/openhitls!981

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-01-15 15:48:46 +08:00
Ooohui 70449ed37c feat: Support curve nistp192 and setting/getting generic extension
Co-authored-by: Ooohui<zhanghui160@huawei.com>

# message auto-generated for no-merge-commit merge:
!960 merge openhitls-0.2 into openhitls-0.2

feat: Support curve nistp192 and setting/getting generic extension

Created-by: Ooohui
Commit-by: Ooohui
Merged-by: liwei3013
Description: <!--  Thanks for sending a pull request!  Here are some tips for you:

1) If this is your first time, please read our contributor guidelines: https://gitcode.com/openHiTLS/openhitls/wiki/FAQ-社区需求贡献流程.md

-->

**What does this PR do / why do we need it**:

**Self-checklist**:(**请自检,在[ ]内打上x**)

+ - [ ] **测试**:PR中的代码是否已有UT/ST测试用例进行充分的覆盖,新增测试用例是否随本PR一并上库或已经上库
+ - [ ] **接口**:是否涉及对外接口变更,相应变更已得到接口评审组织的通过,API对应的注释信息已经刷新正确
+ - [ ] **文档**:是否涉及官网文档修改,如果涉及请及时提交资料到Doc仓

<!-- **Special notes for your reviewers**: -->
<!-- + - [ ] 是否导致无法前向兼容 -->
<!-- + - [ ] 是否涉及依赖的三方库变更 -->

See merge request: openHiTLS/openhitls!960

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2026-01-15 15:48:45 +08:00
pi_ixeL bf1f2ffa45 fix: Correct argument order in SAL_NET_SockAddrCopy function
Co-authored-by: pi_ixeL<xuzhewei2@huawei.com>

# message auto-generated for no-merge-commit merge:
!793 merge 0.2_fix into openhitls-0.2

fix: Correct argument order in SAL_NET_SockAddrCopy function

Created-by: pi_ixeL
Commit-by: pi_ixeL
Merged-by: liwei3013
Description: fix: Correct argument order in SAL_NET_SockAddrCopy function

See merge request: openHiTLS/openhitls!793

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-12-09 10:28:51 +08:00
Dongjianwei001 743b5899b4 Fix STUB_Replace test case errors
Co-authored-by: Dongjianwei001<dongjianwei1@huawei.com>

# message auto-generated for no-merge-commit merge:
!791 merge openhitls_fork-0.2 into openhitls-0.2

Fix STUB_Replace test case errors

Created-by: Dongjianwei001
Commit-by: Dongjianwei001
Merged-by: liwei3013
Description: Fix STUB_Replace test case errors

See merge request: openHiTLS/openhitls!791

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-12-09 10:28:10 +08:00
balabala-123 ae0eba60e1 fix:Change the function parameter type to bool*
Co-authored-by: balabala-123<guozhang4@huawei.com>

# message auto-generated for no-merge-commit merge:
merge openhitls-0.2 into openhitls-0.2

fix:Change the function parameter type to bool*

Created-by: balabala-123
Commit-by: balabala-123
Merged-by: liwei3013
Description: fix:Change the function parameter type to bool*

See merge request: openHiTLS/openhitls!609

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-12-09 10:27:33 +08:00
zhzx 537e9ed3a7 fix compilation error in testcode
Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-12-09 10:26:25 +08:00
hanzhiyang 9928b312d7 fix:Get the result of the pthread_join function
Co-authored-by: hanzhiyang<hanzhiyang4@h-partners.com>

# message auto-generated for no-merge-commit merge:
merge openhitls-0.2 into openhitls-0.2

fix:Get the result of the pthread_join function

Created-by: hanzhiyang
Commit-by: hanzhiyang
Merged-by: liwei3013
Description: fix:Get the result of the pthread_join function

See merge request: openHiTLS/openhitls!610

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-09-26 15:47:17 +08:00
baoyi84930 1935e50e60 feat:certificate verification error code refactoring
Co-authored-by: baoyi84930<zhangcheng170@huawei.com>

# message auto-generated for no-merge-commit merge:
merge x509 into openhitls-0.2

feat:certificate verification error code refactoring

Created-by: baoyi84930
Commit-by: baoyi84930
Merged-by: liwei3013
Description: feat:certificate verification error code refactoring

See merge request: openHiTLS/openhitls!631

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-09-26 15:30:12 +08:00
balabala-123 a40c4a1c0c fix:Fix the issue where ticket NonceLen returns a failure when it is 0
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/578

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-09-26 15:30:11 +08:00
baoyi84930 6ea1a15a91 feat: ADD TLS CRL support
Co-authored-by: baoyi84930<zhangcheng170@huawei.com>

# message auto-generated for no-merge-commit merge:
merge pr_206 into openhitls-0.2

feat: ADD TLS CRL support

Created-by: baoyi84930
Commit-by: baoyi84930
Merged-by: liwei3013
Description: feat: ADD TLS CRL support

See merge request: openHiTLS/openhitls!487

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-09-04 17:39:52 +08:00
baoyi84930 d3a5abd662 fix: out of memory
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/368

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-07-09 14:14:14 +08:00
dumb d33e28a6cf change the 'system' option of 'configure.py'
do not have 'linux' to be default.
add 'TEST_NO_SUBPROC' for test convenience.

Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/359

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-07-08 14:19:13 +08:00
dumb cce055fc8d Move the ipaddr things into BSL_SAL
remove system restrictions of compiling
add armv7 compile option, and STM32F4 configs

Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/355

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-07-08 14:18:19 +08:00
baoyi84930 7e5f7d26a0 fix: no_kem mini case, add base connect mini test
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/356

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-07-08 14:18:19 +08:00
baoyi84930 9b88ecc6ea fix:mini test:undefined BSL_UIO_SctpMethod
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/345

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-06-28 18:59:47 +08:00
pi_ixeL 1911fedd3d feat: fix memory leak when HITLS_TLS_CONNECTION_INFO_NEGOTIATION is not open
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/341

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-06-28 18:59:46 +08:00
baoyi84930 4997685d8f fix: tlcp mini config
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/332

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-06-28 18:59:46 +08:00
JerryDevis 287ac4ff01 add testcase for decoder provider
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/318

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-06-28 18:59:46 +08:00
bala d30abcb704 fix:Support TLS_FALLBACK_SCSV feature.
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/319

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-06-28 18:59:46 +08:00
Ooohui b84fcf658b fix the review issues
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/308

Signed-off-by: Dongjianwei001 <dongjianwei1@huawei.com>
2025-06-28 18:59:46 +08:00
baoyi84930 160c4a4ab3 refactor: remove libsctp
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/312

Signed-off-by: lanming <lanming@huawei.com>
2025-05-29 20:03:10 +08:00
Dongjianwei001 31f881e911 Modify the build issue of assembly code on the ohos
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/298

Signed-off-by: lanming <lanming@huawei.com>
2025-05-26 10:19:25 +08:00
jchx bbd277f44a Modify the result of the dh key derive based on RFC 5246 and RFC 8446 adaptations
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/286

Signed-off-by: lanming <lanming@huawei.com>
2025-05-22 11:47:41 +08:00
bala 94096cd4ce fix:Fix occasional failure cases
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/281
2025-05-15 14:47:59 +08:00
JerryDevis ee2d3d8960 fix the bug of tls provider
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/269
2025-05-12 19:45:58 +08:00
bala b54c4d6f46 tls bugfix Verify unrequested extensions
Cherry-picked from: https://gitcode.com/openHiTLS/openhitls/merge_requests/266
2025-05-10 22:46:27 +08:00