sha.h 961 B

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * Cryptographic API.
  3. *
  4. * s390 generic implementation of the SHA Secure Hash Algorithms.
  5. *
  6. * Copyright IBM Corp. 2007
  7. * Author(s): Jan Glauber (jang@de.ibm.com)
  8. *
  9. * This program is free software; you can redistribute it and/or modify it
  10. * under the terms of the GNU General Public License as published by the Free
  11. * Software Foundation; either version 2 of the License, or (at your option)
  12. * any later version.
  13. *
  14. */
  15. #ifndef _CRYPTO_ARCH_S390_SHA_H
  16. #define _CRYPTO_ARCH_S390_SHA_H
  17. #include <linux/crypto.h>
  18. #include <crypto/sha.h>
  19. /* must be big enough for the largest SHA variant */
  20. #define SHA_MAX_BLOCK_SIZE SHA256_BLOCK_SIZE
  21. struct s390_sha_ctx {
  22. u64 count; /* message length in bytes */
  23. u32 state[8];
  24. u8 buf[2 * SHA_MAX_BLOCK_SIZE];
  25. int func; /* KIMD function to use */
  26. };
  27. void s390_sha_update(struct crypto_tfm *tfm, const u8 *data, unsigned int len);
  28. void s390_sha_final(struct crypto_tfm *tfm, u8 *out);
  29. #endif