Commit a3bef3a31a19bd943047ba8bf5b2cc7b5d164362
Committed by
Herbert Xu
1 parent
a1915d51e8
Exists in
master
and in
39 other branches
crypto: testmgr - Skip algs not flagged fips_allowed in fips mode
Because all fips-allowed algorithms must be self-tested before they can be used, they will all have entries in testmgr.c's alg_test_descs[]. Skip self-tests for any algs not flagged as fips_approved and return -EINVAL when in fips mode. Signed-off-by: Jarod Wilson <jarod@redhat.com> Acked-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Showing 1 changed file with 8 additions and 0 deletions Side-by-side Diff
crypto/testmgr.c
... | ... | @@ -2308,6 +2308,9 @@ |
2308 | 2308 | if (i < 0) |
2309 | 2309 | goto notest; |
2310 | 2310 | |
2311 | + if (fips_enabled && !alg_test_descs[i].fips_allowed) | |
2312 | + goto non_fips_alg; | |
2313 | + | |
2311 | 2314 | rc = alg_test_cipher(alg_test_descs + i, driver, type, mask); |
2312 | 2315 | goto test_done; |
2313 | 2316 | } |
... | ... | @@ -2316,6 +2319,9 @@ |
2316 | 2319 | if (i < 0) |
2317 | 2320 | goto notest; |
2318 | 2321 | |
2322 | + if (fips_enabled && !alg_test_descs[i].fips_allowed) | |
2323 | + goto non_fips_alg; | |
2324 | + | |
2319 | 2325 | rc = alg_test_descs[i].test(alg_test_descs + i, driver, |
2320 | 2326 | type, mask); |
2321 | 2327 | test_done: |
... | ... | @@ -2331,6 +2337,8 @@ |
2331 | 2337 | notest: |
2332 | 2338 | printk(KERN_INFO "alg: No test for %s (%s)\n", alg, driver); |
2333 | 2339 | return 0; |
2340 | +non_fips_alg: | |
2341 | + return -EINVAL; | |
2334 | 2342 | } |
2335 | 2343 | EXPORT_SYMBOL_GPL(alg_test); |