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