Re: [PATCH 1/1]: Revised CTR mode implementation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 03, 2007 at 06:21:49PM +0800, Herbert Xu wrote:

> static void __ctr_inc_byte(u8 *a, int size)
> {
> 	__be8 *b = (__be8 *)(a + size);
> 	u8 c;
> 
> 	do {
> 		c = be8_to_cpu(*--b) + 1;
> 		*b = cpu_to_be8(c);
> 		if (c)
> 			break;
> 	} while (--size);

This should be a for loop and we can make it inline too.

static inline void __ctr_inc_byte(u8 *a, int size)
{
	__be8 *b = (__be8 *)(a + size);
	u8 c;

	for (; size; size--) {
		c = b8_to_cpu(*--b) + 1;
		*b = cpu_to_be8(c);
		if (c)
			break;
	}
}
 
> Let's also get rid of the xor selection and just use this xor
> function:
> 
> static void xor_quad(u8 *dst, const u8 *src, unsigned int bs)
> {
> 	u32 *a = (u32 *)dst;
> 	u32 *b = (u32 *)src;
> 
> 	for (; bs >= 4; bs -= 4)
> 		*a++ ^= *b++;
> 
> 	xor_byte((u8 *)a, (u8 *)b, bs);
> }

xor_byte should be constructed in a similar fashion.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux