RE: Questions about the Crypto API

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

 



Hi Herbert


> -----Original Message-----
> From: linux-crypto-owner@xxxxxxxxxxxxxxx [mailto:linux-crypto-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Herbert Xu
> Sent: Tuesday, August 06, 2013 12:30 PM
> To: Marcelo Cerri
> Cc: linux-crypto@xxxxxxxxxxxxxxx
> Subject: Re: Questions about the Crypto API
> 
> On Mon, Aug 05, 2013 at 05:25:57PM -0300, Marcelo Cerri wrote:
> >
> > My first doubt is regarding which kind of concurrency the Crypto API
> > allows. For example, can a single `struct crypto_tfm` be used by two
> > concurrent calls? I'm asking about that because I noticed that for
> 
> Yes.
> 

In this post, you mentioned that tfm is single threaded.
Am I misinterpreting your statement?

http://www.mail-archive.com/linux-crypto@xxxxxxxxxxxxxxx/msg08689.html



> > blkcipher the only implementation-specific context that can be used is
> > allocated inside the tfm struct.
> 
> Both blkcipher and ablkcipher are meant to be fully reentrant.
> So you must take necessary precautions if your implementation is not
> reentrant, e.g., by locking.
> 
> > I'm working to fix some bugs in the NX driver (located in
> > drivers/crypto/nx), and one issue that we are facing is that NFS when
> > using Kerberos uses the same tfm with different kthreads. That causes
> > concurrent accesses to the internal data stored into the context and
> > incorrect results.
> >
> > So my question here is: should this type of concurrency be handled by
> > the driver or a caller is not allowed to use the same tfm for
> > concurrent calls?
> 
> From what you've said NFS seems to be doing the right thing, so the bug
> would be in the driver.
> 
> > My second doubt is regarding the difference between ablkcipher and
> > blkcipher. I do understand their difference from caller's point of
> view.
> > But I'm not sure what are the consequences of implementing a driver
> > using one or another option.
> >
> > For example, can a blkcipher implementation be used asynchronously and
> > vice versa?
> 
> In general which model you pick for drivers depend on what your hardware
> looks like.  For example, padlock-aes uses the blkcipher model because
> the hardware presents itself through a synchronous CPU instruction, while
> most other drivers use the ablkcipher interface because the underlying
> hardware completes asynchronously.
> 
> A blkcipher implementation is always available through both the blkcipher
> and the ablkcipher interface.  While an ablkcipher implementaiton can
> only be used through the ablkcipher interface.
> 
> Cheers,
> --
> Email: Herbert Xu <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


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