diff options
author | Loc Ho <lho@amcc.com> | 2008-05-14 08:41:47 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2008-07-10 08:35:13 -0400 |
commit | 004a403c2e954734090a69aedc7f4f822bdcc142 (patch) | |
tree | e8fadd76113132126e308e01e7cd7cdf6b9d44d6 /include/crypto | |
parent | 534fe2c1c3ffbbc3db66dba0783c82d3b345fd33 (diff) |
[CRYPTO] hash: Add asynchronous hash support
This patch adds asynchronous hash and digest support.
Signed-off-by: Loc Ho <lho@amcc.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'include/crypto')
-rw-r--r-- | include/crypto/algapi.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h index 60d06e784be3..fef272a8ceeb 100644 --- a/include/crypto/algapi.h +++ b/include/crypto/algapi.h | |||
@@ -98,6 +98,7 @@ extern const struct crypto_type crypto_ablkcipher_type; | |||
98 | extern const struct crypto_type crypto_aead_type; | 98 | extern const struct crypto_type crypto_aead_type; |
99 | extern const struct crypto_type crypto_blkcipher_type; | 99 | extern const struct crypto_type crypto_blkcipher_type; |
100 | extern const struct crypto_type crypto_hash_type; | 100 | extern const struct crypto_type crypto_hash_type; |
101 | extern const struct crypto_type crypto_ahash_type; | ||
101 | 102 | ||
102 | void crypto_mod_put(struct crypto_alg *alg); | 103 | void crypto_mod_put(struct crypto_alg *alg); |
103 | 104 | ||
@@ -314,5 +315,40 @@ static inline int crypto_requires_sync(u32 type, u32 mask) | |||
314 | return (type ^ CRYPTO_ALG_ASYNC) & mask & CRYPTO_ALG_ASYNC; | 315 | return (type ^ CRYPTO_ALG_ASYNC) & mask & CRYPTO_ALG_ASYNC; |
315 | } | 316 | } |
316 | 317 | ||
318 | static inline void *crypto_ahash_ctx(struct crypto_ahash *tfm) | ||
319 | { | ||
320 | return crypto_tfm_ctx(&tfm->base); | ||
321 | } | ||
322 | |||
323 | static inline struct ahash_alg *crypto_ahash_alg( | ||
324 | struct crypto_ahash *tfm) | ||
325 | { | ||
326 | return &crypto_ahash_tfm(tfm)->__crt_alg->cra_ahash; | ||
327 | } | ||
328 | |||
329 | static inline int ahash_enqueue_request(struct crypto_queue *queue, | ||
330 | struct ahash_request *request) | ||
331 | { | ||
332 | return crypto_enqueue_request(queue, &request->base); | ||
333 | } | ||
334 | |||
335 | static inline struct ahash_request *ahash_dequeue_request( | ||
336 | struct crypto_queue *queue) | ||
337 | { | ||
338 | return ahash_request_cast(crypto_dequeue_request(queue)); | ||
339 | } | ||
340 | |||
341 | static inline void *ahash_request_ctx(struct ahash_request *req) | ||
342 | { | ||
343 | return req->__ctx; | ||
344 | } | ||
345 | |||
346 | static inline int ahash_tfm_in_queue(struct crypto_queue *queue, | ||
347 | struct crypto_ahash *tfm) | ||
348 | { | ||
349 | return crypto_tfm_in_queue(queue, crypto_ahash_tfm(tfm)); | ||
350 | } | ||
351 | |||
352 | |||
317 | #endif /* _CRYPTO_ALGAPI_H */ | 353 | #endif /* _CRYPTO_ALGAPI_H */ |
318 | 354 | ||