• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2019-2021 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 #define IMPLEMENT_LEGACY_EVP_MD_METH(nm, fn)                                   \
11 static int nm##_init(EVP_MD_CTX *ctx)                                          \
12 {                                                                              \
13     return fn##_Init(EVP_MD_CTX_get0_md_data(ctx));                            \
14 }                                                                              \
15 static int nm##_update(EVP_MD_CTX *ctx, const void *data, size_t count)        \
16 {                                                                              \
17     return fn##_Update(EVP_MD_CTX_get0_md_data(ctx), data, count);             \
18 }                                                                              \
19 static int nm##_final(EVP_MD_CTX *ctx, unsigned char *md)                      \
20 {                                                                              \
21     return fn##_Final(md, EVP_MD_CTX_get0_md_data(ctx));                       \
22 }
23 
24 #define IMPLEMENT_LEGACY_EVP_MD_METH_LC(nm, fn)                                \
25 static int nm##_init(EVP_MD_CTX *ctx)                                          \
26 {                                                                              \
27     return fn##_init(EVP_MD_CTX_get0_md_data(ctx));                            \
28 }                                                                              \
29 static int nm##_update(EVP_MD_CTX *ctx, const void *data, size_t count)        \
30 {                                                                              \
31     return fn##_update(EVP_MD_CTX_get0_md_data(ctx), data, count);             \
32 }                                                                              \
33 static int nm##_final(EVP_MD_CTX *ctx, unsigned char *md)                      \
34 {                                                                              \
35     return fn##_final(md, EVP_MD_CTX_get0_md_data(ctx));                       \
36 }
37 
38 
39 #define LEGACY_EVP_MD_METH_TABLE(init, update, final, ctrl, blksz)             \
40     init, update, final, NULL, NULL, blksz, 0, ctrl
41