class Net::IMAP::SASL::DigestMD5Authenticator

def initialize(user = nil, pass = nil, authz = nil,

Any other keyword arguments are silently ignored.

* _optional_ +warn_deprecation+ — Set to +false+ to silence the warning.

For Net::IMAP, this defaults to "imap".
"smtp", "ldap", "xmpp".
* _optional_ #service — the registered service protocol. E.g. "imap",
replicated.
* _optional_ #service_name — The generic host name when the server is
Defaults to #realm.
* _optional_ #host — FQDN for requested service.
Defaults to the last realm in the server-provided realms list.
* _optional_ #realm — A namespace for the #username, e.g. a domain.

identity from the authentication identity.
When +authzid+ is not set, the server should derive the authorization

* _optional_ #authzid ― Authorization identity to act as or on behalf of.

* #password ― A password or passphrase associated with this #authcid.

#username ― An alias for +authcid+.

* #authcid ― Authentication identity that is associated with #password.

==== Parameters

Called by Net::IMAP#authenticate and similar methods on other clients.

Creates an Authenticator for the "+DIGEST-MD5+" SASL mechanism.

new(authcid:, password:, authzid: nil, **options) -> authenticator
new(username:, password:, authzid: nil, **options) -> authenticator
new(username, password, authzid = nil, **options) -> authenticator
:call-seq:
def initialize(user = nil, pass = nil, authz = nil,
               username: nil, password: nil, authzid: nil,
               authcid: nil, secret: nil,
               realm: nil, service: "imap", host: nil, service_name: nil,
               warn_deprecation: true, **)
  username = authcid || username || user or
    raise ArgumentError, "missing username (authcid)"
  password ||= secret || pass or raise ArgumentError, "missing password"
  authzid  ||= authz
  if warn_deprecation
    warn("WARNING: DIGEST-MD5 SASL mechanism was deprecated by RFC6331.",
         category: :deprecated)
  end
  require "digest/md5"
  require "securerandom"
  require "strscan"
  @username, @password, @authzid = username, password, authzid
  @realm        = realm
  @host         = host
  @service      = service
  @service_name = service_name
  @nc, @stage = {}, STAGE_ONE
end