~mdw
/
catacomb
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
key/key-io.c: Add low-level `key_mergeline' and `key_extractline' functions.
[catacomb]
/
symm
/
cbc-def.h
diff --git
a/symm/cbc-def.h
b/symm/cbc-def.h
index
59c76f8
..
480f579
100644
(file)
--- a/
symm/cbc-def.h
+++ b/
symm/cbc-def.h
@@
-155,7
+155,7
@@
void pre##_cbcencrypt(pre##_cbcctx *ctx, \
{ \
const octet *s = src; \
octet *d = dest; \
{ \
const octet *s = src; \
octet *d = dest; \
- octet b[PRE##_BLKSZ]
;
\
+ octet b[PRE##_BLKSZ]
, bb[PRE##_BLKSZ];
\
octet y; \
unsigned i; \
\
octet y; \
unsigned i; \
\
@@
-173,7
+173,8
@@
void pre##_cbcencrypt(pre##_cbcctx *ctx, \
if (sz < PRE##_BLKSZ) { \
pre##_eblk(&ctx->ctx, ctx->a, ctx->a); \
BLKC_STORE(PRE, b, ctx->a); \
if (sz < PRE##_BLKSZ) { \
pre##_eblk(&ctx->ctx, ctx->a, ctx->a); \
BLKC_STORE(PRE, b, ctx->a); \
- if (d) { for (i = 0; i < sz; i++) d[i] = b[i] ^ (s ? s[i] : 0); } \
+ if (!d) d = bb; \
+ for (i = 0; i < sz; i++) d[i] = b[i] ^ (s ? s[i] : 0); \
memmove(b, b + sz, PRE##_BLKSZ - sz); \
memcpy(b + PRE##_BLKSZ - sz, d, sz); \
BLKC_LOAD(PRE, ctx->a, b); \
memmove(b, b + sz, PRE##_BLKSZ - sz); \
memcpy(b + PRE##_BLKSZ - sz, d, sz); \
BLKC_LOAD(PRE, ctx->a, b); \