} 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
}