Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1516445
| From | Eric Biggers <ebiggers@google.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access |
| Date | 2016-11-07 19:40 +0100 |
| Message-ID | <sAWZP-6Y4-7@gated-at.bofh.it> (permalink) |
| References | (2 earlier) <szkDg-O3-27@gated-at.bofh.it> <sztGx-6N2-5@gated-at.bofh.it> <szyGe-1ul-21@gated-at.bofh.it> <szQD7-4MR-15@gated-at.bofh.it> <sAWwO-6Ln-29@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Mon, Nov 07, 2016 at 07:08:22PM +0100, Jason A. Donenfeld wrote:
> Hmm... The general data flow that strikes me as most pertinent is
> something like:
>
> struct sk_buff *skb = get_it_from_somewhere();
> skb = skb_share_check(skb, GFP_ATOMIC);
> num_frags = skb_cow_data(skb, ..., ...);
> struct scatterlist sg[num_frags];
> sg_init_table(sg, num_frags);
> skb_to_sgvec(skb, sg, ..., ...);
> blkcipher_walk_init(&walk, sg, sg, len);
> blkcipher_walk_virt_block(&desc, &walk, BLOCK_SIZE);
> while (walk.nbytes >= BLOCK_SIZE) {
> size_t chunk_len = rounddown(walk.nbytes, BLOCK_SIZE);
> poly1305_update(&poly1305_state, walk.src.virt.addr, chunk_len);
> blkcipher_walk_done(&desc, &walk, walk.nbytes % BLOCK_SIZE);
> }
> if (walk.nbytes) {
> poly1305_update(&poly1305_state, walk.src.virt.addr, walk.nbytes);
> blkcipher_walk_done(&desc, &walk, 0);
> }
>
> Is your suggestion that that in the final if block, walk.src.virt.addr
> might be unaligned? Like in the case of the last fragment being 67
> bytes long?
I was not referring to any users in particular, only what users could do. As an
example, if you did crypto_shash_update() with 32, 15, then 17 bytes, and the
underlying algorithm is poly1305-generic, the last block would end up
misaligned. This doesn't appear possible with your pseudocode because it only
passes in multiples of the block size until the very end. However I don't see
it claimed anywhere that shash API users have to do that.
Eric
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH] poly1305: generic C can be faster on chips with slow unaligned access "Jason A. Donenfeld" <Jason@zx2c4.com> - 2016-11-02 19:00 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access Herbert Xu <herbert@gondor.apana.org.au> - 2016-11-02 21:20 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access Sandy Harris <sandyinchina@gmail.com> - 2016-11-02 21:50 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access "Jason A. Donenfeld" <Jason@zx2c4.com> - 2016-11-02 22:10 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access Herbert Xu <herbert@gondor.apana.org.au> - 2016-11-02 22:10 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access "Jason A. Donenfeld" <Jason@zx2c4.com> - 2016-11-02 22:30 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access Herbert Xu <herbert@gondor.apana.org.au> - 2016-11-02 22:30 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access "Jason A. Donenfeld" <Jason@zx2c4.com> - 2016-11-02 23:10 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access Herbert Xu <herbert@gondor.apana.org.au> - 2016-11-03 01:50 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access "Jason A. Donenfeld" <Jason@zx2c4.com> - 2016-11-03 08:30 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access David Miller <davem@davemloft.net> - 2016-11-03 18:10 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access "Jason A. Donenfeld" <Jason@zx2c4.com> - 2016-11-03 23:30 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access Eric Biggers <ebiggers@google.com> - 2016-11-04 18:40 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access "Jason A. Donenfeld" <Jason@zx2c4.com> - 2016-11-07 19:10 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access "Jason A. Donenfeld" <Jason@zx2c4.com> - 2016-11-07 19:30 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access Eric Biggers <ebiggers@google.com> - 2016-11-07 19:40 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access "Jason A. Donenfeld" <Jason@zx2c4.com> - 2016-11-07 20:10 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access Eric Biggers <ebiggers@google.com> - 2016-11-07 20:30 +0100
Re: [PATCH] poly1305: generic C can be faster on chips with slow unaligned access "Jason A. Donenfeld" <Jason@zx2c4.com> - 2016-11-07 20:50 +0100
[PATCH v2] poly1305: generic C can be faster on chips with slow unaligned access "Jason A. Donenfeld" <Jason@zx2c4.com> - 2016-11-07 20:20 +0100
[PATCH v3] poly1305: generic C can be faster on chips with slow unaligned access "Jason A. Donenfeld" <Jason@zx2c4.com> - 2016-11-07 20:50 +0100
[PATCH v4] poly1305: generic C can be faster on chips with slow unaligned access "Jason A. Donenfeld" <Jason@zx2c4.com> - 2016-11-07 21:00 +0100
Re: [PATCH v4] poly1305: generic C can be faster on chips with slow unaligned access Eric Biggers <ebiggers@google.com> - 2016-11-07 21:50 +0100
Re: [PATCH v4] poly1305: generic C can be faster on chips with slow unaligned access Martin Willi <martin@strongswan.org> - 2016-11-08 09:10 +0100
Re: [PATCH v4] poly1305: generic C can be faster on chips with slow unaligned access Eric Biggers <ebiggers@google.com> - 2016-11-08 18:30 +0100
csiph-web