1 | /* |
2 | * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. |
3 | * |
4 | * Licensed under the OpenSSL license (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 HEADER_RC2_H |
11 | # define |
12 | |
13 | # include <openssl/opensslconf.h> |
14 | |
15 | # ifndef OPENSSL_NO_RC2 |
16 | # ifdef __cplusplus |
17 | extern "C" { |
18 | # endif |
19 | |
20 | typedef unsigned int RC2_INT; |
21 | |
22 | # define RC2_ENCRYPT 1 |
23 | # define RC2_DECRYPT 0 |
24 | |
25 | # define RC2_BLOCK 8 |
26 | # define RC2_KEY_LENGTH 16 |
27 | |
28 | typedef struct rc2_key_st { |
29 | RC2_INT data[64]; |
30 | } RC2_KEY; |
31 | |
32 | void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits); |
33 | void RC2_ecb_encrypt(const unsigned char *in, unsigned char *out, |
34 | RC2_KEY *key, int enc); |
35 | void RC2_encrypt(unsigned int *data, RC2_KEY *key); |
36 | void RC2_decrypt(unsigned int *data, RC2_KEY *key); |
37 | void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, |
38 | RC2_KEY *ks, unsigned char *iv, int enc); |
39 | void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out, |
40 | long length, RC2_KEY *schedule, unsigned char *ivec, |
41 | int *num, int enc); |
42 | void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out, |
43 | long length, RC2_KEY *schedule, unsigned char *ivec, |
44 | int *num); |
45 | |
46 | # ifdef __cplusplus |
47 | } |
48 | # endif |
49 | # endif |
50 | |
51 | #endif |
52 | |