+void DecryptString(void * d, const void * s, size_t length, const BLOWFISH_CTX * ctx)
+{
+size_t pos = 0;
+while (pos < length)
+ {
+ DecryptBlock(d + pos, s + pos, ctx);
+ pos += 8;
+ }
+}
+//-----------------------------------------------------------------------------
+void EncryptString(void * d, const void * s, size_t length, const BLOWFISH_CTX * ctx)
+{
+size_t pos = 0;
+while (pos < length)
+ {
+ if (pos + 8 < length)
+ EncryptBlock(d + pos, s + pos, ctx);
+ else
+ {
+ // Short string, use 0-padded buffer.
+ char buf[8];
+ memset(buf, 0, sizeof(buf));
+ memcpy(buf, s + pos, length - pos);
+ EncryptBlock(d + pos, buf, ctx);
+ }
+ pos += 8;
+ }
+}
+//-----------------------------------------------------------------------------