INNER CODE UNIT · C
tail
jedisct1/libsodium-php · libsodium.c:3913
tail = &padded[padded_len - 1U];
for (i = 0U; i < (size_t) blocksize; i++) {
c = tail[-i];
is_barrier =
(( (acc - 1U) & (pad_len - 1U) & ((c ^ 0x80) - 1U) ) >> 8) & 1U;
acc |= c;
pad_len |= i & (1U + ~is_barrier);
valid |= (unsigned char) is_barrier;
}
unpadded_len = padded_len - 1U - pad_len;
ret = (int) (valid - 1U);
}
#endif
if (ret != 0 || unpadded_len > LONG_MAX) {
zend_throw_exception(sodium_exception_ce, "invalid padding", 0);
return;
}