diff options
author | Mark Haines <mjark@negativecurvature.net> | 2015-02-26 16:43:06 +0000 |
---|---|---|
committer | Mark Haines <mjark@negativecurvature.net> | 2015-02-26 16:43:06 +0000 |
commit | c61e5359cb454ae20c0b7b057c3a7b53e2beefd6 (patch) | |
tree | 7304b549b7ff13c44cfc59a753d7515c8a6289b0 /blowfish.h |
Squashed 'lib/crypto-algorithms/' content from commit 100f4ff
git-subtree-dir: lib/crypto-algorithms
git-subtree-split: 100f4ff91b5a5b31a84b3999365c3058df6251ea
Diffstat (limited to 'blowfish.h')
-rw-r--r-- | blowfish.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/blowfish.h b/blowfish.h new file mode 100644 index 0000000..d8e9d4a --- /dev/null +++ b/blowfish.h @@ -0,0 +1,32 @@ +/********************************************************************* +* Filename: blowfish.h +* Author: Brad Conte (brad AT bradconte.com) +* Copyright: +* Disclaimer: This code is presented "as is" without any guarantees. +* Details: Defines the API for the corresponding Blowfish implementation. +*********************************************************************/ + +#ifndef BLOWFISH_H +#define BLOWFISH_H + +/*************************** HEADER FILES ***************************/ +#include <stddef.h> + +/****************************** MACROS ******************************/ +#define BLOWFISH_BLOCK_SIZE 8 // Blowfish operates on 8 bytes at a time + +/**************************** DATA TYPES ****************************/ +typedef unsigned char BYTE; // 8-bit byte +typedef unsigned int WORD; // 32-bit word, change to "long" for 16-bit machines + +typedef struct { + WORD p[18]; + WORD s[4][256]; +} BLOWFISH_KEY; + +/*********************** FUNCTION DECLARATIONS **********************/ +void blowfish_key_setup(const BYTE user_key[], BLOWFISH_KEY *keystruct, size_t len); +void blowfish_encrypt(const BYTE in[], BYTE out[], const BLOWFISH_KEY *keystruct); +void blowfish_decrypt(const BYTE in[], BYTE out[], const BLOWFISH_KEY *keystruct); + +#endif // BLOWFISH_H |