Received: by 2002:ac0:b08d:0:0:0:0:0 with SMTP id l13csp3170904imc; Sat, 23 Feb 2019 22:11:54 -0800 (PST) X-Google-Smtp-Source: AHgI3IaDMuFgorTOV68xTey44fmAezY8DKc5ijMAJnp5FyjJ0KnUC23PXAilUxzmxeutn+EUEELa X-Received: by 2002:aa7:9255:: with SMTP id 21mr12677165pfp.8.1550988714233; Sat, 23 Feb 2019 22:11:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550988714; cv=none; d=google.com; s=arc-20160816; b=xbcjkIcTwLFEHrayplq+NrMowE3fc5qoRmq5wd43ptdUs42JxVc5V470ZJaTcdOEka U3H2LhQd0HNv7e8xMuxEjqHK1Zb2h4AxdB5l6uyoxVEksIjrSGUeTRkNlrzoRlAAL1yW OLWlqsEBHVcAdUp3h6XJ9uAFW4k5qHRE/y0yS4digSiBeAj4+4IbNfASgsoPxIdw7EqF kq38RL6zWv9Kps6wJmWSqFRjPw9+OSyBEZFjrPNPmHg/8ZHBp7ZkXhlXwVvjbFbF18Ta CaVjHMM7AF5DB1umjDBI7lOiU43bWou8Kt4gnnrl078xvlEu8T/+gD9LdSzZFb8BFnms C7Sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:to:from; bh=HVCxmXbwurg5XJtV7jlvluf9h+7D6iwGsPlZ+fXV18c=; b=SdFVEgTMhR6A6tnHoBYAP8TTEgPVdpmh8cwasxVxBWIaSobjho/oCPmRFvEFa7PcHU CQAXCo7BvVvLK98epDmZXSPgSgbucUSYkf9XqC1aa/hsq/KHkLFdebDdMH59+FaozdR9 D5gkGDCyc4W9zp7TnmPP8kB+tti4/Kkq64ODbBZSsFAmSDjLDA1MpnlDSGcTzgqvFQtI CcvETrl1OaYCV64xhtPZVd2RtExOYXSKV/UaoyQt4sEK/v2y6/24MNpkZf6JWHVGeOsw Qvhe6mrD/ehw7lr0Qr57izPTQzf1j5UBxe05zh9TU36l2xECKWP6+vjF7W69+MlT9L/E hdmA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v4si5343856pfm.7.2019.02.23.22.11.38; Sat, 23 Feb 2019 22:11:54 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727062AbfBXGIz (ORCPT + 99 others); Sun, 24 Feb 2019 01:08:55 -0500 Received: from vmicros1.altlinux.org ([194.107.17.57]:43652 "EHLO vmicros1.altlinux.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725928AbfBXGIz (ORCPT ); Sun, 24 Feb 2019 01:08:55 -0500 Received: from imap.altlinux.org (imap.altlinux.org [194.107.17.38]) by vmicros1.altlinux.org (Postfix) with ESMTP id D109E72CCAE; Sun, 24 Feb 2019 09:08:52 +0300 (MSK) Received: from beacon.altlinux.org (unknown [185.6.174.98]) by imap.altlinux.org (Postfix) with ESMTPSA id A1C594A4AE7; Sun, 24 Feb 2019 09:08:52 +0300 (MSK) From: Vitaly Chikunov To: Herbert Xu , David Howells , Mimi Zohar , linux-integrity@vger.kernel.org, keyrings@vger.kernel.org, linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 01/10] KEYS: report to keyctl only actually supported key ops Date: Sun, 24 Feb 2019 09:08:19 +0300 Message-Id: <20190224060828.2527-2-vt@altlinux.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190224060828.2527-1-vt@altlinux.org> References: <20190224060828.2527-1-vt@altlinux.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Because with the introduction of EC-RDSA and change in workings of RSA in regard to sign/verify, akcipher may have not all callbacks defined, report to keyctl only actually supported ops determined by the presence of the akcipher callbacks. Cc: David Howells Cc: keyrings@vger.kernel.org Signed-off-by: Vitaly Chikunov --- crypto/asymmetric_keys/public_key.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/crypto/asymmetric_keys/public_key.c b/crypto/asymmetric_keys/public_key.c index f5d85b47fcc6..c2e4e73fcf06 100644 --- a/crypto/asymmetric_keys/public_key.c +++ b/crypto/asymmetric_keys/public_key.c @@ -130,11 +130,17 @@ static int software_key_query(const struct kernel_pkey_params *params, info->max_sig_size = len; info->max_enc_size = len; info->max_dec_size = len; - info->supported_ops = (KEYCTL_SUPPORTS_ENCRYPT | - KEYCTL_SUPPORTS_VERIFY); - if (pkey->key_is_private) - info->supported_ops |= (KEYCTL_SUPPORTS_DECRYPT | - KEYCTL_SUPPORTS_SIGN); + info->supported_ops = 0; + if (crypto_akcipher_alg(tfm)->verify) + info->supported_ops |= KEYCTL_SUPPORTS_VERIFY; + if (crypto_akcipher_alg(tfm)->encrypt) + info->supported_ops |= KEYCTL_SUPPORTS_ENCRYPT; + if (pkey->key_is_private) { + if (crypto_akcipher_alg(tfm)->decrypt) + info->supported_ops |= KEYCTL_SUPPORTS_DECRYPT; + if (crypto_akcipher_alg(tfm)->sign) + info->supported_ops |= KEYCTL_SUPPORTS_SIGN; + } ret = 0; error_free_tfm: -- 2.11.0