#define F1(i) \
xl ^= pax[i]; \
- xr ^= ((sbx[0][xl>>24] + \
- sbx[1][(xl&0xFF0000)>>16]) ^ \
- sbx[2][(xl&0xFF00)>>8]) + \
- sbx[3][xl&0xFF];
+ xr ^= ((sbx[0][xl >> 24] + \
+ sbx[1][(xl & 0xFF0000) >> 16]) ^ \
+ sbx[2][(xl & 0xFF00) >> 8]) + \
+ sbx[3][xl & 0xFF];
#define F2(i) \
xr ^= pax[i]; \
- xl ^= ((sbx[0][xr>>24] + \
- sbx[1][(xr&0xFF0000)>>16]) ^ \
- sbx[2][(xr&0xFF00)>>8]) + \
- sbx[3][xr&0xFF];
+ xl ^= ((sbx[0][xr >> 24] + \
+ sbx[1][(xr & 0xFF0000) >> 16]) ^ \
+ sbx[2][(xr & 0xFF00) >> 8]) + \
+ sbx[3][xr & 0xFF];
static void
F1(0) F2(1) F1(2) F2(3) F1(4) F2(5) F1(6) F2(7)
F1(8) F2(9) F1(10) F2(11) F1(12) F2(13) F1(14) F2(15)
- xl ^= pax[16]; xr ^= pax[17];
- temp = xl; xl = xr; xr = temp;
- *p_xl = xl; *p_xr = xr;
+ xl ^= pax[16];
+ xr ^= pax[17];
+ temp = xl;
+ xl = xr;
+ xr = temp;
+ *p_xl = xl;
+ *p_xr = xr;
}
#if 0 /* not used */
bf_e_cblock(block)
char_u *block;
{
- block8 bk;
+ block8 bk;
+
memcpy(bk.uc, block, 8);
htonl2(bk.ul[0]);
htonl2(bk.ul[1]);
}
}
+#define BF_OFB_UPDATE(c) { \
+ ofb_buffer[update_offset] ^= (char_u)c; \
+ if (++update_offset == BF_OFB_LEN) \
+ update_offset = 0; \
+}
+
+#define BF_RANBYTE(t) { \
+ if ((randbyte_offset & BF_BLOCK_MASK) == 0) \
+ bf_e_cblock(&ofb_buffer[randbyte_offset]); \
+ t = ofb_buffer[randbyte_offset]; \
+ if (++randbyte_offset == BF_OFB_LEN) \
+ randbyte_offset = 0; \
+}
+
+/*
+ * Encrypt "from[len]" into "to[len]".
+ * "from" and "to" can be equal to encrypt in place.
+ */
void
-bf_ofb_update(c)
- int c;
+bf_crypt_encode(from, len, to)
+ char_u *from;
+ size_t len;
+ char_u *to;
{
- ofb_buffer[update_offset++] ^= (char_u)c;
- if (update_offset == BF_OFB_LEN)
- update_offset = 0;
+ size_t i;
+ int ztemp, t;
+
+ for (i = 0; i < len; ++i)
+ {
+ ztemp = from[i];
+ BF_RANBYTE(t);
+ BF_OFB_UPDATE(ztemp);
+ to[i] = t ^ ztemp;
+ }
}
- int
-bf_ranbyte()
+/*
+ * Decrypt "ptr[len]" in place.
+ */
+ void
+bf_crypt_decode(ptr, len)
+ char_u *ptr;
+ long len;
+{
+ char_u *p;
+ int t;
+
+ for (p = ptr; p < ptr + len; ++p)
+ {
+ BF_RANBYTE(t);
+ *p ^= t;
+ BF_OFB_UPDATE(*p);
+ }
+}
+
+/*
+ * Initialize the encryption keys and the random header according to
+ * the given password.
+ */
+ void
+bf_crypt_init_keys(passwd)
+ char_u *passwd; /* password string with which to modify keys */
{
- int b;
-
- if ((randbyte_offset & BF_BLOCK_MASK) == 0)
- bf_e_cblock(&ofb_buffer[randbyte_offset]);
- b = ofb_buffer[randbyte_offset];
- if (++randbyte_offset == BF_OFB_LEN)
- randbyte_offset = 0;
- return b;
+ char_u *p;
+
+ for (p = passwd; *p != NUL; ++p)
+ {
+ BF_OFB_UPDATE(*p);
+ }
}
/*
ackNum = atoi(&cmd[4]);
vim_snprintf(buf, sizeof(buf),
NOCATGETS("ack %d\n"), ackNum);
- write(sd, buf, strlen(buf));
+ (void)write(sd, buf, strlen(buf));
} else if (strncmp(cmd,
NOCATGETS("addMarkType "), 12) == 0) {
int idx;
vim_snprintf(buf, sizeof(buf),
NOCATGETS("markLine %s %d %d\n"),
file, markid, line);
- write(sd, buf, strlen(buf));
+ (void)write(sd, buf, strlen(buf));
} else if (cmd[1] == 'o' && cmd[4] == 'L' &&
strncmp(cmd, NOCATGETS("gotoLine "), 9) == 0) {
char *file;
workshop_get_editor_name(),
PROTOCOL_VERSION,
workshop_get_editor_version());
- write(sd, buf, strlen(buf));
+ (void)write(sd, buf, strlen(buf));
vim_snprintf(buf, sizeof(buf), NOCATGETS("ack 1\n"));
- write(sd, buf, strlen(buf));
+ (void)write(sd, buf, strlen(buf));
}
void workshop_disconnect()
char buffer[2*MAXPATHLEN];
vim_snprintf(buffer, sizeof(buffer),
NOCATGETS("deletedFile %s\n"), filename);
- write(sd, buffer, strlen(buffer));
+ (void)write(sd, buffer, strlen(buffer));
}
#endif
char buffer[2*MAXPATHLEN];
vim_snprintf(buffer, sizeof(buffer),
NOCATGETS("deletedFile %s %d\n"), filename, lineno);
- write(sd, buffer, strlen(buffer));
+ (void)write(sd, buffer, strlen(buffer));
}
void workshop_file_opened(char *filename, int readOnly)
char buffer[2*MAXPATHLEN];
vim_snprintf(buffer, sizeof(buffer),
NOCATGETS("loadedFile %s %d\n"), filename, readOnly);
- write(sd, buffer, strlen(buffer));
+ (void)write(sd, buffer, strlen(buffer));
}
char buffer[2*MAXPATHLEN];
vim_snprintf(buffer, sizeof(buffer),
NOCATGETS("savedFile %s\n"), filename);
- write(sd, buffer, strlen(buffer));
+ (void)write(sd, buffer, strlen(buffer));
/* Let editor report any moved marks that the eserve client
* should deal with (for example, moving location-based breakpoints) */
char buffer[2*MAXPATHLEN];
vim_snprintf(buffer, sizeof(buffer),
NOCATGETS("modifiedFile %s\n"), filename);
- write(sd, buffer, strlen(buffer));
+ (void)write(sd, buffer, strlen(buffer));
}
void workshop_move_mark(char *filename, int markId, int newLineno)
char buffer[2*MAXPATHLEN];
vim_snprintf(buffer, sizeof(buffer),
NOCATGETS("moveMark %s %d %d\n"), filename, markId, newLineno);
- write(sd, buffer, strlen(buffer));
+ (void)write(sd, buffer, strlen(buffer));
}
#endif
vim_snprintf(buffer, sizeof(buffer),
NOCATGETS("frameAt %d %d %d %d\n"),
new_x, new_y, new_w, new_h);
- write(sd, buffer, strlen(buffer));
+ (void)write(sd, buffer, strlen(buffer));
}
}
selEndLine, selEndCol,
selLength,
selection);
- write(sd, buf, strlen(buf));
+ (void)write(sd, buf, strlen(buf));
if (*selection) {
free(selection);
}
#if defined(NOHANDS_SUPPORT_FUNCTIONS) || defined(FEAT_BEVAL)
void workshop_send_message(char *buf)
{
- write(sd, buf, strlen(buf));
+ (void)write(sd, buf, strlen(buf));
}
#endif
to[i] = t ^ ztemp;
}
else
- for (i = 0; i < len; ++i)
- {
- ztemp = from[i];
- t = bf_ranbyte();
- bf_ofb_update(ztemp);
- to[i] = t ^ ztemp;
- }
+ bf_crypt_encode(from, len, to);
}
/*
UPDATE_KEYS_ZIP(*p ^= temp);
}
else
- for (p = ptr; p < ptr + len; ++p)
- bf_ofb_update(*p ^= bf_ranbyte());
+ bf_crypt_decode(ptr, len);
}
/*
{
if (passwd != NULL && *passwd != NUL)
{
- make_crc_tab();
- keys[0] = 305419896L;
- keys[1] = 591751049L;
- keys[2] = 878082192L;
if (use_crypt_method == 0)
- while (*passwd != '\0')
+ {
+ char_u *p;
+
+ make_crc_tab();
+ keys[0] = 305419896L;
+ keys[1] = 591751049L;
+ keys[2] = 878082192L;
+ for (p = passwd; *p!= NUL; ++p)
{
- UPDATE_KEYS_ZIP((int)*passwd++);
+ UPDATE_KEYS_ZIP((int)*p);
}
+ }
else
- while (*passwd != '\0')
- bf_ofb_update((int)*passwd++);
+ bf_crypt_init_keys(passwd);
}
}
else
{
#if defined(SIZEOF_TIME_T) && SIZEOF_TIME_T > 4
- c = wtime >> (i * 8);
+ c = (int)(wtime >> (i * 8));
#else
- c = (long_u)wtime >> (i * 8);
+ c = (int)((long_u)wtime >> (i * 8));
#endif
putc(c, fd);
}