Uploaded image for project: 'MariaDB Connector/Python'
  1. MariaDB Connector/Python
  2. CONPY-384

Pure-Python client cannot connect at all with a FIPS-enabled OpenSSL

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • None
    • 2.0.0-rc3
    • Other
    • None

    Description

      On a Python linked against a FIPS-enforcing OpenSSL, hashlib.sha1 raises. The client always names mysql_native_password in its handshake response, whatever plugin the account uses, so the first packet raises before the server can send the auth-switch request that selects the account's real plugin. No account can connect, not even one on the FIPS-compliant parsec plugin.

      Fix:

      Detect FIPS mode by probing SHA-1 availability.
      Under FIPS, the native-password scramble becomes an all-zero placeholder instead of raising, so the handshake completes and the switch to parsec happens.
      Refuse non-FIPS-compliant plugins up front via a new fips_compliant() on the plugin factory (parsec and caching_sha2_password compliant, mysql_native_password not), and annotate the server's "access denied" with the real cause.

      Attachments

        Activity

          People

            diego dupin Diego Dupin
            diego dupin Diego Dupin
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.