1/*
2 * Copyright 1995-2020 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_MD2_H
11# define OPENSSL_MD2_H
12# pragma once
13
14# include <openssl/macros.h>
15# ifndef OPENSSL_NO_DEPRECATED_3_0
16#  define HEADER_MD2_H
17# endif
18
19# include <openssl/opensslconf.h>
20
21# ifndef OPENSSL_NO_MD2
22#  include <stddef.h>
23#  ifdef  __cplusplus
24extern "C" {
25#  endif
26
27#  define MD2_DIGEST_LENGTH       16
28
29#  if !defined(OPENSSL_NO_DEPRECATED_3_0)
30
31typedef unsigned char MD2_INT;
32
33#   define MD2_BLOCK               16
34
35typedef struct MD2state_st {
36    unsigned int num;
37    unsigned char data[MD2_BLOCK];
38    MD2_INT cksm[MD2_BLOCK];
39    MD2_INT state[MD2_BLOCK];
40} MD2_CTX;
41#  endif
42#  ifndef OPENSSL_NO_DEPRECATED_3_0
43OSSL_DEPRECATEDIN_3_0 const char *MD2_options(void);
44OSSL_DEPRECATEDIN_3_0 int MD2_Init(MD2_CTX *c);
45OSSL_DEPRECATEDIN_3_0 int MD2_Update(MD2_CTX *c, const unsigned char *data,
46                                     size_t len);
47OSSL_DEPRECATEDIN_3_0 int MD2_Final(unsigned char *md, MD2_CTX *c);
48OSSL_DEPRECATEDIN_3_0 unsigned char *MD2(const unsigned char *d, size_t n,
49                                         unsigned char *md);
50#  endif
51
52#  ifdef  __cplusplus
53}
54#  endif
55# endif
56#endif
57