]> Git Repo - u-boot.git/blob - include/u-boot/sha1.h
Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"
[u-boot.git] / include / u-boot / sha1.h
1 /* SPDX-License-Identifier: LGPL-2.1 */
2 /**
3  * \file sha1.h
4  * based from http://xyssl.org/code/source/sha1/
5  *  FIPS-180-1 compliant SHA-1 implementation
6  *
7  *  Copyright (C) 2003-2006  Christophe Devine
8  */
9 /*
10  *  The SHA-1 standard was published by NIST in 1993.
11  *
12  *  http://www.itl.nist.gov/fipspubs/fip180-1.htm
13  */
14 #ifndef _SHA1_H
15 #define _SHA1_H
16
17 #include <linux/types.h>
18
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22
23 #define SHA1_SUM_POS    -0x20
24 #define SHA1_SUM_LEN    20
25 #define SHA1_DER_LEN    15
26
27 extern const uint8_t sha1_der_prefix[];
28
29 /**
30  * \brief          SHA-1 context structure
31  */
32 typedef struct
33 {
34     unsigned long total[2];     /*!< number of bytes processed  */
35     uint32_t state[5];          /*!< intermediate digest state  */
36     unsigned char buffer[64];   /*!< data block being processed */
37 }
38 sha1_context;
39
40 /**
41  * \brief          SHA-1 context setup
42  *
43  * \param ctx      SHA-1 context to be initialized
44  */
45 void sha1_starts( sha1_context *ctx );
46
47 /**
48  * \brief          SHA-1 process buffer
49  *
50  * \param ctx      SHA-1 context
51  * \param input    buffer holding the  data
52  * \param ilen     length of the input data
53  */
54 void sha1_update(sha1_context *ctx, const unsigned char *input,
55                  unsigned int ilen);
56
57 /**
58  * \brief          SHA-1 final digest
59  *
60  * \param ctx      SHA-1 context
61  * \param output   SHA-1 checksum result
62  */
63 void sha1_finish( sha1_context *ctx, unsigned char output[20] );
64
65 /**
66  * \brief          Output = SHA-1( input buffer )
67  *
68  * \param input    buffer holding the  data
69  * \param ilen     length of the input data
70  * \param output   SHA-1 checksum result
71  */
72 void sha1_csum(const unsigned char *input, unsigned int ilen,
73                 unsigned char *output);
74
75 /**
76  * \brief          Output = SHA-1( input buffer ), with watchdog triggering
77  *
78  * \param input    buffer holding the  data
79  * \param ilen     length of the input data
80  * \param output   SHA-1 checksum result
81  * \param chunk_sz watchdog triggering period (in bytes of input processed)
82  */
83 void sha1_csum_wd(const unsigned char *input, unsigned int ilen,
84                 unsigned char *output, unsigned int chunk_sz);
85
86 /**
87  * \brief          Output = HMAC-SHA-1( input buffer, hmac key )
88  *
89  * \param key      HMAC secret key
90  * \param keylen   length of the HMAC key
91  * \param input    buffer holding the  data
92  * \param ilen     length of the input data
93  * \param output   HMAC-SHA-1 result
94  */
95 void sha1_hmac(const unsigned char *key, int keylen,
96                 const unsigned char *input, unsigned int ilen,
97                 unsigned char *output);
98
99 /**
100  * \brief          Checkup routine
101  *
102  * \return         0 if successful, or 1 if the test failed
103  */
104 int sha1_self_test( void );
105
106 #ifdef __cplusplus
107 }
108 #endif
109
110 #endif /* sha1.h */
This page took 0.032601 seconds and 4 git commands to generate.