feat(bindings): add psk selection api #5101
Open
+570
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of changes:
Add PSK Selection API
All known use cases for the Psk Callback are mut by just iterating over the identities. This functionality is exposed through the IdentitySelector.
If we were to add additional functionality to the OfferedPsk in the future, we might also want to expose that. So I added that workflow as well, through the OfferedPskSelector (gated behind
#(cfg(test))
)Call-outs:
The lifetime stuff is rather dense internally, but the actual trait definition/implementors of the trait don't really have to directly deal with any of the complexity.
Testing:
Unit tests were added for the PSK callbacks
I also did some quite sanity checks to ensure that the lifetime stuff was preventing bad scenarios.
multiple selectors:
results in
Repeated borrow from offered psk selector:
results in
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.