All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steffen Klassert <steffen.klassert@secunet.com>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: linux-crypto@vger.kernel.org
Subject: [PATCH v4 16/17] crypto: Add userspace report for cipher type algorithms
Date: Tue, 27 Sep 2011 07:48:01 +0200	[thread overview]
Message-ID: <20110927054801.GS1808@secunet.com> (raw)
In-Reply-To: <20110927052050.GB1808@secunet.com>


Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
---
 crypto/crypto_user.c       |   29 +++++++++++++++++++++++++++++
 include/linux/cryptouser.h |    8 ++++++++
 2 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/crypto/crypto_user.c b/crypto/crypto_user.c
index 8a0c5c6..52459ae 100644
--- a/crypto/crypto_user.c
+++ b/crypto/crypto_user.c
@@ -70,6 +70,25 @@ static struct crypto_alg *crypto_alg_match(struct crypto_user_alg *p, int exact)
 	return alg;
 }
 
+static int crypto_report_cipher(struct sk_buff *skb, struct crypto_alg *alg)
+{
+	struct crypto_report_cipher rcipher;
+
+	snprintf(rcipher.type, CRYPTO_MAX_ALG_NAME, "%s", "cipher");
+
+	rcipher.blocksize = alg->cra_blocksize;
+	rcipher.min_keysize = alg->cra_cipher.cia_min_keysize;
+	rcipher.max_keysize = alg->cra_cipher.cia_max_keysize;
+
+	NLA_PUT(skb, CRYPTOCFGA_REPORT_CIPHER,
+		sizeof(struct crypto_report_cipher), &rcipher);
+
+	return 0;
+
+nla_put_failure:
+	return -EMSGSIZE;
+}
+
 static int crypto_report_one(struct crypto_alg *alg,
 			     struct crypto_user_alg *ualg, struct sk_buff *skb)
 {
@@ -98,6 +117,16 @@ static int crypto_report_one(struct crypto_alg *alg,
 	if (alg->cra_type && alg->cra_type->report) {
 		if (alg->cra_type->report(skb, alg))
 			goto nla_put_failure;
+
+		goto out;
+	}
+
+	switch (alg->cra_flags & (CRYPTO_ALG_TYPE_MASK | CRYPTO_ALG_LARVAL)) {
+	case CRYPTO_ALG_TYPE_CIPHER:
+		if (crypto_report_cipher(skb, alg))
+			goto nla_put_failure;
+
+		break;
 	}
 
 out:
diff --git a/include/linux/cryptouser.h b/include/linux/cryptouser.h
index ed8a40e..532fb58 100644
--- a/include/linux/cryptouser.h
+++ b/include/linux/cryptouser.h
@@ -42,6 +42,7 @@ enum crypto_attr_type_t {
 	CRYPTOCFGA_REPORT_AEAD,		/* struct crypto_report_aead */
 	CRYPTOCFGA_REPORT_COMPRESS,	/* struct crypto_report_comp */
 	CRYPTOCFGA_REPORT_RNG,		/* struct crypto_report_rng */
+	CRYPTOCFGA_REPORT_CIPHER,	/* struct crypto_report_cipher */
 	__CRYPTOCFGA_MAX
 
 #define CRYPTOCFGA_MAX (__CRYPTOCFGA_MAX - 1)
@@ -67,6 +68,13 @@ struct crypto_report_hash {
 	unsigned int digestsize;
 };
 
+struct crypto_report_cipher {
+	char type[CRYPTO_MAX_ALG_NAME];
+	unsigned int blocksize;
+	unsigned int min_keysize;
+	unsigned int max_keysize;
+};
+
 struct crypto_report_blkcipher {
 	char type[CRYPTO_MAX_NAME];
 	char geniv[CRYPTO_MAX_NAME];
-- 
1.7.0.4

  parent reply	other threads:[~2011-09-27  5:48 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-27  5:20 [PATCH v4 00/17] crypto user configuration api Steffen Klassert
2011-09-27  5:21 ` [PATCH v4 01/17] crypto: Add a flag to identify crypto instances Steffen Klassert
2011-09-27  5:22 ` [PATCH v4 02/17] crypto: Export crypto_remove_spawns Steffen Klassert
2011-09-27  5:23 ` [PATCH v4 03/17] crypto: Export crypto_remove_final Steffen Klassert
2011-09-27  5:23 ` [PATCH v4 04/17] crypto: Add userspace configuration API Steffen Klassert
2011-09-27  5:24 ` [PATCH v4 05/17] crypto: Add a report function pointer to crypto_type Steffen Klassert
2011-09-27  5:25 ` [PATCH v4 06/17] crypto: Add userspace report for larval type algorithms Steffen Klassert
2011-09-27  5:26 ` [PATCH v4 07/17] crypto: Add userspace report for shash " Steffen Klassert
2011-09-27  5:41 ` [PATCH v4 08/17] crypto: Add userspace report for ahash " Steffen Klassert
2011-09-27  5:41 ` [PATCH v4 09/17] crypto: Add userspace report for blkcipher " Steffen Klassert
2011-09-27  5:42 ` [PATCH v4 10/17] crypto: Add userspace report for ablkcipher " Steffen Klassert
2011-09-27  5:43 ` [PATCH v4 11/17] crypto: Add userspace report for givcipher " Steffen Klassert
2011-09-27  5:44 ` [PATCH v4 12/17] crypto: Add userspace report for aead " Steffen Klassert
2011-11-02 14:25   ` Luis Henriques
2011-09-27  5:45 ` [PATCH v4 13/17] crypto: Add userspace report for nivaead " Steffen Klassert
2011-09-27  5:46 ` [PATCH v4 14/17] crypto: Add userspace report for pcompress " Steffen Klassert
2011-09-27  5:47 ` [PATCH v4 15/17] crypto: Add userspace report for rng " Steffen Klassert
2011-09-27  5:48 ` Steffen Klassert [this message]
2011-09-27  5:48 ` [PATCH v4 17/17] crypto: Add userspace report for compress " Steffen Klassert
2011-10-21 12:38 ` [PATCH v4 00/17] crypto user configuration api Herbert Xu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110927054801.GS1808@secunet.com \
    --to=steffen.klassert@secunet.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-crypto@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.