X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/355911106bc27f5504eb904a064367ef1b5f0aba..261442af210d652fc2c8a3d9197097982701bd16:/stglibs/crypto.lib/include/stg/blowfish.h diff --git a/stglibs/crypto.lib/include/stg/blowfish.h b/stglibs/crypto.lib/include/stg/blowfish.h new file mode 100644 index 00000000..a8800d75 --- /dev/null +++ b/stglibs/crypto.lib/include/stg/blowfish.h @@ -0,0 +1,37 @@ +/* + * Author : Paul Kocher + * E-mail : pck@netcom.com + * Date : 1997 + * Description: C implementation of the Blowfish algorithm. + */ + +#ifndef BLOWFISH_H +#define BLOWFISH_H + +#include "stg/os_int.h" + +#define MAXKEYBYTES 56 /* 448 bits */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + uint32_t P[16 + 2]; + uint32_t S[4][256]; +} BLOWFISH_CTX; + +void Blowfish_Init(BLOWFISH_CTX *ctx, unsigned char *key, int keyLen); +void Blowfish_Encrypt(BLOWFISH_CTX *ctx, uint32_t *xl, uint32_t *xr); +void Blowfish_Decrypt(BLOWFISH_CTX *ctx, uint32_t *xl, uint32_t *xr); + +void EnDecodeInit(const char * key, size_t length, BLOWFISH_CTX *ctx); +void DecodeString(char * d, const char * s, BLOWFISH_CTX *ctx); +void EncodeString(char * d, const char * s, BLOWFISH_CTX *ctx); + +#ifdef __cplusplus +} +#endif + +#endif +