module WEBrick
module HTTPAuth class DigestAuth @config: Hash[Symbol, untyped] @domain: Array[String]? @use_opaque: bool @use_next_nonce: bool @check_nc: bool @use_auth_info_header: bool @nonce_expire_period: Integer @nonce_expire_delta: Integer @internet_explorer_hack: bool @h: singleton(Digest::Base) @instance_key: String @opaques: Hash[String, OpaqueInfo] @last_nonce_expire: Time @mutex: Thread::Mutex include Authenticator AuthScheme: String class OpaqueInfo < Struct[untyped] attr_accessor time(): Time attr_accessor nonce(): String? attr_accessor nc(): String end attr_reader algorithm: String? attr_reader qop: Array[String] def self.make_passwd: (String realm, String user, String pass) -> untyped def initialize: (Hash[Symbol, untyped] config, ?Hash[Symbol, untyped] default) -> void def authenticate: (HTTPRequest req, HTTPResponse res) -> void def challenge: (HTTPRequest req, HTTPResponse res, ?bool stale) -> bot private MustParams: Array[String] MustParamsAuth: Array[String] def _authenticate: (HTTPRequest req, HTTPResponse res) -> (:nonce_is_stale | bool) def split_param_value: (String string) -> Hash[String, String] def generate_next_nonce: (HTTPRequest req) -> String def check_nonce: (HTTPRequest req, Hash[String, String] auth_req) -> bool def generate_opaque: (HTTPRequest req) -> String def check_opaque: (OpaqueInfo opaque_struct, untyped req, Hash[String, String] auth_req) -> bool def check_uri: (HTTPRequest req, Hash[String, String] auth_req) -> bool def hexdigest: (*_ToS? args) -> String end class ProxyDigestAuth < DigestAuth include ProxyAuthenticator private def check_uri: (HTTPRequest req, Hash[String, String] auth_req) -> true end end
end