Blame view

include/hw_sha.h 2.36 KB
83d290c56   Tom Rini   SPDX: Convert all...
1
  /* SPDX-License-Identifier: GPL-2.0+ */
1f9c92808   Akshay Saraswat   gen: Add sha h/w ...
2
3
4
5
  /*
   * Header file for SHA hardware acceleration
   *
   * Copyright (c) 2012  Samsung Electronics
1f9c92808   Akshay Saraswat   gen: Add sha h/w ...
6
7
8
   */
  #ifndef __HW_SHA_H
  #define __HW_SHA_H
94e3c8c4f   gaurav rana   crypto/fsl - Add ...
9
  #include <hash.h>
1f9c92808   Akshay Saraswat   gen: Add sha h/w ...
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
  
  /**
   * Computes hash value of input pbuf using h/w acceleration
   *
   * @param in_addr	A pointer to the input buffer
   * @param bufleni	Byte length of input buffer
   * @param out_addr	A pointer to the output buffer. When complete
   *			32 bytes are copied to pout[0]...pout[31]. Thus, a user
   *			should allocate at least 32 bytes at pOut in advance.
   * @param chunk_size	chunk size for sha256
   */
  void hw_sha256(const uchar * in_addr, uint buflen,
  			uchar * out_addr, uint chunk_size);
  
  /**
   * Computes hash value of input pbuf using h/w acceleration
   *
   * @param in_addr	A pointer to the input buffer
   * @param bufleni	Byte length of input buffer
   * @param out_addr	A pointer to the output buffer. When complete
   *			32 bytes are copied to pout[0]...pout[31]. Thus, a user
   *			should allocate at least 32 bytes at pOut in advance.
   * @param chunk_size	chunk_size for sha1
   */
  void hw_sha1(const uchar * in_addr, uint buflen,
  			uchar * out_addr, uint chunk_size);
94e3c8c4f   gaurav rana   crypto/fsl - Add ...
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
  
  /*
   * Create the context for sha progressive hashing using h/w acceleration
   *
   * @algo: Pointer to the hash_algo struct
   * @ctxp: Pointer to the pointer of the context for hashing
   * @return 0 if ok, -ve on error
   */
  int hw_sha_init(struct hash_algo *algo, void **ctxp);
  
  /*
   * Update buffer for sha progressive hashing using h/w acceleration
   *
   * The context is freed by this function if an error occurs.
   *
   * @algo: Pointer to the hash_algo struct
   * @ctx: Pointer to the context for hashing
   * @buf: Pointer to the buffer being hashed
   * @size: Size of the buffer being hashed
   * @is_last: 1 if this is the last update; 0 otherwise
   * @return 0 if ok, -ve on error
   */
  int hw_sha_update(struct hash_algo *algo, void *ctx, const void *buf,
  		     unsigned int size, int is_last);
  
  /*
   * Copy sha hash result at destination location
   *
   * The context is freed after completion of hash operation or after an error.
   *
   * @algo: Pointer to the hash_algo struct
   * @ctx: Pointer to the context for hashing
   * @dest_buf: Pointer to the destination buffer where hash is to be copied
   * @size: Size of the buffer being hashed
   * @return 0 if ok, -ve on error
   */
  int hw_sha_finish(struct hash_algo *algo, void *ctx, void *dest_buf,
  		     int size);
1f9c92808   Akshay Saraswat   gen: Add sha h/w ...
74
  #endif