@@ -15,17 +15,47 @@ module SASL
1515 # please consult the documentation for the specific mechanisms you are
1616 # using:
1717 #
18- # * +PLAIN+ --- PlainAuthenticator
19- # * +XOAUTH2+ --- XOAuth2Authenticator
20- # * +EXTERNAL+ --- ExternalAuthenticator
21- # * +ANONYMOUS+ --- AnonymousAuthenticator
22- # * +OAUTHBEARER+ --- OAuthBearerAuthenticator
23- # * +SCRAM-SHA-*+ --- TODO
18+ #--
19+ # n.b. the following table is copy/pasted to Net::IMAP#authenticate.
20+ #++
21+ #
22+ # +PLAIN+:: See SASL::PlainAuthenticator.
23+ # Login using clear-text username and password.
24+ # +SCRAM-*+:: See SASL::ScramAuthenticator.
25+ # Login by username and password. The password is not sent
26+ # to the server but is used in a salted challenge/response
27+ # exchange. One of the benefits over +PLAIN+ is that the
28+ # server cannot impersonate the user to other servers.
29+ # +SCRAM-SHA-1+ and +SCRAM-SHA-256+ are supported, but any
30+ # algorithm supported by OpenSSL::Digest can easily be
31+ # added.
32+ # +OAUTHBEARER+:: See SASL::OAuthBearerAuthenticator.
33+ # Login using an OAUTH2 Bearer token. This is the
34+ # standard mechanism for using OAuth2 with \SASL, but it
35+ # is not yet deployed as widely as +XOAUTH2+.
36+ # +XOAUTH2+:: See SASL::XOAuth2Authenticator.
37+ # Login using a username and OAuth2 access token.
38+ # Non-standard and obsoleted by +OAUTHBEARER+, but widely
39+ # supported.
40+ # +EXTERNAL+:: See SASL::ExternalAuthenticator.
41+ # Login using already established credentials, such as a TLS
42+ # certificate or IPsec.
43+ # +ANONYMOUS+:: See SASL::AnonymousAuthenticator.
44+ # Allow the user to gain access to public services or
45+ # resources without authenticating or disclosing an
46+ # identity.
47+ #
48+ # >>>
49+ # *Deprecated:* <em>Obsolete mechanisms are available for backwards
50+ # compatibility.</em>
51+ #
52+ # For +DIGEST-MD5+ see SASL::DigestMD5Authenticator.
53+ #
54+ # For +LOGIN+, see SASL::LoginAuthenticator.
55+ #
56+ # For +CRAM-MD5+, see SASL::CramMD5Authenticator.
2457 #
25- # [Deprecated:]
26- # DIGEST-MD5[rdoc-ref:DigestMD5Authenticator],
27- # LOGIN[rdoc-ref:LoginAuthenticator], and
28- # CRAM-MD5[rdoc-ref:CramMD5Authenticator]
58+ # <em>Using a deprecated mechanism will print a warning.</em>
2959 #
3060 # \Authenticators should be created and used internally by a protocol
3161 # client's authentication command, e.g. Net::IMAP#authenticate for \IMAP.
@@ -76,7 +106,6 @@ module SASL
76106 # * +scram_sha1_salted_passwords+, +scram_sha256_salted_password+ ---
77107 # Salted password(s) (with salt and iteration count) for the +SCRAM-*+
78108 # mechanism family. <tt>[salt, iterations, pbkdf2_hmac]</tt> tuple.
79- # <em>(not implemented yet...)</em>
80109 # * +passcode+ --- passcode for SecurID 2FA <em>(not implemented)</em>
81110 # * +pin+ --- Personal Identification number, e.g. for SecurID 2FA
82111 # <em>(not implemented)</em>
@@ -277,7 +306,7 @@ def initialize(*, **, &callback)
277306 # See PlainAuthenticator or DigestMD5Authenticator for example
278307 # authenticator implementations.
279308 def process ( server_challenge_string )
280- raise NotImplementedError , "#{ __method__ } is defined by subclasses"
309+ raise NoMethodError , "#{ __method__ } is defined by subclasses"
281310 end
282311
283312 # :call-seq:
0 commit comments