add CHD support.
[pcsx_rearmed.git] / deps / crypto / des.h
CommitLineData
ce188d4d 1/*********************************************************************
2* Filename: des.h
3* Author: Brad Conte (brad AT bradconte.com)
4* Copyright:
5* Disclaimer: This code is presented "as is" without any guarantees.
6* Details: Defines the API for the corresponding DES implementation.
7 Note that encryption and decryption are defined by how
8 the key setup is performed, the actual en/de-cryption is
9 performed by the same function.
10*********************************************************************/
11
12#ifndef DES_H
13#define DESH
14
15/*************************** HEADER FILES ***************************/
16#include <stddef.h>
17
18/****************************** MACROS ******************************/
19#define DES_BLOCK_SIZE 8 // DES operates on 8 bytes at a time
20
21/**************************** DATA TYPES ****************************/
22typedef unsigned char BYTE; // 8-bit byte
23typedef unsigned int WORD; // 32-bit word, change to "long" for 16-bit machines
24
25typedef enum {
26 DES_ENCRYPT,
27 DES_DECRYPT
28} DES_MODE;
29
30/*********************** FUNCTION DECLARATIONS **********************/
31void des_key_setup(const BYTE key[], BYTE schedule[][6], DES_MODE mode);
32void des_crypt(const BYTE in[], BYTE out[], const BYTE key[][6]);
33
34void three_des_key_setup(const BYTE key[], BYTE schedule[][16][6], DES_MODE mode);
35void three_des_crypt(const BYTE in[], BYTE out[], const BYTE key[][16][6]);
36
37#endif // DES_H