#define MAXKEYBYTES 56 /* 448 bits */
#ifdef __cplusplus
+#include <cstddef> // size_t
extern "C" {
+#else
+#include <stddef.h> // size_t
#endif
typedef struct {
} 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 Blowfish_Encrypt(const BLOWFISH_CTX *ctx, uint32_t *xl, uint32_t *xr);
+void Blowfish_Decrypt(const 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);
+void DecodeString(char * d, const char * s, const BLOWFISH_CTX *ctx);
+void EncodeString(char * d, const char * s, const BLOWFISH_CTX *ctx);
+
+void DecodeFullString(void * d, const void * s, size_t length, const BLOWFISH_CTX &ctx);
+void EncodeFullString(void * d, const void * s, size_t length, const BLOWFISH_CTX &ctx);
#ifdef __cplusplus
}