Joe McDonnell created KUDU-3663: ----------------------------------- Summary: Support certificates signed with RSASSA-PSS for channel binding Key: KUDU-3663 URL: https://issues.apache.org/jira/browse/KUDU-3663 Project: Kudu Issue Type: Task Components: security Affects Versions: 1.17.0 Reporter: Joe McDonnell Assignee: Joe McDonnell
Impala hit an issue (IMPALA-14038) where certificates signed using RSASSA-PSS don't work with KRPC / SASL clusters. It produces an error like: {noformat} negotiation.cc:311] Negotiation complete: Not implemented: Server connection negotiation failed: server connection from ****: server certificate has no signature digest (hash) algorithm{noformat} That error comes from Cert::GetServerEndPointChannelBindings(), which is code shared between Kudu and Impala, so this is the corresponding Kudu JIRA. The issue is that RSASSA-PSS has a configurable hash algorithm, and OpenSSL's OBJ_find_sigid_algs() doesn't handle finding the hash algorithm for RSASSA-PSS. OpenSSL 1.1.1 introduced the x509_get_signature_info(), which supports fetching the hash algorithm for RSASSA-PSS. Postgres switched their code to use this when faced with a similar situation: [https://www.postgresql.org/message-id/CAAWbhmgjYym7AsH1fqOx%2BbNqctPpSW1DzyLv_0VhBa_ng%2BNVyQ%40mail.gmail.com] -- This message was sent by Atlassian Jira (v8.20.10#820010)