]> git.sur5r.net Git - freertos/blob - FreeRTOS-Labs/Source/mbedtls/include/mbedtls/md2.h
Add the Labs projects provided in the V10.2.1_191129 zip file.
[freertos] / FreeRTOS-Labs / Source / mbedtls / include / mbedtls / md2.h
1 /**\r
2  * \file md2.h\r
3  *\r
4  * \brief MD2 message digest algorithm (hash function)\r
5  *\r
6  * \warning MD2 is considered a weak message digest and its use constitutes a\r
7  *          security risk. We recommend considering stronger message digests\r
8  *          instead.\r
9  */\r
10 /*\r
11  *  Copyright (C) 2006-2015, ARM Limited, All Rights Reserved\r
12  *  SPDX-License-Identifier: Apache-2.0\r
13  *\r
14  *  Licensed under the Apache License, Version 2.0 (the "License"); you may\r
15  *  not use this file except in compliance with the License.\r
16  *  You may obtain a copy of the License at\r
17  *\r
18  *  http://www.apache.org/licenses/LICENSE-2.0\r
19  *\r
20  *  Unless required by applicable law or agreed to in writing, software\r
21  *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
22  *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
23  *  See the License for the specific language governing permissions and\r
24  *  limitations under the License.\r
25  *\r
26  *  This file is part of mbed TLS (https://tls.mbed.org)\r
27  *\r
28  */\r
29 #ifndef MBEDTLS_MD2_H\r
30 #define MBEDTLS_MD2_H\r
31 \r
32 #if !defined(MBEDTLS_CONFIG_FILE)\r
33 #include "config.h"\r
34 #else\r
35 #include MBEDTLS_CONFIG_FILE\r
36 #endif\r
37 \r
38 #include <stddef.h>\r
39 \r
40 /* MBEDTLS_ERR_MD2_HW_ACCEL_FAILED is deprecated and should not be used. */\r
41 #define MBEDTLS_ERR_MD2_HW_ACCEL_FAILED                   -0x002B  /**< MD2 hardware accelerator failed */\r
42 \r
43 #ifdef __cplusplus\r
44 extern "C" {\r
45 #endif\r
46 \r
47 #if !defined(MBEDTLS_MD2_ALT)\r
48 // Regular implementation\r
49 //\r
50 \r
51 /**\r
52  * \brief          MD2 context structure\r
53  *\r
54  * \warning        MD2 is considered a weak message digest and its use\r
55  *                 constitutes a security risk. We recommend considering\r
56  *                 stronger message digests instead.\r
57  *\r
58  */\r
59 typedef struct mbedtls_md2_context\r
60 {\r
61     unsigned char cksum[16];    /*!< checksum of the data block */\r
62     unsigned char state[48];    /*!< intermediate digest state  */\r
63     unsigned char buffer[16];   /*!< data block being processed */\r
64     size_t left;                /*!< amount of data in buffer   */\r
65 }\r
66 mbedtls_md2_context;\r
67 \r
68 #else  /* MBEDTLS_MD2_ALT */\r
69 #include "md2_alt.h"\r
70 #endif /* MBEDTLS_MD2_ALT */\r
71 \r
72 /**\r
73  * \brief          Initialize MD2 context\r
74  *\r
75  * \param ctx      MD2 context to be initialized\r
76  *\r
77  * \warning        MD2 is considered a weak message digest and its use\r
78  *                 constitutes a security risk. We recommend considering\r
79  *                 stronger message digests instead.\r
80  *\r
81  */\r
82 void mbedtls_md2_init( mbedtls_md2_context *ctx );\r
83 \r
84 /**\r
85  * \brief          Clear MD2 context\r
86  *\r
87  * \param ctx      MD2 context to be cleared\r
88  *\r
89  * \warning        MD2 is considered a weak message digest and its use\r
90  *                 constitutes a security risk. We recommend considering\r
91  *                 stronger message digests instead.\r
92  *\r
93  */\r
94 void mbedtls_md2_free( mbedtls_md2_context *ctx );\r
95 \r
96 /**\r
97  * \brief          Clone (the state of) an MD2 context\r
98  *\r
99  * \param dst      The destination context\r
100  * \param src      The context to be cloned\r
101  *\r
102  * \warning        MD2 is considered a weak message digest and its use\r
103  *                 constitutes a security risk. We recommend considering\r
104  *                 stronger message digests instead.\r
105  *\r
106  */\r
107 void mbedtls_md2_clone( mbedtls_md2_context *dst,\r
108                         const mbedtls_md2_context *src );\r
109 \r
110 /**\r
111  * \brief          MD2 context setup\r
112  *\r
113  * \param ctx      context to be initialized\r
114  *\r
115  * \return         0 if successful\r
116  *\r
117  * \warning        MD2 is considered a weak message digest and its use\r
118  *                 constitutes a security risk. We recommend considering\r
119  *                 stronger message digests instead.\r
120  *\r
121  */\r
122 int mbedtls_md2_starts_ret( mbedtls_md2_context *ctx );\r
123 \r
124 /**\r
125  * \brief          MD2 process buffer\r
126  *\r
127  * \param ctx      MD2 context\r
128  * \param input    buffer holding the data\r
129  * \param ilen     length of the input data\r
130  *\r
131  * \return         0 if successful\r
132  *\r
133  * \warning        MD2 is considered a weak message digest and its use\r
134  *                 constitutes a security risk. We recommend considering\r
135  *                 stronger message digests instead.\r
136  *\r
137  */\r
138 int mbedtls_md2_update_ret( mbedtls_md2_context *ctx,\r
139                             const unsigned char *input,\r
140                             size_t ilen );\r
141 \r
142 /**\r
143  * \brief          MD2 final digest\r
144  *\r
145  * \param ctx      MD2 context\r
146  * \param output   MD2 checksum result\r
147  *\r
148  * \return         0 if successful\r
149  *\r
150  * \warning        MD2 is considered a weak message digest and its use\r
151  *                 constitutes a security risk. We recommend considering\r
152  *                 stronger message digests instead.\r
153  *\r
154  */\r
155 int mbedtls_md2_finish_ret( mbedtls_md2_context *ctx,\r
156                             unsigned char output[16] );\r
157 \r
158 /**\r
159  * \brief          MD2 process data block (internal use only)\r
160  *\r
161  * \param ctx      MD2 context\r
162  *\r
163  * \return         0 if successful\r
164  *\r
165  * \warning        MD2 is considered a weak message digest and its use\r
166  *                 constitutes a security risk. We recommend considering\r
167  *                 stronger message digests instead.\r
168  *\r
169  */\r
170 int mbedtls_internal_md2_process( mbedtls_md2_context *ctx );\r
171 \r
172 #if !defined(MBEDTLS_DEPRECATED_REMOVED)\r
173 #if defined(MBEDTLS_DEPRECATED_WARNING)\r
174 #define MBEDTLS_DEPRECATED      __attribute__((deprecated))\r
175 #else\r
176 #define MBEDTLS_DEPRECATED\r
177 #endif\r
178 /**\r
179  * \brief          MD2 context setup\r
180  *\r
181  * \deprecated     Superseded by mbedtls_md2_starts_ret() in 2.7.0\r
182  *\r
183  * \param ctx      context to be initialized\r
184  *\r
185  * \warning        MD2 is considered a weak message digest and its use\r
186  *                 constitutes a security risk. We recommend considering\r
187  *                 stronger message digests instead.\r
188  *\r
189  */\r
190 MBEDTLS_DEPRECATED void mbedtls_md2_starts( mbedtls_md2_context *ctx );\r
191 \r
192 /**\r
193  * \brief          MD2 process buffer\r
194  *\r
195  * \deprecated     Superseded by mbedtls_md2_update_ret() in 2.7.0\r
196  *\r
197  * \param ctx      MD2 context\r
198  * \param input    buffer holding the data\r
199  * \param ilen     length of the input data\r
200  *\r
201  * \warning        MD2 is considered a weak message digest and its use\r
202  *                 constitutes a security risk. We recommend considering\r
203  *                 stronger message digests instead.\r
204  *\r
205  */\r
206 MBEDTLS_DEPRECATED void mbedtls_md2_update( mbedtls_md2_context *ctx,\r
207                                             const unsigned char *input,\r
208                                             size_t ilen );\r
209 \r
210 /**\r
211  * \brief          MD2 final digest\r
212  *\r
213  * \deprecated     Superseded by mbedtls_md2_finish_ret() in 2.7.0\r
214  *\r
215  * \param ctx      MD2 context\r
216  * \param output   MD2 checksum result\r
217  *\r
218  * \warning        MD2 is considered a weak message digest and its use\r
219  *                 constitutes a security risk. We recommend considering\r
220  *                 stronger message digests instead.\r
221  *\r
222  */\r
223 MBEDTLS_DEPRECATED void mbedtls_md2_finish( mbedtls_md2_context *ctx,\r
224                                             unsigned char output[16] );\r
225 \r
226 /**\r
227  * \brief          MD2 process data block (internal use only)\r
228  *\r
229  * \deprecated     Superseded by mbedtls_internal_md2_process() in 2.7.0\r
230  *\r
231  * \param ctx      MD2 context\r
232  *\r
233  * \warning        MD2 is considered a weak message digest and its use\r
234  *                 constitutes a security risk. We recommend considering\r
235  *                 stronger message digests instead.\r
236  *\r
237  */\r
238 MBEDTLS_DEPRECATED void mbedtls_md2_process( mbedtls_md2_context *ctx );\r
239 \r
240 #undef MBEDTLS_DEPRECATED\r
241 #endif /* !MBEDTLS_DEPRECATED_REMOVED */\r
242 \r
243 /**\r
244  * \brief          Output = MD2( input buffer )\r
245  *\r
246  * \param input    buffer holding the data\r
247  * \param ilen     length of the input data\r
248  * \param output   MD2 checksum result\r
249  *\r
250  * \warning        MD2 is considered a weak message digest and its use\r
251  *                 constitutes a security risk. We recommend considering\r
252  *                 stronger message digests instead.\r
253  *\r
254  */\r
255 int mbedtls_md2_ret( const unsigned char *input,\r
256                      size_t ilen,\r
257                      unsigned char output[16] );\r
258 \r
259 #if !defined(MBEDTLS_DEPRECATED_REMOVED)\r
260 #if defined(MBEDTLS_DEPRECATED_WARNING)\r
261 #define MBEDTLS_DEPRECATED      __attribute__((deprecated))\r
262 #else\r
263 #define MBEDTLS_DEPRECATED\r
264 #endif\r
265 /**\r
266  * \brief          Output = MD2( input buffer )\r
267  *\r
268  * \deprecated     Superseded by mbedtls_md2_ret() in 2.7.0\r
269  *\r
270  * \param input    buffer holding the data\r
271  * \param ilen     length of the input data\r
272  * \param output   MD2 checksum result\r
273  *\r
274  * \warning        MD2 is considered a weak message digest and its use\r
275  *                 constitutes a security risk. We recommend considering\r
276  *                 stronger message digests instead.\r
277  *\r
278  */\r
279 MBEDTLS_DEPRECATED void mbedtls_md2( const unsigned char *input,\r
280                                      size_t ilen,\r
281                                      unsigned char output[16] );\r
282 \r
283 #undef MBEDTLS_DEPRECATED\r
284 #endif /* !MBEDTLS_DEPRECATED_REMOVED */\r
285 \r
286 #if defined(MBEDTLS_SELF_TEST)\r
287 \r
288 /**\r
289  * \brief          Checkup routine\r
290  *\r
291  * \return         0 if successful, or 1 if the test failed\r
292  *\r
293  * \warning        MD2 is considered a weak message digest and its use\r
294  *                 constitutes a security risk. We recommend considering\r
295  *                 stronger message digests instead.\r
296  *\r
297  */\r
298 int mbedtls_md2_self_test( int verbose );\r
299 \r
300 #endif /* MBEDTLS_SELF_TEST */\r
301 \r
302 #ifdef __cplusplus\r
303 }\r
304 #endif\r
305 \r
306 #endif /* mbedtls_md2.h */\r