Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a55465dc authored by Steffen Klassert's avatar Steffen Klassert Committed by Herbert Xu
Browse files

crypto: Add userspace report for pcompress type algorithms

parent b735d0a9
Loading
Loading
Loading
Loading
+18 −0
Original line number Original line Diff line number Diff line
@@ -24,6 +24,8 @@
#include <linux/module.h>
#include <linux/module.h>
#include <linux/seq_file.h>
#include <linux/seq_file.h>
#include <linux/string.h>
#include <linux/string.h>
#include <linux/cryptouser.h>
#include <net/netlink.h>


#include <crypto/compress.h>
#include <crypto/compress.h>
#include <crypto/internal/compress.h>
#include <crypto/internal/compress.h>
@@ -46,6 +48,21 @@ static int crypto_pcomp_init_tfm(struct crypto_tfm *tfm)
	return 0;
	return 0;
}
}


static int crypto_pcomp_report(struct sk_buff *skb, struct crypto_alg *alg)
{
	struct crypto_report_comp rpcomp;

	snprintf(rpcomp.type, CRYPTO_MAX_ALG_NAME, "%s", "pcomp");

	NLA_PUT(skb, CRYPTOCFGA_REPORT_COMPRESS,
		sizeof(struct crypto_report_comp), &rpcomp);

	return 0;

nla_put_failure:
	return -EMSGSIZE;
}

static void crypto_pcomp_show(struct seq_file *m, struct crypto_alg *alg)
static void crypto_pcomp_show(struct seq_file *m, struct crypto_alg *alg)
	__attribute__ ((unused));
	__attribute__ ((unused));
static void crypto_pcomp_show(struct seq_file *m, struct crypto_alg *alg)
static void crypto_pcomp_show(struct seq_file *m, struct crypto_alg *alg)
@@ -60,6 +77,7 @@ static const struct crypto_type crypto_pcomp_type = {
#ifdef CONFIG_PROC_FS
#ifdef CONFIG_PROC_FS
	.show		= crypto_pcomp_show,
	.show		= crypto_pcomp_show,
#endif
#endif
	.report		= crypto_pcomp_report,
	.maskclear	= ~CRYPTO_ALG_TYPE_MASK,
	.maskclear	= ~CRYPTO_ALG_TYPE_MASK,
	.maskset	= CRYPTO_ALG_TYPE_MASK,
	.maskset	= CRYPTO_ALG_TYPE_MASK,
	.type		= CRYPTO_ALG_TYPE_PCOMPRESS,
	.type		= CRYPTO_ALG_TYPE_PCOMPRESS,
+5 −0
Original line number Original line Diff line number Diff line
@@ -40,6 +40,7 @@ enum crypto_attr_type_t {
	CRYPTOCFGA_REPORT_HASH,		/* struct crypto_report_hash */
	CRYPTOCFGA_REPORT_HASH,		/* struct crypto_report_hash */
	CRYPTOCFGA_REPORT_BLKCIPHER,	/* struct crypto_report_blkcipher */
	CRYPTOCFGA_REPORT_BLKCIPHER,	/* struct crypto_report_blkcipher */
	CRYPTOCFGA_REPORT_AEAD,		/* struct crypto_report_aead */
	CRYPTOCFGA_REPORT_AEAD,		/* struct crypto_report_aead */
	CRYPTOCFGA_REPORT_COMPRESS,	/* struct crypto_report_comp */
	__CRYPTOCFGA_MAX
	__CRYPTOCFGA_MAX


#define CRYPTOCFGA_MAX (__CRYPTOCFGA_MAX - 1)
#define CRYPTOCFGA_MAX (__CRYPTOCFGA_MAX - 1)
@@ -81,3 +82,7 @@ struct crypto_report_aead {
	unsigned int maxauthsize;
	unsigned int maxauthsize;
	unsigned int ivsize;
	unsigned int ivsize;
};
};

struct crypto_report_comp {
	char type[CRYPTO_MAX_NAME];
};