diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2025-02-16 11:07:17 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2025-02-22 16:01:53 +0800 |
commit | f2ffe5a9183d22eec718edac03e8bfcedf4dee70 (patch) | |
tree | d95008613680404dacc0384499b58dc6a224c8fd /include/crypto/algapi.h | |
parent | f407764621220ffad3df6c589efc4b4ac010d3d5 (diff) | |
download | linux-f2ffe5a9183d22eec718edac03e8bfcedf4dee70.tar.gz linux-f2ffe5a9183d22eec718edac03e8bfcedf4dee70.tar.bz2 linux-f2ffe5a9183d22eec718edac03e8bfcedf4dee70.zip |
crypto: hash - Add request chaining API
This adds request chaining to the ahash interface. Request chaining
allows multiple requests to be submitted in one shot. An algorithm
can elect to receive chained requests by setting the flag
CRYPTO_ALG_REQ_CHAIN. If this bit is not set, the API will break
up chained requests and submit them one-by-one.
A new err field is added to struct crypto_async_request to record
the return value for each individual request.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'include/crypto/algapi.h')
-rw-r--r-- | include/crypto/algapi.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h index 156de41ca760..11065978d360 100644 --- a/include/crypto/algapi.h +++ b/include/crypto/algapi.h @@ -11,6 +11,7 @@ #include <linux/align.h> #include <linux/cache.h> #include <linux/crypto.h> +#include <linux/list.h> #include <linux/types.h> #include <linux/workqueue.h> @@ -271,4 +272,14 @@ static inline u32 crypto_tfm_alg_type(struct crypto_tfm *tfm) return tfm->__crt_alg->cra_flags & CRYPTO_ALG_TYPE_MASK; } +static inline bool crypto_request_chained(struct crypto_async_request *req) +{ + return !list_empty(&req->list); +} + +static inline bool crypto_tfm_req_chain(struct crypto_tfm *tfm) +{ + return tfm->__crt_alg->cra_flags & CRYPTO_ALG_REQ_CHAIN; +} + #endif /* _CRYPTO_ALGAPI_H */ |