]> git.stg.codes - stg.git/blob - stglibs/crypto.lib/blowfish.h
20f2fff76f951463ac7faefc740401f14fcbef78
[stg.git] / stglibs / crypto.lib / blowfish.h
1 /*
2  * Author     :  Paul Kocher
3  * E-mail     :  pck@netcom.com
4  * Date       :  1997
5  * Description:  C implementation of the Blowfish algorithm.
6  */
7
8 #ifndef BLOWFISH_H
9 #define BLOWFISH_H
10
11 #include "stg/os_int.h"
12
13 #define MAXKEYBYTES 56          /* 448 bits */
14
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18
19 typedef struct {
20   uint32_t P[16 + 2];
21   uint32_t S[4][256];
22 } BLOWFISH_CTX;
23
24 void Blowfish_Init(BLOWFISH_CTX *ctx, unsigned char *key, int keyLen);
25 void Blowfish_Encrypt(BLOWFISH_CTX *ctx, uint32_t *xl, uint32_t *xr);
26 void Blowfish_Decrypt(BLOWFISH_CTX *ctx, uint32_t *xl, uint32_t *xr);
27
28 void EnDecodeInit(const char * key, int passwdLen, BLOWFISH_CTX *ctx);
29 void DecodeString(char * d, const char * s, BLOWFISH_CTX *ctx);
30 void EncodeString(char * d, const char * s, BLOWFISH_CTX *ctx);
31
32 #ifdef __cplusplus
33 }
34 #endif
35
36 #endif
37