summaryrefslogtreecommitdiffstats
path: root/crypto/modes/cfb128.c
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2010-04-14 07:47:28 +0000
committerAndy Polyakov <appro@openssl.org>2010-04-14 07:47:28 +0000
commit6a1823b371129848fa402d19a2cae6a1adf1d874 (patch)
treef4ef4eabac5fad4fad1ae85ae9572a1fee64ae8e /crypto/modes/cfb128.c
parent45106caab7bcfea84734ff5c0ff5d0acd6363c68 (diff)
[co]fb128.c: fix "n=0" bug.
Diffstat (limited to 'crypto/modes/cfb128.c')
-rw-r--r--crypto/modes/cfb128.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/crypto/modes/cfb128.c b/crypto/modes/cfb128.c
index 98f4cf315c..e5938c6137 100644
--- a/crypto/modes/cfb128.c
+++ b/crypto/modes/cfb128.c
@@ -96,15 +96,15 @@ void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out,
#endif
while (len>=16) {
(*block)(ivec, ivec, key);
- for (n=0; n<16; n+=sizeof(size_t)) {
+ for (; n<16; n+=sizeof(size_t)) {
*(size_t*)(out+n) =
*(size_t*)(ivec+n) ^= *(size_t*)(in+n);
}
len -= 16;
out += 16;
in += 16;
+ n = 0;
}
- n = 0;
if (len) {
(*block)(ivec, ivec, key);
while (len--) {
@@ -141,7 +141,7 @@ void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out,
#endif
while (len>=16) {
(*block)(ivec, ivec, key);
- for (n=0; n<16; n+=sizeof(size_t)) {
+ for (; n<16; n+=sizeof(size_t)) {
size_t t = *(size_t*)(in+n);
*(size_t*)(out+n) = *(size_t*)(ivec+n) ^ t;
*(size_t*)(ivec+n) = t;
@@ -149,8 +149,8 @@ void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out,
len -= 16;
out += 16;
in += 16;
+ n = 0;
}
- n = 0;
if (len) {
(*block)(ivec, ivec, key);
while (len--) {