Linux cryptographic layer development
 help / color / mirror / Atom feed
* hash import/export
@ 2015-10-11 19:34 Russell King - ARM Linux
  2015-10-11 19:38 ` Boris Brezillon
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Russell King - ARM Linux @ 2015-10-11 19:34 UTC (permalink / raw)
  To: Herbert Xu; +Cc: Boris Brezillon, linux-crypto

Herbert,

I wonder if you can clear something up about the hash export/import
functionality.  In:

http://lists.infradead.org/pipermail/linux-arm-kernel/2015-May/344120.html

you seem to imply that the exported and imported state can't be defined
by the driver.

Boris tells me, "AFAIR, crypto users are expecting md5/sha1/sha256_state
depending on the crypto req state they are exporting".

>From what I can see, there is only one place in the core crypto code
where hash state is exported and imported, and that's in hash_accept(),
and that's always done with the same driver.  The only other place is
in the marvell cesa driver itself when initialising the hmac state.

Is there any reason a driver can't define its own structure to be
exported here which can be shared between each of the different methods
it supports?

Thanks.

-- 
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

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

* Re: hash import/export
  2015-10-11 19:34 hash import/export Russell King - ARM Linux
@ 2015-10-11 19:38 ` Boris Brezillon
  2015-10-11 22:10 ` Russell King - ARM Linux
  2015-10-12  1:44 ` Herbert Xu
  2 siblings, 0 replies; 4+ messages in thread
From: Boris Brezillon @ 2015-10-11 19:38 UTC (permalink / raw)
  To: Russell King - ARM Linux; +Cc: Herbert Xu, linux-crypto

On Sun, 11 Oct 2015 20:34:27 +0100
Russell King - ARM Linux <linux@arm.linux.org.uk> wrote:

> Herbert,
> 
> I wonder if you can clear something up about the hash export/import
> functionality.  In:
> 
> http://lists.infradead.org/pipermail/linux-arm-kernel/2015-May/344120.html
> 
> you seem to imply that the exported and imported state can't be defined
> by the driver.
> 
> Boris tells me, "AFAIR, crypto users are expecting md5/sha1/sha256_state
> depending on the crypto req state they are exporting".

Actually, this was my interpretation of Herbert's answer to this driver
submission [1], but maybe I completely misunderstood his point.

> 
> From what I can see, there is only one place in the core crypto code
> where hash state is exported and imported, and that's in hash_accept(),
> and that's always done with the same driver.  The only other place is
> in the marvell cesa driver itself when initialising the hmac state.
> 
> Is there any reason a driver can't define its own structure to be
> exported here which can be shared between each of the different methods
> it supports?
> 
> Thanks.
> 

[1]http://lists.infradead.org/pipermail/linux-arm-kernel/2015-May/344120.html

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

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

* Re: hash import/export
  2015-10-11 19:34 hash import/export Russell King - ARM Linux
  2015-10-11 19:38 ` Boris Brezillon
@ 2015-10-11 22:10 ` Russell King - ARM Linux
  2015-10-12  1:44 ` Herbert Xu
  2 siblings, 0 replies; 4+ messages in thread
From: Russell King - ARM Linux @ 2015-10-11 22:10 UTC (permalink / raw)
  To: Herbert Xu; +Cc: Boris Brezillon, linux-crypto

On Sun, Oct 11, 2015 at 08:34:27PM +0100, Russell King - ARM Linux wrote:
> Herbert,
> 
> I wonder if you can clear something up about the hash export/import
> functionality.  In:
> 
> http://lists.infradead.org/pipermail/linux-arm-kernel/2015-May/344120.html
> 
> you seem to imply that the exported and imported state can't be defined
> by the driver.
> 
> Boris tells me, "AFAIR, crypto users are expecting md5/sha1/sha256_state
> depending on the crypto req state they are exporting".
> 
> From what I can see, there is only one place in the core crypto code
> where hash state is exported and imported, and that's in hash_accept(),
> and that's always done with the same driver.  The only other place is
> in the marvell cesa driver itself when initialising the hmac state.
> 
> Is there any reason a driver can't define its own structure to be
> exported here which can be shared between each of the different methods
> it supports?

A further question: it looks like struct md5_state's hash member is
always supposed to be in little endian format, whereas struct
sha*_state's state is always big endian format.  Is there a reason
why these are typed 'u32', rather than __le32 and __be32?

This would make the intention here more obvious, and should also allow
the opportunity for sparse to verify that we're getting the endianness
correct everywhere.

Thanks.

-- 
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

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

* Re: hash import/export
  2015-10-11 19:34 hash import/export Russell King - ARM Linux
  2015-10-11 19:38 ` Boris Brezillon
  2015-10-11 22:10 ` Russell King - ARM Linux
@ 2015-10-12  1:44 ` Herbert Xu
  2 siblings, 0 replies; 4+ messages in thread
From: Herbert Xu @ 2015-10-12  1:44 UTC (permalink / raw)
  To: Russell King - ARM Linux; +Cc: Boris Brezillon, linux-crypto

On Sun, Oct 11, 2015 at 08:34:27PM +0100, Russell King - ARM Linux wrote:
> 
> Is there any reason a driver can't define its own structure to be
> exported here which can be shared between each of the different methods
> it supports?

For algorithms in general you can use any format you like and there
is no restriction.  However, for specific algorithms such as crc32c
and family there is a requirement to use a fixed format.

Cheers,
-- 
Email: Herbert Xu <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] 4+ messages in thread

end of thread, other threads:[~2015-10-12  1:44 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-11 19:34 hash import/export Russell King - ARM Linux
2015-10-11 19:38 ` Boris Brezillon
2015-10-11 22:10 ` Russell King - ARM Linux
2015-10-12  1:44 ` Herbert Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox