Improve rustls pemfile parsing errors #168
Open
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.
This improves the error messages that come from parsing pemfiles with rustls.
I ran into the previous error when trying to parse a file that actually returned an empty iterator when fed into
rustls_pemfile::read_all
- I got an error that said 'private key format not supported', but the actual issue was that I had no keys in the provided file.This PR changes the error messages so that this situation would return an error stating
The private key file contained no keys
. It also returns more specific errors when it contains a known format that we can't process (by explicitly stating the type in the error message) and also informs the user if their file somehow contains multiple keys (where we expect it to contain just one).This also avoids the allocation of the intermediate
Vec
which is supposed to contain just the one key from the file.