Invoke tear_down when exiting test_encode_tls_sct() prematurely
[openssl.git] / crypto / evp / m_md5_sha1.c
1 /*
2  * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
3  *
4  * Licensed under the Apache License 2.0 (the "License").  You may not use
5  * this file except in compliance with the License.  You can obtain a copy
6  * in the file LICENSE in the source distribution or at
7  * https://www.openssl.org/source/license.html
8  */
9
10 #ifndef OPENSSL_NO_MD5
11
12 # include <string.h>
13 # include <openssl/evp.h>
14 # include <openssl/obj_mac.h>
15 # include "internal/evp_int.h"
16 # include "internal/md5_sha1.h"
17
18 static int init(EVP_MD_CTX *ctx)
19 {
20     return md5_sha1_init(EVP_MD_CTX_md_data(ctx));
21 }
22
23 static int update(EVP_MD_CTX *ctx, const void *data, size_t count)
24 {
25     return md5_sha1_update(EVP_MD_CTX_md_data(ctx), data, count);
26 }
27
28 static int final(EVP_MD_CTX *ctx, unsigned char *md)
29 {
30     return md5_sha1_final(md, EVP_MD_CTX_md_data(ctx));
31 }
32
33 static int ctrl(EVP_MD_CTX *ctx, int cmd, int mslen, void *ms)
34 {
35     return md5_sha1_ctrl(EVP_MD_CTX_md_data(ctx), cmd, mslen, ms);
36 }
37
38 static const EVP_MD md5_sha1_md = {
39     NID_md5_sha1,
40     NID_md5_sha1,
41     MD5_SHA1_DIGEST_LENGTH,
42     0,
43     init,
44     update,
45     final,
46     NULL,
47     NULL,
48     MD5_SHA1_CBLOCK,
49     sizeof(EVP_MD *) + sizeof(MD5_SHA1_CTX),
50     ctrl
51 };
52
53 const EVP_MD *EVP_md5_sha1(void)
54 {
55     return &md5_sha1_md;
56 }
57
58 #endif /* OPENSSL_NO_MD5 */