linux/include/crypto/cryptd.h
<<
>>
Prefs
   1/*
   2 * Software async crypto daemon
   3 *
   4 * Added AEAD support to cryptd.
   5 *    Authors: Tadeusz Struk (tadeusz.struk@intel.com)
   6 *             Adrian Hoban <adrian.hoban@intel.com>
   7 *             Gabriele Paoloni <gabriele.paoloni@intel.com>
   8 *             Aidan O'Mahony (aidan.o.mahony@intel.com)
   9 *    Copyright (c) 2010, Intel Corporation.
  10 */
  11
  12#ifndef _CRYPTO_CRYPT_H
  13#define _CRYPTO_CRYPT_H
  14
  15#include <linux/crypto.h>
  16#include <linux/kernel.h>
  17#include <crypto/aead.h>
  18#include <crypto/hash.h>
  19
  20struct cryptd_ablkcipher {
  21        struct crypto_ablkcipher base;
  22};
  23
  24static inline struct cryptd_ablkcipher *__cryptd_ablkcipher_cast(
  25        struct crypto_ablkcipher *tfm)
  26{
  27        return (struct cryptd_ablkcipher *)tfm;
  28}
  29
  30/* alg_name should be algorithm to be cryptd-ed */
  31struct cryptd_ablkcipher *cryptd_alloc_ablkcipher(const char *alg_name,
  32                                                  u32 type, u32 mask);
  33struct crypto_blkcipher *cryptd_ablkcipher_child(struct cryptd_ablkcipher *tfm);
  34void cryptd_free_ablkcipher(struct cryptd_ablkcipher *tfm);
  35
  36struct cryptd_ahash {
  37        struct crypto_ahash base;
  38};
  39
  40static inline struct cryptd_ahash *__cryptd_ahash_cast(
  41        struct crypto_ahash *tfm)
  42{
  43        return (struct cryptd_ahash *)tfm;
  44}
  45
  46/* alg_name should be algorithm to be cryptd-ed */
  47struct cryptd_ahash *cryptd_alloc_ahash(const char *alg_name,
  48                                        u32 type, u32 mask);
  49struct crypto_shash *cryptd_ahash_child(struct cryptd_ahash *tfm);
  50struct shash_desc *cryptd_shash_desc(struct ahash_request *req);
  51void cryptd_free_ahash(struct cryptd_ahash *tfm);
  52
  53struct cryptd_aead {
  54        struct crypto_aead base;
  55};
  56
  57static inline struct cryptd_aead *__cryptd_aead_cast(
  58        struct crypto_aead *tfm)
  59{
  60        return (struct cryptd_aead *)tfm;
  61}
  62
  63struct cryptd_aead *cryptd_alloc_aead(const char *alg_name,
  64                                          u32 type, u32 mask);
  65
  66struct crypto_aead *cryptd_aead_child(struct cryptd_aead *tfm);
  67
  68void cryptd_free_aead(struct cryptd_aead *tfm);
  69
  70#endif
  71