[co]fb128.c: fix "n=0" bug.

This commit is contained in:
Andy Polyakov 2010-04-14 07:47:28 +00:00
parent 45106caab7
commit 6a1823b371
2 changed files with 6 additions and 6 deletions

View File

@ -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--) {

View File

@ -95,14 +95,14 @@ void CRYPTO_ofb128_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*)(in+n) ^ *(size_t*)(ivec+n);
len -= 16;
out += 16;
in += 16;
n = 0;
}
n = 0;
if (len) {
(*block)(ivec, ivec, key);
while (len--) {