Signed-off-by: Vitaly Chikunov <v...@altlinux.org>
---
 crypto/asymmetric_keys/public_key.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/crypto/asymmetric_keys/public_key.c 
b/crypto/asymmetric_keys/public_key.c
index 51dc1c858c7c..382cf67f510e 100644
--- a/crypto/asymmetric_keys/public_key.c
+++ b/crypto/asymmetric_keys/public_key.c
@@ -136,8 +136,9 @@ 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);
+       info->supported_ops = KEYCTL_SUPPORTS_VERIFY;
+       if (crypto_akcipher_alg(tfm)->encrypt)
+               info->supported_ops |= KEYCTL_SUPPORTS_ENCRYPT;
        if (pkey->key_is_private)
                info->supported_ops |= (KEYCTL_SUPPORTS_DECRYPT |
                                        KEYCTL_SUPPORTS_SIGN);
-- 
2.11.0

Reply via email to