Source code

Revision control

Copy as Markdown

Other Tools

/*
* des.h
*
* header file for DES-150 library
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef _DES_H_
#define _DES_H_ 1
#include "blapi.h"
typedef unsigned char BYTE;
typedef unsigned int HALF;
#define HALFPTR(x) ((HALF *)(x))
#define SHORTPTR(x) ((unsigned short *)(x))
#define BYTEPTR(x) ((BYTE *)(x))
typedef enum {
DES_ENCRYPT = 0x5555,
DES_DECRYPT = 0xAAAA
} DESDirection;
typedef void DESFunc(struct DESContextStr *cx, BYTE *out, const BYTE *in,
unsigned int len);
struct DESContextStr {
/* key schedule, 16 internal keys, each with 8 6-bit parts */
HALF ks0[32];
HALF ks1[32];
HALF ks2[32];
HALF iv[2];
DESDirection direction;
DESFunc *worker;
};
void DES_MakeSchedule(HALF *ks, const BYTE *key, DESDirection direction);
void DES_Do1Block(HALF *ks, const BYTE *inbuf, BYTE *outbuf);
#endif