Deprecate the low level IDEA functions.
[openssl.git] / include / openssl / idea.h
1 /*
2  * Copyright 1995-2016 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_IDEA_H
11 # define OPENSSL_IDEA_H
12 # pragma once
13
14 # include <openssl/macros.h>
15 # ifndef OPENSSL_NO_DEPRECATED_3_0
16 #  define HEADER_IDEA_H
17 # endif
18
19 # include <openssl/opensslconf.h>
20
21 # ifndef OPENSSL_NO_IDEA
22 #  ifdef  __cplusplus
23 extern "C" {
24 #  endif
25
26 #  define IDEA_BLOCK      8
27 #  define IDEA_KEY_LENGTH 16
28
29 #  ifndef OPENSSL_NO_DEPRECATED_3_0
30
31 typedef unsigned int IDEA_INT;
32
33 #   define IDEA_ENCRYPT    1
34 #   define IDEA_DECRYPT    0
35
36 typedef struct idea_key_st {
37     IDEA_INT data[9][6];
38 } IDEA_KEY_SCHEDULE;
39 #endif
40
41 DEPRECATEDIN_3_0(const char *IDEA_options(void))
42 DEPRECATEDIN_3_0(void IDEA_ecb_encrypt(const unsigned char *in,
43                                        unsigned char *out,
44                                        IDEA_KEY_SCHEDULE *ks))
45 DEPRECATEDIN_3_0(void IDEA_set_encrypt_key(const unsigned char *key,
46                                            IDEA_KEY_SCHEDULE *ks))
47 DEPRECATEDIN_3_0(void IDEA_set_decrypt_key(IDEA_KEY_SCHEDULE *ek,
48                                            IDEA_KEY_SCHEDULE *dk))
49 DEPRECATEDIN_3_0(void IDEA_cbc_encrypt(const unsigned char *in,
50                                        unsigned char *out, long length,
51                                        IDEA_KEY_SCHEDULE *ks,
52                                        unsigned char *iv, int enc))
53 DEPRECATEDIN_3_0(void IDEA_cfb64_encrypt(const unsigned char *in,
54                                          unsigned char *out, long length,
55                                          IDEA_KEY_SCHEDULE *ks,
56                                          unsigned char *iv, int *num, int enc))
57 DEPRECATEDIN_3_0(void IDEA_ofb64_encrypt(const unsigned char *in,
58                                          unsigned char *out, long length,
59                                          IDEA_KEY_SCHEDULE *ks,
60                                          unsigned char *iv, int *num))
61 DEPRECATEDIN_3_0(void IDEA_encrypt(unsigned long *in, IDEA_KEY_SCHEDULE *ks))
62
63 #  ifndef OPENSSL_NO_DEPRECATED_1_1_0
64 #   define idea_options          IDEA_options
65 #   define idea_ecb_encrypt      IDEA_ecb_encrypt
66 #   define idea_set_encrypt_key  IDEA_set_encrypt_key
67 #   define idea_set_decrypt_key  IDEA_set_decrypt_key
68 #   define idea_cbc_encrypt      IDEA_cbc_encrypt
69 #   define idea_cfb64_encrypt    IDEA_cfb64_encrypt
70 #   define idea_ofb64_encrypt    IDEA_ofb64_encrypt
71 #   define idea_encrypt          IDEA_encrypt
72 #  endif
73
74 #  ifdef  __cplusplus
75 }
76 #  endif
77 # endif
78
79 #endif