]> git.sur5r.net Git - freertos/blob - FreeRTOS-Labs/Source/mbedtls/include/mbedtls/ripemd160.h
Add the Labs projects provided in the V10.2.1_191129 zip file.
[freertos] / FreeRTOS-Labs / Source / mbedtls / include / mbedtls / ripemd160.h
1 /**\r
2  * \file ripemd160.h\r
3  *\r
4  * \brief RIPE MD-160 message digest\r
5  */\r
6 /*\r
7  *  Copyright (C) 2006-2015, ARM Limited, All Rights Reserved\r
8  *  SPDX-License-Identifier: Apache-2.0\r
9  *\r
10  *  Licensed under the Apache License, Version 2.0 (the "License"); you may\r
11  *  not use this file except in compliance with the License.\r
12  *  You may obtain a copy of the License at\r
13  *\r
14  *  http://www.apache.org/licenses/LICENSE-2.0\r
15  *\r
16  *  Unless required by applicable law or agreed to in writing, software\r
17  *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
18  *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
19  *  See the License for the specific language governing permissions and\r
20  *  limitations under the License.\r
21  *\r
22  *  This file is part of mbed TLS (https://tls.mbed.org)\r
23  */\r
24 #ifndef MBEDTLS_RIPEMD160_H\r
25 #define MBEDTLS_RIPEMD160_H\r
26 \r
27 #if !defined(MBEDTLS_CONFIG_FILE)\r
28 #include "config.h"\r
29 #else\r
30 #include MBEDTLS_CONFIG_FILE\r
31 #endif\r
32 \r
33 #include <stddef.h>\r
34 #include <stdint.h>\r
35 \r
36 /* MBEDTLS_ERR_RIPEMD160_HW_ACCEL_FAILED is deprecated and should not be used.\r
37  */\r
38 #define MBEDTLS_ERR_RIPEMD160_HW_ACCEL_FAILED             -0x0031  /**< RIPEMD160 hardware accelerator failed */\r
39 \r
40 #ifdef __cplusplus\r
41 extern "C" {\r
42 #endif\r
43 \r
44 #if !defined(MBEDTLS_RIPEMD160_ALT)\r
45 // Regular implementation\r
46 //\r
47 \r
48 /**\r
49  * \brief          RIPEMD-160 context structure\r
50  */\r
51 typedef struct mbedtls_ripemd160_context\r
52 {\r
53     uint32_t total[2];          /*!< number of bytes processed  */\r
54     uint32_t state[5];          /*!< intermediate digest state  */\r
55     unsigned char buffer[64];   /*!< data block being processed */\r
56 }\r
57 mbedtls_ripemd160_context;\r
58 \r
59 #else  /* MBEDTLS_RIPEMD160_ALT */\r
60 #include "ripemd160.h"\r
61 #endif /* MBEDTLS_RIPEMD160_ALT */\r
62 \r
63 /**\r
64  * \brief          Initialize RIPEMD-160 context\r
65  *\r
66  * \param ctx      RIPEMD-160 context to be initialized\r
67  */\r
68 void mbedtls_ripemd160_init( mbedtls_ripemd160_context *ctx );\r
69 \r
70 /**\r
71  * \brief          Clear RIPEMD-160 context\r
72  *\r
73  * \param ctx      RIPEMD-160 context to be cleared\r
74  */\r
75 void mbedtls_ripemd160_free( mbedtls_ripemd160_context *ctx );\r
76 \r
77 /**\r
78  * \brief          Clone (the state of) an RIPEMD-160 context\r
79  *\r
80  * \param dst      The destination context\r
81  * \param src      The context to be cloned\r
82  */\r
83 void mbedtls_ripemd160_clone( mbedtls_ripemd160_context *dst,\r
84                         const mbedtls_ripemd160_context *src );\r
85 \r
86 /**\r
87  * \brief          RIPEMD-160 context setup\r
88  *\r
89  * \param ctx      context to be initialized\r
90  *\r
91  * \return         0 if successful\r
92  */\r
93 int mbedtls_ripemd160_starts_ret( mbedtls_ripemd160_context *ctx );\r
94 \r
95 /**\r
96  * \brief          RIPEMD-160 process buffer\r
97  *\r
98  * \param ctx      RIPEMD-160 context\r
99  * \param input    buffer holding the data\r
100  * \param ilen     length of the input data\r
101  *\r
102  * \return         0 if successful\r
103  */\r
104 int mbedtls_ripemd160_update_ret( mbedtls_ripemd160_context *ctx,\r
105                                   const unsigned char *input,\r
106                                   size_t ilen );\r
107 \r
108 /**\r
109  * \brief          RIPEMD-160 final digest\r
110  *\r
111  * \param ctx      RIPEMD-160 context\r
112  * \param output   RIPEMD-160 checksum result\r
113  *\r
114  * \return         0 if successful\r
115  */\r
116 int mbedtls_ripemd160_finish_ret( mbedtls_ripemd160_context *ctx,\r
117                                   unsigned char output[20] );\r
118 \r
119 /**\r
120  * \brief          RIPEMD-160 process data block (internal use only)\r
121  *\r
122  * \param ctx      RIPEMD-160 context\r
123  * \param data     buffer holding one block of data\r
124  *\r
125  * \return         0 if successful\r
126  */\r
127 int mbedtls_internal_ripemd160_process( mbedtls_ripemd160_context *ctx,\r
128                                         const unsigned char data[64] );\r
129 \r
130 #if !defined(MBEDTLS_DEPRECATED_REMOVED)\r
131 #if defined(MBEDTLS_DEPRECATED_WARNING)\r
132 #define MBEDTLS_DEPRECATED      __attribute__((deprecated))\r
133 #else\r
134 #define MBEDTLS_DEPRECATED\r
135 #endif\r
136 /**\r
137  * \brief          RIPEMD-160 context setup\r
138  *\r
139  * \deprecated     Superseded by mbedtls_ripemd160_starts_ret() in 2.7.0\r
140  *\r
141  * \param ctx      context to be initialized\r
142  */\r
143 MBEDTLS_DEPRECATED void mbedtls_ripemd160_starts(\r
144                                             mbedtls_ripemd160_context *ctx );\r
145 \r
146 /**\r
147  * \brief          RIPEMD-160 process buffer\r
148  *\r
149  * \deprecated     Superseded by mbedtls_ripemd160_update_ret() in 2.7.0\r
150  *\r
151  * \param ctx      RIPEMD-160 context\r
152  * \param input    buffer holding the data\r
153  * \param ilen     length of the input data\r
154  */\r
155 MBEDTLS_DEPRECATED void mbedtls_ripemd160_update(\r
156                                                 mbedtls_ripemd160_context *ctx,\r
157                                                 const unsigned char *input,\r
158                                                 size_t ilen );\r
159 \r
160 /**\r
161  * \brief          RIPEMD-160 final digest\r
162  *\r
163  * \deprecated     Superseded by mbedtls_ripemd160_finish_ret() in 2.7.0\r
164  *\r
165  * \param ctx      RIPEMD-160 context\r
166  * \param output   RIPEMD-160 checksum result\r
167  */\r
168 MBEDTLS_DEPRECATED void mbedtls_ripemd160_finish(\r
169                                                 mbedtls_ripemd160_context *ctx,\r
170                                                 unsigned char output[20] );\r
171 \r
172 /**\r
173  * \brief          RIPEMD-160 process data block (internal use only)\r
174  *\r
175  * \deprecated     Superseded by mbedtls_internal_ripemd160_process() in 2.7.0\r
176  *\r
177  * \param ctx      RIPEMD-160 context\r
178  * \param data     buffer holding one block of data\r
179  */\r
180 MBEDTLS_DEPRECATED void mbedtls_ripemd160_process(\r
181                                             mbedtls_ripemd160_context *ctx,\r
182                                             const unsigned char data[64] );\r
183 \r
184 #undef MBEDTLS_DEPRECATED\r
185 #endif /* !MBEDTLS_DEPRECATED_REMOVED */\r
186 \r
187 /**\r
188  * \brief          Output = RIPEMD-160( input buffer )\r
189  *\r
190  * \param input    buffer holding the data\r
191  * \param ilen     length of the input data\r
192  * \param output   RIPEMD-160 checksum result\r
193  *\r
194  * \return         0 if successful\r
195  */\r
196 int mbedtls_ripemd160_ret( const unsigned char *input,\r
197                            size_t ilen,\r
198                            unsigned char output[20] );\r
199 \r
200 #if !defined(MBEDTLS_DEPRECATED_REMOVED)\r
201 #if defined(MBEDTLS_DEPRECATED_WARNING)\r
202 #define MBEDTLS_DEPRECATED      __attribute__((deprecated))\r
203 #else\r
204 #define MBEDTLS_DEPRECATED\r
205 #endif\r
206 /**\r
207  * \brief          Output = RIPEMD-160( input buffer )\r
208  *\r
209  * \deprecated     Superseded by mbedtls_ripemd160_ret() in 2.7.0\r
210  *\r
211  * \param input    buffer holding the data\r
212  * \param ilen     length of the input data\r
213  * \param output   RIPEMD-160 checksum result\r
214  */\r
215 MBEDTLS_DEPRECATED void mbedtls_ripemd160( const unsigned char *input,\r
216                                            size_t ilen,\r
217                                            unsigned char output[20] );\r
218 \r
219 #undef MBEDTLS_DEPRECATED\r
220 #endif /* !MBEDTLS_DEPRECATED_REMOVED */\r
221 \r
222 #if defined(MBEDTLS_SELF_TEST)\r
223 \r
224 /**\r
225  * \brief          Checkup routine\r
226  *\r
227  * \return         0 if successful, or 1 if the test failed\r
228  */\r
229 int mbedtls_ripemd160_self_test( int verbose );\r
230 \r
231 #endif /* MBEDTLS_SELF_TEST */\r
232 \r
233 #ifdef __cplusplus\r
234 }\r
235 #endif\r
236 \r
237 #endif /* mbedtls_ripemd160.h */\r