More specific error for unexpected cert request #4381
Merged
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:
A customer saw a confusing S2N_ERR_BAD_MESSAGE error when their server requested client auth but their client wasn't configured to support client auth. I'm adding a more specific error, since this seems like it would be a fairly common situation.
Call-outs:
I'm not changing any behavior here, but is the current behavior correct? It seems to me like a client shouldn't fail if the server requests client auth, it should just act like it does when S2N_CERT_AUTH_OPTIONAL is chosen and send an empty certificate. Basically, I think clients should default to S2N_CERT_AUTH_OPTIONAL instead of S2N_CERT_AUTH_NONE.
A better error is an improvement, but I'm wondering if the correct fix is a behavior change.
Testing:
Added a new self-talk test for the handshake.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.