Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
8796 turbocat 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 
17
 
18
/****************************** MACROS ******************************/
19
#define DES_BLOCK_SIZE 8                // DES operates on 8 bytes at a time
20
 
21
/**************************** DATA TYPES ****************************/
22
typedef unsigned char BYTE;             // 8-bit byte
23
typedef unsigned int  WORD;             // 32-bit word, change to "long" for 16-bit machines
24
 
25
typedef enum {
26
	DES_ENCRYPT,
27
	DES_DECRYPT
28
} DES_MODE;
29
 
30
/*********************** FUNCTION DECLARATIONS **********************/
31
void des_key_setup(const BYTE key[], BYTE schedule[][6], DES_MODE mode);
32
void des_crypt(const BYTE in[], BYTE out[], const BYTE key[][6]);
33
 
34
void three_des_key_setup(const BYTE key[], BYTE schedule[][16][6], DES_MODE mode);
35
void three_des_crypt(const BYTE in[], BYTE out[], const BYTE key[][16][6]);
36
 
37
#endif   // DES_H