Commit 67cd080c authored by Herbert Xu's avatar Herbert Xu
Browse files

crypto: api - Call type show function before legacy for proc



This patch makes /proc/crypto call the type-specific show function
if one is present before calling the legacy show functions for
cipher/digest/compress.  This allows us to reuse the type values
for those legacy types.  In particular, hash and digest will share
one type value while shash is phased in as the default hash type.

Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent dec8b786
Loading
Loading
Loading
Loading
+13 −7
Original line number Diff line number Diff line
@@ -95,6 +95,17 @@ static int c_show(struct seq_file *m, void *p)
		   (alg->cra_flags & CRYPTO_ALG_TESTED) ?
		   "passed" : "unknown");

	if (alg->cra_flags & CRYPTO_ALG_LARVAL) {
		seq_printf(m, "type         : larval\n");
		seq_printf(m, "flags        : 0x%x\n", alg->cra_flags);
		goto out;
	}

	if (alg->cra_type && alg->cra_type->show) {
		alg->cra_type->show(m, alg);
		goto out;
	}
	
	switch (alg->cra_flags & (CRYPTO_ALG_TYPE_MASK | CRYPTO_ALG_LARVAL)) {
	case CRYPTO_ALG_TYPE_CIPHER:
		seq_printf(m, "type         : cipher\n");
@@ -115,16 +126,11 @@ static int c_show(struct seq_file *m, void *p)
		seq_printf(m, "type         : compression\n");
		break;
	default:
		if (alg->cra_flags & CRYPTO_ALG_LARVAL) {
			seq_printf(m, "type         : larval\n");
			seq_printf(m, "flags        : 0x%x\n", alg->cra_flags);
		} else if (alg->cra_type && alg->cra_type->show)
			alg->cra_type->show(m, alg);
		else
		seq_printf(m, "type         : unknown\n");
		break;
	}

out:
	seq_putc(m, '\n');
	return 0;
}