On Sun, Jul 01, 2012 at 03:44:28PM +0100, Måns Rullgård wrote:
> Kostya Shishkov <[email protected]> writes:
> 
> > On Sun, Jul 01, 2012 at 03:16:22PM +0100, Måns Rullgård wrote:
> >> Kostya Shishkov <[email protected]> writes:
> >> 
> >> > On Sun, Jul 01, 2012 at 04:03:00PM +0200, Samuel Pitoiset wrote:
> >> >> +void av_xtea_encrypt(AVXTEA *x, uint8_t *dst, const uint8_t *src, int 
> >> >> count)
> >> >> +{
> >> >> +    uint32_t v0, v1, sum = 0, delta = 0x9E3779B9;
> >> >> +    int i;
> >> >> +
> >> >> +    while (count-- > 0) {
> >> >> +        v0 = AV_RB32(src);
> >> >> +        v1 = AV_RB32(src + 4);
> >> >> +
> >> >> +        for (i = 0; i < 32; i++) {
> >> >> +            v0 += (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + x->key[sum & 
> >> >> 3]);
> >> >> +            sum += delta;
> >> >> +            v1 += (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + x->key[(sum 
> >> >> >> 11) & 3]);
> >> >> +        }
> >> >> +
> >> >> +        AV_WB32(dst, v0);
> >> >> +        AV_WB32(dst + 4, v1);
> >> >> +
> >> >> +        src++;
> >> >> +        dst++;
> >> >
> >> > it should be incremented by 8
> >> 
> >> And 'count' should be decremented by 8.  It also needs to handle input
> >> not a multiple of 8 bytes in length.  Is zero-padding the proper thing
> >> to do?
> >
> > Maybe, but because block bytes are permuted, output length should be 
> > multiple
> > of eight in any case.
> 
> Then document that the output buffer must be able to hold the aligned
> size.

Not only hold but also use.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to