aboutsummaryrefslogtreecommitdiffstats
path: root/meta-fsl-ppc/recipes-kernel/cryptodev/files/0016-add-basic-detection-of-asym-features.patch
blob: cefb6dcc4d1478eaffc29bcb6ea6dc02f43f326c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
From 586bc4a6cd1014c57364020013062f07a8861e38 Mon Sep 17 00:00:00 2001
From: Cristian Stoica <cristian.stoica@freescale.com>
Date: Mon, 20 Apr 2015 13:18:47 +0300
Subject: [PATCH] add basic detection of asym features

Change-Id: I3b3ba8664bf631a63be1f11e715024509e20f841
Signed-off-by: Cristian Stoica <cristian.stoica@freescale.com>
---
 ioctl.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/ioctl.c b/ioctl.c
index da3a842..53dbf64 100644
--- a/ioctl.c
+++ b/ioctl.c
@@ -977,10 +977,14 @@ cryptodev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg_)
 
 	switch (cmd) {
 	case CIOCASYMFEAT:
-		return put_user(CRF_MOD_EXP_CRT |  CRF_MOD_EXP | CRF_DSA_SIGN |
-			CRF_DSA_VERIFY | CRF_DH_COMPUTE_KEY |
-			CRF_DSA_GENERATE_KEY | CRF_DH_GENERATE_KEY |
-			CRF_RSA_GENERATE_KEY, p);
+		ses = 0;
+		if (crypto_has_alg("pkc(rsa)", 0, 0))
+			ses = CRF_MOD_EXP_CRT |	CRF_MOD_EXP | CRF_RSA_GENERATE_KEY;
+		if (crypto_has_alg("pkc(dsa)", 0, 0))
+			ses |= CRF_DSA_SIGN | CRF_DSA_VERIFY | CRF_DSA_GENERATE_KEY;
+		if (crypto_has_alg("pkc(dh)", 0, 0))
+			ses |= CRF_DH_COMPUTE_KEY |CRF_DH_GENERATE_KEY;
+		return put_user(ses, p);
 	case CRIOGET:
 		fd = clonefd(filp);
 		ret = put_user(fd, p);
-- 
2.3.5