linux/include/crypto/sha1.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Common values for SHA-1 algorithms
   4 */
   5
   6#ifndef _CRYPTO_SHA1_H
   7#define _CRYPTO_SHA1_H
   8
   9#include <linux/types.h>
  10
  11#define SHA1_DIGEST_SIZE        20
  12#define SHA1_BLOCK_SIZE         64
  13
  14#define SHA1_H0         0x67452301UL
  15#define SHA1_H1         0xefcdab89UL
  16#define SHA1_H2         0x98badcfeUL
  17#define SHA1_H3         0x10325476UL
  18#define SHA1_H4         0xc3d2e1f0UL
  19
  20extern const u8 sha1_zero_message_hash[SHA1_DIGEST_SIZE];
  21
  22struct sha1_state {
  23        u32 state[SHA1_DIGEST_SIZE / 4];
  24        u64 count;
  25        u8 buffer[SHA1_BLOCK_SIZE];
  26};
  27
  28struct shash_desc;
  29
  30extern int crypto_sha1_update(struct shash_desc *desc, const u8 *data,
  31                              unsigned int len);
  32
  33extern int crypto_sha1_finup(struct shash_desc *desc, const u8 *data,
  34                             unsigned int len, u8 *hash);
  35
  36/*
  37 * An implementation of SHA-1's compression function.  Don't use in new code!
  38 * You shouldn't be using SHA-1, and even if you *have* to use SHA-1, this isn't
  39 * the correct way to hash something with SHA-1 (use crypto_shash instead).
  40 */
  41#define SHA1_DIGEST_WORDS       (SHA1_DIGEST_SIZE / 4)
  42#define SHA1_WORKSPACE_WORDS    16
  43void sha1_init(__u32 *buf);
  44void sha1_transform(__u32 *digest, const char *data, __u32 *W);
  45
  46#endif /* _CRYPTO_SHA1_H */
  47