67 size_t len,
const void *
key,
68 unsigned char ivec[16],
int *
num,
74 assert(in && out && key && ivec && num);
78 #if !defined(OPENSSL_SMALL_FOOTPRINT)
79 if (16%
sizeof(
size_t) == 0)
do {
81 *(out++) = *(in++) ^ ivec[n];
85 #if defined(STRICT_ALIGNMENT)
86 if (((
size_t)in|(size_t)out|(
size_t)ivec)%
sizeof(
size_t) != 0)
90 (*block)(ivec, ivec,
key);
91 for (; n<16; n+=
sizeof(size_t))
93 *(
size_t*)(in+n) ^ *(
size_t*)(ivec+n);
100 (*block)(ivec, ivec,
key);
102 out[n] = in[n] ^ ivec[n];
113 (*block)(ivec, ivec,
key);
115 out[l] = in[l] ^ ivec[n];