Lines Matching refs:alg
31 static int crypto_report_aead(struct sk_buff *skb, struct crypto_alg *alg)
39 raead.stat_encrypt_cnt = atomic64_read(&alg->stats.aead.encrypt_cnt);
40 raead.stat_encrypt_tlen = atomic64_read(&alg->stats.aead.encrypt_tlen);
41 raead.stat_decrypt_cnt = atomic64_read(&alg->stats.aead.decrypt_cnt);
42 raead.stat_decrypt_tlen = atomic64_read(&alg->stats.aead.decrypt_tlen);
43 raead.stat_err_cnt = atomic64_read(&alg->stats.aead.err_cnt);
48 static int crypto_report_cipher(struct sk_buff *skb, struct crypto_alg *alg)
56 rcipher.stat_encrypt_cnt = atomic64_read(&alg->stats.cipher.encrypt_cnt);
57 rcipher.stat_encrypt_tlen = atomic64_read(&alg->stats.cipher.encrypt_tlen);
58 rcipher.stat_decrypt_cnt = atomic64_read(&alg->stats.cipher.decrypt_cnt);
59 rcipher.stat_decrypt_tlen = atomic64_read(&alg->stats.cipher.decrypt_tlen);
60 rcipher.stat_err_cnt = atomic64_read(&alg->stats.cipher.err_cnt);
65 static int crypto_report_comp(struct sk_buff *skb, struct crypto_alg *alg)
72 rcomp.stat_compress_cnt = atomic64_read(&alg->stats.compress.compress_cnt);
73 rcomp.stat_compress_tlen = atomic64_read(&alg->stats.compress.compress_tlen);
74 rcomp.stat_decompress_cnt = atomic64_read(&alg->stats.compress.decompress_cnt);
75 rcomp.stat_decompress_tlen = atomic64_read(&alg->stats.compress.decompress_tlen);
76 rcomp.stat_err_cnt = atomic64_read(&alg->stats.compress.err_cnt);
81 static int crypto_report_acomp(struct sk_buff *skb, struct crypto_alg *alg)
88 racomp.stat_compress_cnt = atomic64_read(&alg->stats.compress.compress_cnt);
89 racomp.stat_compress_tlen = atomic64_read(&alg->stats.compress.compress_tlen);
90 racomp.stat_decompress_cnt = atomic64_read(&alg->stats.compress.decompress_cnt);
91 racomp.stat_decompress_tlen = atomic64_read(&alg->stats.compress.decompress_tlen);
92 racomp.stat_err_cnt = atomic64_read(&alg->stats.compress.err_cnt);
97 static int crypto_report_akcipher(struct sk_buff *skb, struct crypto_alg *alg)
104 rakcipher.stat_encrypt_cnt = atomic64_read(&alg->stats.akcipher.encrypt_cnt);
105 rakcipher.stat_encrypt_tlen = atomic64_read(&alg->stats.akcipher.encrypt_tlen);
106 rakcipher.stat_decrypt_cnt = atomic64_read(&alg->stats.akcipher.decrypt_cnt);
107 rakcipher.stat_decrypt_tlen = atomic64_read(&alg->stats.akcipher.decrypt_tlen);
108 rakcipher.stat_sign_cnt = atomic64_read(&alg->stats.akcipher.sign_cnt);
109 rakcipher.stat_verify_cnt = atomic64_read(&alg->stats.akcipher.verify_cnt);
110 rakcipher.stat_err_cnt = atomic64_read(&alg->stats.akcipher.err_cnt);
116 static int crypto_report_kpp(struct sk_buff *skb, struct crypto_alg *alg)
124 rkpp.stat_setsecret_cnt = atomic64_read(&alg->stats.kpp.setsecret_cnt);
125 rkpp.stat_generate_public_key_cnt = atomic64_read(&alg->stats.kpp.generate_public_key_cnt);
126 rkpp.stat_compute_shared_secret_cnt = atomic64_read(&alg->stats.kpp.compute_shared_secret_cnt);
127 rkpp.stat_err_cnt = atomic64_read(&alg->stats.kpp.err_cnt);
132 static int crypto_report_ahash(struct sk_buff *skb, struct crypto_alg *alg)
140 rhash.stat_hash_cnt = atomic64_read(&alg->stats.hash.hash_cnt);
141 rhash.stat_hash_tlen = atomic64_read(&alg->stats.hash.hash_tlen);
142 rhash.stat_err_cnt = atomic64_read(&alg->stats.hash.err_cnt);
147 static int crypto_report_shash(struct sk_buff *skb, struct crypto_alg *alg)
155 rhash.stat_hash_cnt = atomic64_read(&alg->stats.hash.hash_cnt);
156 rhash.stat_hash_tlen = atomic64_read(&alg->stats.hash.hash_tlen);
157 rhash.stat_err_cnt = atomic64_read(&alg->stats.hash.err_cnt);
162 static int crypto_report_rng(struct sk_buff *skb, struct crypto_alg *alg)
170 rrng.stat_generate_cnt = atomic64_read(&alg->stats.rng.generate_cnt);
171 rrng.stat_generate_tlen = atomic64_read(&alg->stats.rng.generate_tlen);
172 rrng.stat_seed_cnt = atomic64_read(&alg->stats.rng.seed_cnt);
173 rrng.stat_err_cnt = atomic64_read(&alg->stats.rng.err_cnt);
178 static int crypto_reportstat_one(struct crypto_alg *alg,
184 strscpy(ualg->cru_name, alg->cra_name, sizeof(ualg->cru_name));
185 strscpy(ualg->cru_driver_name, alg->cra_driver_name,
187 strscpy(ualg->cru_module_name, module_name(alg->cra_module),
192 ualg->cru_flags = alg->cra_flags;
193 ualg->cru_refcnt = refcount_read(&alg->cra_refcnt);
195 if (nla_put_u32(skb, CRYPTOCFGA_PRIORITY_VAL, alg->cra_priority))
197 if (alg->cra_flags & CRYPTO_ALG_LARVAL) {
207 switch (alg->cra_flags & (CRYPTO_ALG_TYPE_MASK | CRYPTO_ALG_LARVAL)) {
209 if (crypto_report_aead(skb, alg))
213 if (crypto_report_cipher(skb, alg))
217 if (crypto_report_cipher(skb, alg))
221 if (crypto_report_comp(skb, alg))
225 if (crypto_report_acomp(skb, alg))
229 if (crypto_report_acomp(skb, alg))
233 if (crypto_report_akcipher(skb, alg))
237 if (crypto_report_kpp(skb, alg))
241 if (crypto_report_ahash(skb, alg))
245 if (crypto_report_shash(skb, alg))
249 if (crypto_report_rng(skb, alg))
253 pr_err("ERROR: Unhandled alg %d in %s\n",
254 alg->cra_flags & (CRYPTO_ALG_TYPE_MASK | CRYPTO_ALG_LARVAL),
265 static int crypto_reportstat_alg(struct crypto_alg *alg,
283 err = crypto_reportstat_one(alg, ualg, skb);
300 struct crypto_alg *alg;
308 alg = crypto_alg_match(p, 0);
309 if (!alg)
322 err = crypto_reportstat_alg(alg, &info);
325 crypto_mod_put(alg);