]>
Commit | Line | Data |
---|---|---|
21dcbebc RS |
1 | /* |
2 | * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. | |
58964a49 | 3 | * |
48f4ad77 | 4 | * Licensed under the Apache License 2.0 (the "License"). You may not use |
21dcbebc RS |
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 | |
58964a49 RE |
8 | */ |
9 | ||
ae4186b0 DMSP |
10 | #ifndef OPENSSL_CAST_H |
11 | # define OPENSSL_CAST_H | |
d86167ec DMSP |
12 | # pragma once |
13 | ||
14 | # include <openssl/macros.h> | |
936c2b9e | 15 | # ifndef OPENSSL_NO_DEPRECATED_3_0 |
d86167ec DMSP |
16 | # define HEADER_CAST_H |
17 | # endif | |
58964a49 | 18 | |
0f113f3e | 19 | # include <openssl/opensslconf.h> |
0c7d61ee | 20 | |
3c27208f RS |
21 | # ifndef OPENSSL_NO_CAST |
22 | # ifdef __cplusplus | |
23 | extern "C" { | |
0f113f3e | 24 | # endif |
f5d7a031 | 25 | |
0f113f3e MC |
26 | # define CAST_ENCRYPT 1 |
27 | # define CAST_DECRYPT 0 | |
58964a49 | 28 | |
0f113f3e | 29 | # define CAST_LONG unsigned int |
58964a49 | 30 | |
0f113f3e MC |
31 | # define CAST_BLOCK 8 |
32 | # define CAST_KEY_LENGTH 16 | |
58964a49 | 33 | |
0f113f3e MC |
34 | typedef struct cast_key_st { |
35 | CAST_LONG data[32]; | |
36 | int short_key; /* Use reduced rounds for short key */ | |
37 | } CAST_KEY; | |
58964a49 | 38 | |
1921eaad | 39 | void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); |
0f113f3e MC |
40 | void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, |
41 | const CAST_KEY *key, int enc); | |
7427379e BM |
42 | void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key); |
43 | void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key); | |
0f113f3e MC |
44 | void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, |
45 | long length, const CAST_KEY *ks, unsigned char *iv, | |
46 | int enc); | |
90ba7e21 | 47 | void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out, |
0f113f3e MC |
48 | long length, const CAST_KEY *schedule, |
49 | unsigned char *ivec, int *num, int enc); | |
50 | void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out, | |
51 | long length, const CAST_KEY *schedule, | |
52 | unsigned char *ivec, int *num); | |
58964a49 | 53 | |
3c27208f | 54 | # ifdef __cplusplus |
58964a49 | 55 | } |
3c27208f RS |
56 | # endif |
57 | # endif | |
58964a49 RE |
58 | |
59 | #endif |