1/*
2 * ccdes.h
3 * corecrypto
4 *
5 * Created on 12/20/2010
6 *
7 * Copyright (c) 2010,2012,2015 Apple Inc. All rights reserved.
8 *
9 */
10
11
12#ifndef _CORECRYPTO_CCDES_H_
13#define _CORECRYPTO_CCDES_H_
14
15#include <corecrypto/ccmode.h>
16
17#define CCDES_BLOCK_SIZE 8
18#define CCDES_KEY_SIZE 8
19
20extern const struct ccmode_ecb ccdes3_ltc_ecb_decrypt_mode;
21extern const struct ccmode_ecb ccdes3_ltc_ecb_encrypt_mode;
22
23const struct ccmode_ecb *ccdes_ecb_decrypt_mode(void);
24const struct ccmode_ecb *ccdes_ecb_encrypt_mode(void);
25
26const struct ccmode_cbc *ccdes_cbc_decrypt_mode(void);
27const struct ccmode_cbc *ccdes_cbc_encrypt_mode(void);
28
29const struct ccmode_cfb *ccdes_cfb_decrypt_mode(void);
30const struct ccmode_cfb *ccdes_cfb_encrypt_mode(void);
31
32const struct ccmode_cfb8 *ccdes_cfb8_decrypt_mode(void);
33const struct ccmode_cfb8 *ccdes_cfb8_encrypt_mode(void);
34
35const struct ccmode_ctr *ccdes_ctr_crypt_mode(void);
36
37const struct ccmode_ofb *ccdes_ofb_crypt_mode(void);
38
39
40const struct ccmode_ecb *ccdes3_ecb_decrypt_mode(void);
41const struct ccmode_ecb *ccdes3_ecb_encrypt_mode(void);
42
43const struct ccmode_cbc *ccdes3_cbc_decrypt_mode(void);
44const struct ccmode_cbc *ccdes3_cbc_encrypt_mode(void);
45
46const struct ccmode_cfb *ccdes3_cfb_decrypt_mode(void);
47const struct ccmode_cfb *ccdes3_cfb_encrypt_mode(void);
48
49const struct ccmode_cfb8 *ccdes3_cfb8_decrypt_mode(void);
50const struct ccmode_cfb8 *ccdes3_cfb8_encrypt_mode(void);
51
52const struct ccmode_ctr *ccdes3_ctr_crypt_mode(void);
53
54const struct ccmode_ofb *ccdes3_ofb_crypt_mode(void);
55
56int ccdes_key_is_weak( void *key, size_t length);
57void ccdes_key_set_odd_parity(void *key, size_t length);
58
59uint32_t
60ccdes_cbc_cksum(const void *in, void *out, size_t length,
61 const void *key, size_t key_nbytes, const void *ivec);
62
63
64#endif /* _CORECRYPTO_CCDES_H_ */
65