403Webshell
Server IP : 217.160.0.244  /  Your IP : 216.73.216.36
Web Server : Apache
System : Linux infong-eu155 4.4.400-icpu-108 #2 SMP Wed Feb 11 11:51:01 UTC 2026 x86_64
User : u100174116 ( 6746176)
PHP Version : 8.5.10
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/ruby/gems/3.3.0/gems/net-imap-0.4.19/lib/net/imap/stringprep/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/ruby/gems/3.3.0/gems/net-imap-0.4.19/lib/net/imap/stringprep/nameprep.rb
# frozen_string_literal: true

module Net
  class IMAP
    module StringPrep

      # Defined in RFC3491[https://tools.ietf.org/html/rfc3491], the +nameprep+
      # profile of "Stringprep" is:
      # >>>
      #   used by the IDNA protocol for preparing domain names; it is not
      #   designed for any other purpose.  It is explicitly not designed for
      #   processing arbitrary free text and SHOULD NOT be used for that
      #   purpose.
      #
      #   ...
      #
      #   This profile specifies prohibiting using the following tables...:
      #
      #   - C.1.2 (Non-ASCII space characters)
      #   - C.2.2 (Non-ASCII control characters)
      #   - C.3 (Private use characters)
      #   - C.4 (Non-character code points)
      #   - C.5 (Surrogate codes)
      #   - C.6 (Inappropriate for plain text)
      #   - C.7 (Inappropriate for canonical representation)
      #   - C.8 (Change display properties are deprecated)
      #   - C.9 (Tagging characters)
      #
      #   IMPORTANT NOTE: This profile MUST be used with the IDNA protocol.
      #   The IDNA protocol has additional prohibitions that are checked
      #   outside of this profile.
      module NamePrep

        # From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §10
        STRINGPREP_PROFILE = "nameprep"

        # From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §2
        UNASSIGNED_TABLE = "A.1"

        # From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §3
        MAPPING_TABLES = %w[B.1 B.2].freeze

        # From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §4
        NORMALIZATION = :nfkc

        # From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §5
        PROHIBITED_TABLES = %w[C.1.2 C.2.2 C.3 C.4 C.5 C.6 C.7 C.8 C.9].freeze

        # From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §6
        CHECK_BIDI = true

        module_function

        def nameprep(string, **opts)
          StringPrep.stringprep(
            string,
            unassigned:    UNASSIGNED_TABLE,
            maps:          MAPPING_TABLES,
            prohibited:    PROHIBITED_TABLES,
            normalization: NORMALIZATION,
            bidi:          CHECK_BIDI,
            profile:       STRINGPREP_PROFILE,
            **opts,
          )
        end
      end

    end
  end
end

Youez - 2016 - github.com/yon3zu
LinuXploit