|
@@ -257,6 +257,16 @@ struct crypto_alg *crypto_alg_mod_lookup(const char *name, u32 type, u32 mask)
|
|
|
mask |= CRYPTO_ALG_TESTED;
|
|
|
}
|
|
|
|
|
|
+ /*
|
|
|
+ * If the internal flag is set for a cipher, require a caller to
|
|
|
+ * to invoke the cipher with the internal flag to use that cipher.
|
|
|
+ * Also, if a caller wants to allocate a cipher that may or may
|
|
|
+ * not be an internal cipher, use type | CRYPTO_ALG_INTERNAL and
|
|
|
+ * !(mask & CRYPTO_ALG_INTERNAL).
|
|
|
+ */
|
|
|
+ if (!((type | mask) & CRYPTO_ALG_INTERNAL))
|
|
|
+ mask |= CRYPTO_ALG_INTERNAL;
|
|
|
+
|
|
|
larval = crypto_larval_lookup(name, type, mask);
|
|
|
if (IS_ERR(larval) || !crypto_is_larval(larval))
|
|
|
return larval;
|