🔒 SASL DIGEST-MD5: realm, host, service_name, etc #284
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 work in this commit was done about 18 months ago, as part of #78. In fact, the work done in this PR was used to guide the style of all of the new authenticators. I wasn't sure whether it was worth submitting as a PR, but for the sake of completeness: here it is.)
Yes, DIGEST-MD5 is deprecated! But that also means that it was lower risk for experimenting with other SASL changes. Its complexity vs most other mechanisms made it a good test-bed for the completeness of net-imap's SASL implementation. For example:
done?
.Added in 🔒 Verify SASL authentication has completed #179.
realm
(the user might select from a server-provided list).Please note: the initial work I did to support attribute callbacks was reverted, to simplify the SASL re-write. It could still be a useful feature for this and other mechanisms.
service
should not be hard-coded toimap
, and should be provided by the client (or the protocol adapter).Please note: Although the current (experimental) client adapters do have a
#service
method, it is not used by the (experimental) AuthenticationExchange yet.host
,port
(also used byOAUTHBEARER
).I improved the existing authenticator in several ways:
realm
,host
,service_name
,service
attributes. This allows non-IMAP clients to construct the correctdigest-uri
.qop=auth
(as in RFC)sparam
keys (required and no-multiples).However... it's still deprecated, so don't use it! 🙃