Skip to content

Add support for linking against wolfSSL provided by wolfssl-sys #45

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

pulsastrix
Copy link
Member

This PR allows the vendored version of libcoap to link against the version of wolfSSL that is used by the wolfssl-sys crate.
This change required some modifications to wolfssl-sys in order to expose the library paths to us and enable features necessary for libcoap, which is why it currently uses our own fork of wolfssl-sys.

Closes #29.

@pulsastrix pulsastrix added the enhancement New feature or request label Mar 3, 2025
@pulsastrix pulsastrix requested a review from JKRhb March 3, 2025 18:31
@pulsastrix pulsastrix self-assigned this Mar 3, 2025
Copy link

github-actions bot commented Mar 3, 2025

Workflow Status Report

Generated for commit 9af4237 on Tue Mar 4 15:01:48 UTC 2025.

Test and Analyze
Docs, Coverage Report and PR Updates

In case of failure, clippy warnings and rustfmt changes (if any) will be indicated as CI check warnings in the file comparison view.

Documentation: Read Online Download

Coverage Report: Read Online Download

Note: Online versions of documentation and coverage reports may not be available indefinitely, especially after the pull request was merged.

Code Coverage Report

Coverage

Coverage target is 80%.

Expand to view coverage statistics
file coverage covered missed_lines
libcoap-sys/src/lib.rs 84.06% 211 / 251 372-383, 494, 502, 529-546, 671-674, 758-761
libcoap/src/context.rs 61.50% 230 / 374 107, 168-213, 223-230, 247, 276, 323-326, 360, 375-377, 442, 447, 463, 471-633
libcoap/src/crypto/pki_rpk/key.rs 56.67% 51 / 90 179-218, 242-250, 252-255, 261-263
libcoap/src/crypto/pki_rpk/mod.rs 21.90% 99 / 452 36-279, 454-486, 507-605, 613, 616, 650-668, 678-680, 685-687, 692-694, 755, 767-903
libcoap/src/crypto/pki_rpk/pki.rs 78.08% 114 / 146 90-149, 302-315
libcoap/src/crypto/pki_rpk/rpk.rs 72.60% 53 / 73 68-98, 160-171
libcoap/src/crypto/psk/client.rs 45.59% 62 / 136 71-75, 83, 106-192, 234-242, 269-271, 276-278, 306-338
libcoap/src/crypto/psk/key.rs 61.46% 59 / 96 42-49, 163-205
libcoap/src/crypto/psk/mod.rs 0.00% 0 / 45 30-100
libcoap/src/crypto/psk/server.rs 30.54% 51 / 167 69-88, 96, 99, 116-119, 145-147, 152-154, 159-161, 189-234, 255, 271-396
libcoap/src/error.rs 0.00% 0 / 6 90-170
libcoap/src/event.rs 29.73% 11 / 37 36-168
libcoap/src/lib.rs 0.00% 0 / 64 62-165
libcoap/src/mem.rs 72.89% 121 / 166 148-163, 196-198, 210-212, 280, 296-298, 319-324, 353-355, 369, 381-393, 454-456, 473, 481-488, 507, 527, 531
libcoap/src/message/mod.rs 58.46% 190 / 325 105-108, 110-131, 139-145, 147-168, 172, 174, 176, 208, 210, 213-222, 225-243, 245-249, 265-275, 295-302, 398, 441, 447, 478, 488-491, 497-499, 506, 511-523, 529, 549-551, 561-563
libcoap/src/message/request.rs 34.12% 101 / 296 51, 68-202, 228-256, 264-365, 371-375, 380-381, 383-386, 389, 395-401, 430-432, 436, 439-441, 444-446, 449, 452, 455, 458, 461, 472-479
libcoap/src/message/response.rs 22.17% 45 / 203 36-160, 165, 168, 171, 174, 177, 195-325, 329-334, 360
libcoap/src/prng.rs 55.41% 41 / 74 66, 78-116, 139-149, 196
libcoap/src/protocol.rs 35.88% 61 / 170 164-166, 171-176, 178-193, 195-196, 203-208, 210-225, 227-228, 248-287, 308, 322-324, 369-374, 383-388, 444-469, 475-488, 520, 522
libcoap/src/resource.rs 70.49% 172 / 244 61, 93-95, 170-175, 182-207, 213-218, 248, 265-287, 299-302, 327-330, 363-372, 505-507
libcoap/src/session/client.rs 90.20% 138 / 153 164, 191, 223, 231-233, 239-241, 288-294
libcoap/src/session/mod.rs 39.64% 111 / 280 62-74, 105, 115-230, 240-285, 294-297, 306-317, 346, 350, 382-402, 424, 432, 464, 471, 489-495, 570, 576
libcoap/src/session/server.rs 82.05% 64 / 78 75-77, 81, 152, 162-164, 179, 194-200
libcoap/src/transport.rs 70.97% 22 / 31 29-36, 55
libcoap/src/types.rs 55.60% 313 / 563 71-125, 131-160, 210-223, 241-243, 253-265, 272-278, 284-286, 295, 562, 571, 583, 610, 636-705, 758, 803-824, 845-847, 863-868, 879-964
libcoap/tests/common/dtls.rs 94.34% 50 / 53 49, 54-55
libcoap/tests/common/mod.rs 93.68% 89 / 95 85-88, 92, 126
libcoap/tests/dtls_pki_client_server_test.rs 100.00% 82 / 82
libcoap/tests/dtls_psk_client_server_test.rs 100.00% 26 / 26
libcoap/tests/dtls_rpk_client_server_test.rs 100.00% 7 / 7
libcoap/tests/tcp_client_server_test.rs 100.00% 22 / 22
libcoap/tests/udp_client_server_test.rs 100.00% 22 / 22

Total coverage: 54.24%

Copy link
Member

@JKRhb JKRhb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just stumbled upon two tiny spots, otherwise LGTM :)

@@ -143,7 +147,8 @@ dtls-rpk = ["dtls"]
[dependencies]
openssl-sys = { version = "^0.9.74", optional = true }
mbedtls-sys-auto = { version = "^2.26", optional = true }
tinydtls-sys = { version = "^0.2.0", default-features = false, optional = true }
wolfssl-sys = { version = "2.0.0", git = "https://github.com/namib-project/wolfssl-rs.git", branch = "add_sys_cargo_metadata", optional = true, features = ["aesccm", "hmac", "psk", "opensslall", "ex_data", "alpn", "dh"] }
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll leave this comment here to make sure that we don't merge this until the required changes to wolfssl-sys have been upstreamed.

See expressvpn/wolfssl-rs#225.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

wolfSSL support
2 participants