diff options
| -rw-r--r-- | crypto/pcompress.c | 18 | ||||
| -rw-r--r-- | include/linux/cryptouser.h | 5 |
2 files changed, 23 insertions, 0 deletions
diff --git a/crypto/pcompress.c b/crypto/pcompress.c index f7c4a7d7412e..fefda78a6a2a 100644 --- a/crypto/pcompress.c +++ b/crypto/pcompress.c | |||
| @@ -24,6 +24,8 @@ | |||
| 24 | #include <linux/module.h> | 24 | #include <linux/module.h> |
| 25 | #include <linux/seq_file.h> | 25 | #include <linux/seq_file.h> |
| 26 | #include <linux/string.h> | 26 | #include <linux/string.h> |
| 27 | #include <linux/cryptouser.h> | ||
| 28 | #include <net/netlink.h> | ||
| 27 | 29 | ||
| 28 | #include <crypto/compress.h> | 30 | #include <crypto/compress.h> |
| 29 | #include <crypto/internal/compress.h> | 31 | #include <crypto/internal/compress.h> |
| @@ -46,6 +48,21 @@ static int crypto_pcomp_init_tfm(struct crypto_tfm *tfm) | |||
| 46 | return 0; | 48 | return 0; |
| 47 | } | 49 | } |
| 48 | 50 | ||
| 51 | static int crypto_pcomp_report(struct sk_buff *skb, struct crypto_alg *alg) | ||
| 52 | { | ||
| 53 | struct crypto_report_comp rpcomp; | ||
| 54 | |||
| 55 | snprintf(rpcomp.type, CRYPTO_MAX_ALG_NAME, "%s", "pcomp"); | ||
| 56 | |||
| 57 | NLA_PUT(skb, CRYPTOCFGA_REPORT_COMPRESS, | ||
| 58 | sizeof(struct crypto_report_comp), &rpcomp); | ||
| 59 | |||
| 60 | return 0; | ||
| 61 | |||
| 62 | nla_put_failure: | ||
| 63 | return -EMSGSIZE; | ||
| 64 | } | ||
| 65 | |||
| 49 | static void crypto_pcomp_show(struct seq_file *m, struct crypto_alg *alg) | 66 | static void crypto_pcomp_show(struct seq_file *m, struct crypto_alg *alg) |
| 50 | __attribute__ ((unused)); | 67 | __attribute__ ((unused)); |
| 51 | static void crypto_pcomp_show(struct seq_file *m, struct crypto_alg *alg) | 68 | 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 = { | |||
| 60 | #ifdef CONFIG_PROC_FS | 77 | #ifdef CONFIG_PROC_FS |
| 61 | .show = crypto_pcomp_show, | 78 | .show = crypto_pcomp_show, |
| 62 | #endif | 79 | #endif |
| 80 | .report = crypto_pcomp_report, | ||
| 63 | .maskclear = ~CRYPTO_ALG_TYPE_MASK, | 81 | .maskclear = ~CRYPTO_ALG_TYPE_MASK, |
| 64 | .maskset = CRYPTO_ALG_TYPE_MASK, | 82 | .maskset = CRYPTO_ALG_TYPE_MASK, |
| 65 | .type = CRYPTO_ALG_TYPE_PCOMPRESS, | 83 | .type = CRYPTO_ALG_TYPE_PCOMPRESS, |
diff --git a/include/linux/cryptouser.h b/include/linux/cryptouser.h index 48030c7dfb51..c8c1dfcb7cf2 100644 --- a/include/linux/cryptouser.h +++ b/include/linux/cryptouser.h | |||
| @@ -40,6 +40,7 @@ enum crypto_attr_type_t { | |||
| 40 | CRYPTOCFGA_REPORT_HASH, /* struct crypto_report_hash */ | 40 | CRYPTOCFGA_REPORT_HASH, /* struct crypto_report_hash */ |
| 41 | CRYPTOCFGA_REPORT_BLKCIPHER, /* struct crypto_report_blkcipher */ | 41 | CRYPTOCFGA_REPORT_BLKCIPHER, /* struct crypto_report_blkcipher */ |
| 42 | CRYPTOCFGA_REPORT_AEAD, /* struct crypto_report_aead */ | 42 | CRYPTOCFGA_REPORT_AEAD, /* struct crypto_report_aead */ |
| 43 | CRYPTOCFGA_REPORT_COMPRESS, /* struct crypto_report_comp */ | ||
| 43 | __CRYPTOCFGA_MAX | 44 | __CRYPTOCFGA_MAX |
| 44 | 45 | ||
| 45 | #define CRYPTOCFGA_MAX (__CRYPTOCFGA_MAX - 1) | 46 | #define CRYPTOCFGA_MAX (__CRYPTOCFGA_MAX - 1) |
| @@ -81,3 +82,7 @@ struct crypto_report_aead { | |||
| 81 | unsigned int maxauthsize; | 82 | unsigned int maxauthsize; |
| 82 | unsigned int ivsize; | 83 | unsigned int ivsize; |
| 83 | }; | 84 | }; |
| 85 | |||
| 86 | struct crypto_report_comp { | ||
| 87 | char type[CRYPTO_MAX_NAME]; | ||
| 88 | }; | ||
