]>
git.ipfire.org Git - thirdparty/openssl.git/blob - include/openssl/mac.h
2 * Copyright 2019-2020=-2020 The OpenSSL Project Authors. All Rights Reserved.
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
12 #ifndef OPENSSL_EVP_MAC_H
13 # define OPENSSL_EVP_MAC_H
16 # include <openssl/opensslconf.h>
17 # include <openssl/types.h>
18 # include <openssl/core.h>
24 EVP_MAC
*EVP_MAC_fetch(OPENSSL_CTX
*libctx
, const char *algorithm
,
25 const char *properties
);
26 int EVP_MAC_up_ref(EVP_MAC
*mac
);
27 void EVP_MAC_free(EVP_MAC
*mac
);
28 int EVP_MAC_number(const EVP_MAC
*mac
);
29 int EVP_MAC_is_a(const EVP_MAC
*mac
, const char *name
);
30 const OSSL_PROVIDER
*EVP_MAC_provider(const EVP_MAC
*mac
);
31 int EVP_MAC_get_params(EVP_MAC
*mac
, OSSL_PARAM params
[]);
33 EVP_MAC_CTX
*EVP_MAC_new_ctx(EVP_MAC
*mac
);
34 void EVP_MAC_free_ctx(EVP_MAC_CTX
*ctx
);
35 EVP_MAC_CTX
*EVP_MAC_dup_ctx(const EVP_MAC_CTX
*src
);
36 EVP_MAC
*EVP_MAC_get_ctx_mac(EVP_MAC_CTX
*ctx
);
37 int EVP_MAC_get_ctx_params(EVP_MAC_CTX
*ctx
, OSSL_PARAM params
[]);
38 int EVP_MAC_set_ctx_params(EVP_MAC_CTX
*ctx
, const OSSL_PARAM params
[]);
40 size_t EVP_MAC_size(EVP_MAC_CTX
*ctx
);
41 int EVP_MAC_init(EVP_MAC_CTX
*ctx
);
42 int EVP_MAC_update(EVP_MAC_CTX
*ctx
, const unsigned char *data
, size_t datalen
);
43 int EVP_MAC_final(EVP_MAC_CTX
*ctx
,
44 unsigned char *out
, size_t *outl
, size_t outsize
);
45 const OSSL_PARAM
*EVP_MAC_gettable_params(const EVP_MAC
*mac
);
46 const OSSL_PARAM
*EVP_MAC_gettable_ctx_params(const EVP_MAC
*mac
);
47 const OSSL_PARAM
*EVP_MAC_settable_ctx_params(const EVP_MAC
*mac
);
49 void EVP_MAC_do_all_provided(OPENSSL_CTX
*libctx
,
50 void (*fn
)(EVP_MAC
*mac
, void *arg
),
52 void EVP_MAC_names_do_all(const EVP_MAC
*mac
,
53 void (*fn
)(const char *name
, void *data
),
59 #endif /* OPENSSL_EVP_MAC_H */