1 /* Copyright (c) (2010,2012,2015,2016,2017,2018,2019) Apple Inc. All rights reserved. 2 * 3 * corecrypto is licensed under Apple Inc.’s Internal Use License Agreement (which 4 * is contained in the License.txt file distributed with corecrypto) and only to 5 * people who accept that license. IMPORTANT: Any license rights granted to you by 6 * Apple Inc. (if any) are limited to internal use within your organization only on 7 * devices and computers you own or control, for the sole purpose of verifying the 8 * security characteristics and correct functioning of the Apple Software. You may 9 * not, directly or indirectly, redistribute the Apple Software or any portions thereof. 10 */ 11 12 13 #ifndef _CORECRYPTO_CCDES_H_ 14 #define _CORECRYPTO_CCDES_H_ 15 16 #include <corecrypto/ccmode.h> 17 18 #define CCDES_BLOCK_SIZE 8 19 #define CCDES_KEY_SIZE 8 20 21 extern const struct ccmode_ecb ccdes3_ltc_ecb_decrypt_mode; 22 extern const struct ccmode_ecb ccdes3_ltc_ecb_encrypt_mode; 23 24 const struct ccmode_ecb *ccdes_ecb_decrypt_mode(void); 25 const struct ccmode_ecb *ccdes_ecb_encrypt_mode(void); 26 27 const struct ccmode_cbc *ccdes_cbc_decrypt_mode(void); 28 const struct ccmode_cbc *ccdes_cbc_encrypt_mode(void); 29 30 const struct ccmode_cfb *ccdes_cfb_decrypt_mode(void); 31 const struct ccmode_cfb *ccdes_cfb_encrypt_mode(void); 32 33 const struct ccmode_cfb8 *ccdes_cfb8_decrypt_mode(void); 34 const struct ccmode_cfb8 *ccdes_cfb8_encrypt_mode(void); 35 36 const struct ccmode_ctr *ccdes_ctr_crypt_mode(void); 37 38 const struct ccmode_ofb *ccdes_ofb_crypt_mode(void); 39 40 41 const struct ccmode_ecb *ccdes3_ecb_decrypt_mode(void); 42 const struct ccmode_ecb *ccdes3_ecb_encrypt_mode(void); 43 44 const struct ccmode_cbc *ccdes3_cbc_decrypt_mode(void); 45 const struct ccmode_cbc *ccdes3_cbc_encrypt_mode(void); 46 47 const struct ccmode_cfb *ccdes3_cfb_decrypt_mode(void); 48 const struct ccmode_cfb *ccdes3_cfb_encrypt_mode(void); 49 50 const struct ccmode_cfb8 *ccdes3_cfb8_decrypt_mode(void); 51 const struct ccmode_cfb8 *ccdes3_cfb8_encrypt_mode(void); 52 53 const struct ccmode_ctr *ccdes3_ctr_crypt_mode(void); 54 55 const struct ccmode_ofb *ccdes3_ofb_crypt_mode(void); 56 57 int ccdes_key_is_weak( void *key, size_t length); 58 void ccdes_key_set_odd_parity(void *key, size_t length); 59 60 uint32_t 61 ccdes_cbc_cksum(const void *in, void *out, size_t length, 62 const void *key, size_t key_nbytes, const void *ivec); 63 64 65 #endif /* _CORECRYPTO_CCDES_H_ */ 66