Skip to content

More flexible and safer client authentication API.#110

Merged
ctz merged 6 commits intorustls:masterfrom
briansmith:flexible-client-auth
Sep 3, 2017
Merged

More flexible and safer client authentication API.#110
ctz merged 6 commits intorustls:masterfrom
briansmith:flexible-client-auth

Conversation

@briansmith
Copy link
Contributor

Stop making "no client authentication" the silent default, because that
is not a safe default. Instead, require the user to make an explicit
choice of whether/how to do client authentication.

Previously, the default client authentication setting was the least
safe, so there's was no need to make the ability to plug in a client
auth implementation a “dangerous” feature. With this change, the
ability to provide one's own client authentication implementation
is available in the default configuration.

Some servers need more flexibility in doing client authentication than
was previously provided. Now all the choices for client authentication
are made by ClientCertVerifier.

Temporarily use webpki from its Git repo, until the next version of it
is released.
Allow the resolver to rely on the fact that the name is a valid DNS
name. In particular it allows it to know that the DNS name is given
in the IDN ASCII (punycode) encoding.
Make it clear that the name passed into ClientSession is a DNS name
and cannot be empty (""), an IP address, an internationalized domain
name, etc. It has to be a DNS hostname because it is put into the SNI
extension in the client hello.
@briansmith
Copy link
Contributor Author

This is built on top of #108. Only the last commit here is specific to this PR.

Stop making "no client authentication" the silent default, because that
is not a safe default. Instead, require the user to make an explicit
choice of whether/how to do client authentication.

Previously, the default client authentication setting was the least
safe, so there's was no need to make the ability to plug in a client
auth implementation a “dangerous” feature. With this change, the
ability to provide one's own client authentication implementation
is available in the default configuration.

Some servers need more flexibility in doing client authentication than
was previously provided. Now all the choices for client authentication
are made by `ClientCertVerifier`.
@coveralls
Copy link

Coverage Status

Coverage decreased (-0.09%) to 94.189% when pulling 2cb3e6d on briansmith:flexible-client-auth into 91f249c on ctz:master.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants