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;
    }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…