Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/mbedtls/include/mbedtls/md5.h
9903 views
1
/**
2
* \file md5.h
3
*
4
* \brief MD5 message digest algorithm (hash function)
5
*
6
* \warning MD5 is considered a weak message digest and its use constitutes a
7
* security risk. We recommend considering stronger message
8
* digests instead.
9
*/
10
/*
11
* Copyright The Mbed TLS Contributors
12
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
13
*/
14
#ifndef MBEDTLS_MD5_H
15
#define MBEDTLS_MD5_H
16
#include "mbedtls/private_access.h"
17
18
#include "mbedtls/build_info.h"
19
20
#include <stddef.h>
21
#include <stdint.h>
22
23
#ifdef __cplusplus
24
extern "C" {
25
#endif
26
27
#if !defined(MBEDTLS_MD5_ALT)
28
// Regular implementation
29
//
30
31
/**
32
* \brief MD5 context structure
33
*
34
* \warning MD5 is considered a weak message digest and its use
35
* constitutes a security risk. We recommend considering
36
* stronger message digests instead.
37
*
38
*/
39
typedef struct mbedtls_md5_context {
40
uint32_t MBEDTLS_PRIVATE(total)[2]; /*!< number of bytes processed */
41
uint32_t MBEDTLS_PRIVATE(state)[4]; /*!< intermediate digest state */
42
unsigned char MBEDTLS_PRIVATE(buffer)[64]; /*!< data block being processed */
43
}
44
mbedtls_md5_context;
45
46
#else /* MBEDTLS_MD5_ALT */
47
#include "md5_alt.h"
48
#endif /* MBEDTLS_MD5_ALT */
49
50
/**
51
* \brief Initialize MD5 context
52
*
53
* \param ctx MD5 context to be initialized
54
*
55
* \warning MD5 is considered a weak message digest and its use
56
* constitutes a security risk. We recommend considering
57
* stronger message digests instead.
58
*
59
*/
60
void mbedtls_md5_init(mbedtls_md5_context *ctx);
61
62
/**
63
* \brief Clear MD5 context
64
*
65
* \param ctx MD5 context to be cleared
66
*
67
* \warning MD5 is considered a weak message digest and its use
68
* constitutes a security risk. We recommend considering
69
* stronger message digests instead.
70
*
71
*/
72
void mbedtls_md5_free(mbedtls_md5_context *ctx);
73
74
/**
75
* \brief Clone (the state of) an MD5 context
76
*
77
* \param dst The destination context
78
* \param src The context to be cloned
79
*
80
* \warning MD5 is considered a weak message digest and its use
81
* constitutes a security risk. We recommend considering
82
* stronger message digests instead.
83
*
84
*/
85
void mbedtls_md5_clone(mbedtls_md5_context *dst,
86
const mbedtls_md5_context *src);
87
88
/**
89
* \brief MD5 context setup
90
*
91
* \param ctx context to be initialized
92
*
93
* \return 0 if successful
94
*
95
* \warning MD5 is considered a weak message digest and its use
96
* constitutes a security risk. We recommend considering
97
* stronger message digests instead.
98
*
99
*/
100
int mbedtls_md5_starts(mbedtls_md5_context *ctx);
101
102
/**
103
* \brief MD5 process buffer
104
*
105
* \param ctx MD5 context
106
* \param input buffer holding the data
107
* \param ilen length of the input data
108
*
109
* \return 0 if successful
110
*
111
* \warning MD5 is considered a weak message digest and its use
112
* constitutes a security risk. We recommend considering
113
* stronger message digests instead.
114
*
115
*/
116
int mbedtls_md5_update(mbedtls_md5_context *ctx,
117
const unsigned char *input,
118
size_t ilen);
119
120
/**
121
* \brief MD5 final digest
122
*
123
* \param ctx MD5 context
124
* \param output MD5 checksum result
125
*
126
* \return 0 if successful
127
*
128
* \warning MD5 is considered a weak message digest and its use
129
* constitutes a security risk. We recommend considering
130
* stronger message digests instead.
131
*
132
*/
133
int mbedtls_md5_finish(mbedtls_md5_context *ctx,
134
unsigned char output[16]);
135
136
/**
137
* \brief MD5 process data block (internal use only)
138
*
139
* \param ctx MD5 context
140
* \param data buffer holding one block of data
141
*
142
* \return 0 if successful
143
*
144
* \warning MD5 is considered a weak message digest and its use
145
* constitutes a security risk. We recommend considering
146
* stronger message digests instead.
147
*
148
*/
149
int mbedtls_internal_md5_process(mbedtls_md5_context *ctx,
150
const unsigned char data[64]);
151
152
/**
153
* \brief Output = MD5( input buffer )
154
*
155
* \param input buffer holding the data
156
* \param ilen length of the input data
157
* \param output MD5 checksum result
158
*
159
* \return 0 if successful
160
*
161
* \warning MD5 is considered a weak message digest and its use
162
* constitutes a security risk. We recommend considering
163
* stronger message digests instead.
164
*
165
*/
166
int mbedtls_md5(const unsigned char *input,
167
size_t ilen,
168
unsigned char output[16]);
169
170
#if defined(MBEDTLS_SELF_TEST)
171
172
/**
173
* \brief Checkup routine
174
*
175
* \return 0 if successful, or 1 if the test failed
176
*
177
* \warning MD5 is considered a weak message digest and its use
178
* constitutes a security risk. We recommend considering
179
* stronger message digests instead.
180
*
181
*/
182
int mbedtls_md5_self_test(int verbose);
183
184
#endif /* MBEDTLS_SELF_TEST */
185
186
#ifdef __cplusplus
187
}
188
#endif
189
190
#endif /* mbedtls_md5.h */
191
192