geniv.h 977 B

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * geniv: IV generation
  3. *
  4. * Copyright (c) 2015 Herbert Xu <herbert@gondor.apana.org.au>
  5. *
  6. * This program is free software; you can redistribute it and/or modify it
  7. * under the terms of the GNU General Public License as published by the Free
  8. * Software Foundation; either version 2 of the License, or (at your option)
  9. * any later version.
  10. *
  11. */
  12. #ifndef _CRYPTO_INTERNAL_GENIV_H
  13. #define _CRYPTO_INTERNAL_GENIV_H
  14. #include <crypto/internal/aead.h>
  15. #include <linux/spinlock.h>
  16. #include <linux/types.h>
  17. struct aead_geniv_ctx {
  18. spinlock_t lock;
  19. struct crypto_aead *child;
  20. struct crypto_skcipher *sknull;
  21. u8 salt[] __attribute__ ((aligned(__alignof__(u32))));
  22. };
  23. struct aead_instance *aead_geniv_alloc(struct crypto_template *tmpl,
  24. struct rtattr **tb, u32 type, u32 mask);
  25. void aead_geniv_free(struct aead_instance *inst);
  26. int aead_init_geniv(struct crypto_aead *tfm);
  27. void aead_exit_geniv(struct crypto_aead *tfm);
  28. #endif /* _CRYPTO_INTERNAL_GENIV_H */