All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Parallel crypto/IPsec v5
@ 2009-08-31  9:11 Steffen Klassert
  2009-08-31  9:12 ` [PATCH 1/2] padata: generic interface for parallel processing Steffen Klassert
  2009-08-31  9:14 ` [PATCH 2/2] crypto: pcrypt - Add pcrypt crypto parallelization wrapper Steffen Klassert
  0 siblings, 2 replies; 9+ messages in thread
From: Steffen Klassert @ 2009-08-31  9:11 UTC (permalink / raw)
  To: Herbert Xu; +Cc: David Miller, linux-crypto

This patchset adds the 'pcrypt' parallel crypto template. With this template it
is possible to process the crypto requests of a transform in parallel without
getting request reorder. This is in particular interesting for IPsec.

The parallel crypto template is based on a generic parallelization/serialization
method. This method uses the remote softirq invocation infrastructure for
parallelization and serialization. With this method data objects can be
processed in parallel, starting at some given point.
After doing some expensive operations in parallel, it is possible to serialize
again. The parallelized data objects return after serialization in the order as
they were before the parallelization. In the case of IPsec, this makes it
possible to run the expensive parts in parallel without getting packet
reordering.

Changes from v4:

- Use the dynamic percpu allocator

- Drop of the obsolete eseqiv changes (eseqiv is the default IV generator
  for blockcipher algorithms on smp machines now).

Changes from v3:

- The generic aead wrapper is dropped.

- tcrypt is extended to test algorithms by name. So it is possible to
  instantiate pcrypt by doing e.g.:
  modprobe tcrypt alg="pcrypt(authenc(hmac(sha1),cbc(aes)))" type=3

Changes from v2:

- The xfrm netlink configuration code is dropped,
  this will be an extra patchset.

- Add generic aead wrapper interface to be able to wrap an aead algorithm
  with an arbitrary crypto template. 

- Convert pcrypt to use the generic aead wrapper.

- Add support for aead algorithms to eseqiv.

- Add support for the pcrypt aead wrapper to authenc. It's now possible to
  choose for pcrypt as the default authenc wrapper with a module parameter.

- Patchset applies to linux-2.6 git current.

Changes from v1:

- cpu_chainiv is dropped, pcrypt uses eseqiv as it's IV generator now.

- Add a xfrm netlink message to be able to choose for pcrypt from userspace.

- Use pcrypt just if it is selected from userspace.

Steffen

^ permalink raw reply	[flat|nested] 9+ messages in thread
* [PATCH 0/2] Parallel crypto/IPsec v6
@ 2009-10-08  7:25 Steffen Klassert
  2009-10-08  7:27 ` [PATCH 1/2] padata: generic interface for parallel processing Steffen Klassert
  0 siblings, 1 reply; 9+ messages in thread
From: Steffen Klassert @ 2009-10-08  7:25 UTC (permalink / raw)
  To: Herbert Xu, David Miller; +Cc: linux-crypto

This patchset adds the 'pcrypt' parallel crypto template. With this template it
is possible to process the crypto requests of a transform in parallel without
getting request reorder. This is in particular interesting for IPsec.

The parallel crypto template is based on a generic parallelization/serialization
method. This method uses the remote softirq invocation infrastructure for
parallelization and serialization. With this method data objects can be
processed in parallel, starting at some given point.
After doing some expensive operations in parallel, it is possible to serialize
again. The parallelized data objects return after serialization in the order as
they were before the parallelization. In the case of IPsec, this makes it
possible to run the expensive parts in parallel without getting packet
reordering.

Changes from v5:

- rebased to linux-2.6 git current

Changes from v4:

- Use the dynamic percpu allocator

- Drop of the obsolete eseqiv changes (eseqiv is the default IV generator
  for blockcipher algorithms on smp machines now).

Changes from v3:

- The generic aead wrapper is dropped.

- tcrypt is extended to test algorithms by name. So it is possible to
  instantiate pcrypt by doing e.g.:
  modprobe tcrypt alg="pcrypt(authenc(hmac(sha1),cbc(aes)))" type=3

Changes from v2:

- The xfrm netlink configuration code is dropped,
  this will be an extra patchset.

- Add generic aead wrapper interface to be able to wrap an aead algorithm
  with an arbitrary crypto template. 

- Convert pcrypt to use the generic aead wrapper.

- Add support for aead algorithms to eseqiv.

- Add support for the pcrypt aead wrapper to authenc. It's now possible to
  choose for pcrypt as the default authenc wrapper with a module parameter.

- Patchset applies to linux-2.6 git current.

Changes from v1:

- cpu_chainiv is dropped, pcrypt uses eseqiv as it's IV generator now.

- Add a xfrm netlink message to be able to choose for pcrypt from userspace.

- Use pcrypt just if it is selected from userspace.

Steffen

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: [RFC] [PATCH 2/5] aead: Add generic aead wrapper interface
@ 2009-06-03 11:59 Herbert Xu
  2009-06-05  9:20 ` Steffen Klassert
  0 siblings, 1 reply; 9+ messages in thread
From: Herbert Xu @ 2009-06-03 11:59 UTC (permalink / raw)
  To: Steffen Klassert; +Cc: David Miller, linux-crypto

On Wed, Jun 03, 2009 at 01:23:53PM +0200, Steffen Klassert wrote:
> On Wed, Jun 03, 2009 at 07:40:50PM +1000, Herbert Xu wrote:
> > 
> > I see.  How about if we let tcrypt test algorithms by name, e.g.,
> > something like
> > 
> > 	modprobe tcrypt alg='pcrypt(authenc(hmac(sha1),cbc(aes))'
> > 
> 
> I'm not that sure whether this does what I want.
> 
> If pcrypt has cra_name = pcrypt(authenc(hmac(sha1),cbc(aes))) this
> would instatiate this algorithm, but esp wants an algorithm with
> cra_name = authenc(hmac(sha1),cbc(aes)). 
> These names are not matching, so __crypto_alg_lookup() will not
> choose for the pcrypt version regardless of the higher priority.

When pcrypt instantiates an algorithm, it should set cra_name to
%s and cra_driver_name to pcrypt(%s).  So as long as the pcrypt
priority is higher than the underlying algorithm, it should all
work.

See for instance how cryptd does it.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-10-08  7:27 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-31  9:11 [PATCH 0/2] Parallel crypto/IPsec v5 Steffen Klassert
2009-08-31  9:12 ` [PATCH 1/2] padata: generic interface for parallel processing Steffen Klassert
2009-09-19 23:19   ` Herbert Xu
2009-10-07 14:22     ` Steffen Klassert
2009-10-07 20:44       ` David Miller
2009-08-31  9:14 ` [PATCH 2/2] crypto: pcrypt - Add pcrypt crypto parallelization wrapper Steffen Klassert
2009-09-19 23:20   ` Herbert Xu
  -- strict thread matches above, loose matches on Subject: below --
2009-10-08  7:25 [PATCH 0/2] Parallel crypto/IPsec v6 Steffen Klassert
2009-10-08  7:27 ` [PATCH 1/2] padata: generic interface for parallel processing Steffen Klassert
2009-06-03 11:59 [RFC] [PATCH 2/5] aead: Add generic aead wrapper interface Herbert Xu
2009-06-05  9:20 ` Steffen Klassert
2009-06-05  9:20   ` Herbert Xu
2009-06-05  9:34     ` Steffen Klassert
2009-06-08  5:28       ` Herbert Xu
2009-06-08  6:45         ` Steffen Klassert
2009-06-25  6:51           ` Herbert Xu
2009-06-29 11:04             ` Steffen Klassert
2009-06-29 11:59               ` Herbert Xu
2009-06-29 13:52                 ` Steffen Klassert
2009-06-29 13:55                   ` [PATCH 1/2] padata: generic interface for parallel processing Steffen Klassert

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.