linux/include/crypto/sha3.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Common values for SHA-3 algorithms
   4 */
   5#ifndef __CRYPTO_SHA3_H__
   6#define __CRYPTO_SHA3_H__
   7
   8#define SHA3_224_DIGEST_SIZE    (224 / 8)
   9#define SHA3_224_BLOCK_SIZE     (200 - 2 * SHA3_224_DIGEST_SIZE)
  10
  11#define SHA3_256_DIGEST_SIZE    (256 / 8)
  12#define SHA3_256_BLOCK_SIZE     (200 - 2 * SHA3_256_DIGEST_SIZE)
  13
  14#define SHA3_384_DIGEST_SIZE    (384 / 8)
  15#define SHA3_384_BLOCK_SIZE     (200 - 2 * SHA3_384_DIGEST_SIZE)
  16
  17#define SHA3_512_DIGEST_SIZE    (512 / 8)
  18#define SHA3_512_BLOCK_SIZE     (200 - 2 * SHA3_512_DIGEST_SIZE)
  19
  20struct sha3_state {
  21        u64             st[25];
  22        unsigned int    rsiz;
  23        unsigned int    rsizw;
  24
  25        unsigned int    partial;
  26        u8              buf[SHA3_224_BLOCK_SIZE];
  27};
  28
  29int crypto_sha3_init(struct shash_desc *desc);
  30int crypto_sha3_update(struct shash_desc *desc, const u8 *data,
  31                       unsigned int len);
  32int crypto_sha3_final(struct shash_desc *desc, u8 *out);
  33
  34#endif
  35