Skip to content

Use mbedTLS instead of OpenSSL - #282

Open
Faless wants to merge 2 commits into
godotengine:masterfrom
Faless:feat/mbedtls
Open

Use mbedTLS instead of OpenSSL#282
Faless wants to merge 2 commits into
godotengine:masterfrom
Faless:feat/mbedtls

Conversation

@Faless

@Faless Faless commented May 26, 2025

Copy link
Copy Markdown
Contributor

Improve CI, add x86_32, arm32, arm64 and android builds

Original Description! Build dependencies using cmake.

I was nerd-sniped by the merge of #191 and #199 to try and switch to mbedTLS as the crypto library.

This should make it much easier to get ARM32/ARM64 (#260) builds on both windows and linux (I've confirmed cross-builds for linux arm32/arm64, for windows, see godotengine/webrtc-native#174 ).

I can add the CI bits as a separate commit to this PR if desired.

Comment thread SConstruct Outdated
Comment thread tools/cmake.py Outdated
@akien-mga

Copy link
Copy Markdown
Member

Seems good to me. If anything we're more familiar with mbedTLS and it works well for Godot, so it's a better pick IMO.

As discussed with @Calinou, we'll first make a release with the new OpenSSL PRs merged (and Godot 4.2 baseline), and then merge this PR and make another release.

So there will be a recent release with OpenSSL and Godot 4.2 to compare with in case there are any new issues related to mbedTLS.

@Faless
Faless force-pushed the feat/mbedtls branch 3 times, most recently from b0cab0c to c9eb393 Compare May 28, 2025 11:22
@Faless
Faless force-pushed the feat/mbedtls branch 3 times, most recently from da656d6 to a8cb0c0 Compare May 30, 2025 23:03
@Calinou

Calinou commented Dec 10, 2025

Copy link
Copy Markdown
Member

@Faless Can you look into rebasing this PR? The SSL certificate issue is still being run into regularly with 3.2.1, so I'd like to merge this, tag 3.3.0 and hopefully fix the issue once and for all.

@Faless
Faless marked this pull request as draft July 27, 2026 23:57
@Faless
Faless force-pushed the feat/mbedtls branch 8 times, most recently from c8d21c3 to ad534a4 Compare July 28, 2026 15:50
@Calinou

Calinou commented Jul 29, 2026

Copy link
Copy Markdown
Member

@Faless Out of curiosity, is this ready for review now?

@Faless

Faless commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

@Calinou , yes, but is based/depends on #330 and #331

@Faless
Faless force-pushed the feat/mbedtls branch 2 times, most recently from 87d239e to 026a5ef Compare July 30, 2026 16:32
@Faless
Faless marked this pull request as ready for review July 30, 2026 18:31
Comment thread .github/workflows/build_release.yml Outdated
@Faless
Faless force-pushed the feat/mbedtls branch 3 times, most recently from 543c604 to 5c04ea5 Compare July 30, 2026 23:54
@Calinou

Calinou commented Jul 31, 2026

Copy link
Copy Markdown
Member

Trying to push to a test repository to GitHub on Linux x86_64 with the CI artifact build using SSH (my key is RSA-4096):

Found a repository at /tmp/4/.git/.
Selected repository path: /tmp/4/.git/.
GitPlugin: Loaded system CA certificates
GitPlugin: Performing push to origin
ERROR: GitPlugin: Could not connect to remote "origin". Are your credentials correct? Try using a PAT token (in case you are using Github) as your password. Error -16: remote rejected authentication: Failed getting response in godot-git-plugin/src/git_plugin.cpp:_push#L536
   at: push_error (core/variant/variant_utility.cpp:1023)
image

Replacing the CI build with 3.2.1 and using the same configuration:

Found a repository at /tmp/4/.git/.
Selected repository path: /tmp/4/.git/.
GitPlugin: Performing push to origin
Writing Objects: 0% (0/13, 12 bytes done.)
Writing Objects: 69% (9/13, 1001 bytes done.)
Writing Objects: 69% (9/13, 1049577 bytes done.)
Writing Objects: 69% (9/13, 1973350 bytes done.)
Writing Objects: 76% (10/13, 1973352 bytes done.)
remote:
Writing Objects: 100% (13/13, 1974036 bytes done.)
[updated] refs/heads/master
[updated] 130d0e1...6e22abb refs/remotes/origin/master
GitPlugin: Push ended

However, I tried a second time with this CI build (replacing the 3.2.1 build) and it worked:

Found a repository at /tmp/4/.git/.
Selected repository path: /tmp/4/.git/.
GitPlugin: Loaded system CA certificates
GitPlugin: Performing push to y
Writing Objects: 100% (0/0, 12 bytes done.)
remote:
Writing Objects: 100% (0/0, 32 bytes done.)
[updated] refs/heads/master
[updated] 6e22abb...6e22abb refs/remotes/y/master
GitPlugin: Push ended

Not sure what's going on, maybe I entered the passphrase incorrectly on the first try.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants