comparison src/core/ngx_md5.h @ 6603:9eefb38f0005

Internal md5 and sha1 implementations are now always used. This reduces the number of moving parts in ABI compatibility checks. Additionally, it also allows to use OpenSSL in FIPS mode while still using md5 for non-security tasks.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 30 Jun 2016 18:57:39 +0300
parents d620f497c50f
children
comparison
equal deleted inserted replaced
6602:bcd442b585f0 6603:9eefb38f0005
11 11
12 #include <ngx_config.h> 12 #include <ngx_config.h>
13 #include <ngx_core.h> 13 #include <ngx_core.h>
14 14
15 15
16 #if (NGX_HAVE_MD5)
17
18 #if (NGX_HAVE_OPENSSL_MD5_H)
19 #include <openssl/md5.h>
20 #else
21 #include <md5.h>
22 #endif
23
24
25 typedef MD5_CTX ngx_md5_t;
26
27
28 #if (NGX_OPENSSL_MD5)
29
30 #define ngx_md5_init MD5_Init
31 #define ngx_md5_update MD5_Update
32 #define ngx_md5_final MD5_Final
33
34 #else
35
36 #define ngx_md5_init MD5Init
37 #define ngx_md5_update MD5Update
38 #define ngx_md5_final MD5Final
39
40 #endif
41
42
43 #else /* !NGX_HAVE_MD5 */
44
45
46 typedef struct { 16 typedef struct {
47 uint64_t bytes; 17 uint64_t bytes;
48 uint32_t a, b, c, d; 18 uint32_t a, b, c, d;
49 u_char buffer[64]; 19 u_char buffer[64];
50 } ngx_md5_t; 20 } ngx_md5_t;
53 void ngx_md5_init(ngx_md5_t *ctx); 23 void ngx_md5_init(ngx_md5_t *ctx);
54 void ngx_md5_update(ngx_md5_t *ctx, const void *data, size_t size); 24 void ngx_md5_update(ngx_md5_t *ctx, const void *data, size_t size);
55 void ngx_md5_final(u_char result[16], ngx_md5_t *ctx); 25 void ngx_md5_final(u_char result[16], ngx_md5_t *ctx);
56 26
57 27
58 #endif
59
60 #endif /* _NGX_MD5_H_INCLUDED_ */ 28 #endif /* _NGX_MD5_H_INCLUDED_ */