diff --git a/crypto/crypto_user.c b/crypto/crypto_user.c index 52459ae711a9b988f8b87e0ab240876166711bae..748990fa3c5369deb77df6128cd19acd96f2e57c 100644 --- a/crypto/crypto_user.c +++ b/crypto/crypto_user.c @@ -89,6 +89,21 @@ static int crypto_report_cipher(struct sk_buff *skb, struct crypto_alg *alg) return -EMSGSIZE; } +static int crypto_report_comp(struct sk_buff *skb, struct crypto_alg *alg) +{ + struct crypto_report_comp rcomp; + + snprintf(rcomp.type, CRYPTO_MAX_ALG_NAME, "%s", "compression"); + + NLA_PUT(skb, CRYPTOCFGA_REPORT_COMPRESS, + sizeof(struct crypto_report_comp), &rcomp); + + 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) { @@ -126,6 +141,11 @@ static int crypto_report_one(struct crypto_alg *alg, if (crypto_report_cipher(skb, alg)) goto nla_put_failure; + break; + case CRYPTO_ALG_TYPE_COMPRESS: + if (crypto_report_comp(skb, alg)) + goto nla_put_failure; + break; }