[v7,00/11] Regression fixes/clean ups in the Qualcomm crypto engine driver
mbox series

Message ID 20210211200128.2886388-1-thara.gopinath@linaro.org
Headers show
Series
  • Regression fixes/clean ups in the Qualcomm crypto engine driver
Related show

Message

Thara Gopinath Feb. 11, 2021, 8:01 p.m. UTC
This patch series is a result of running kernel crypto fuzz tests (by
enabling CONFIG_CRYPTO_MANAGER_EXTRA_TESTS) on the transformations
currently supported via the Qualcomm crypto engine on sdm845.  The first
nine patches are fixes for various regressions found during testing. The
last two patches are minor clean ups of unused variable and parameters.

v6->v7:
	- Fixed sparse warning in patch 4 as pointed out by Herbert Xu.
	  This means the checking if any two keys are same for triple
	  des algorithms has been reverted back to using conditional OR
	  instead of using bitwise OR.
	- Rebased to 5.11-rc7.

v5->v6:
	- Return 0 for zero length messages instead of -EOPNOTSUPP in the
	  cipher algorithms as pointed out by Eric Biggers.
	- Remove the wrong TODO in patch 6 which implied that AES CBC can
	  do partial block sizes when it is actually CTS mode that can as
	  pointed out my Eric Biggers.

v4->v5:
	- Fixed build warning/error in patch for wrong assignment of const
	  pointer as reported by kernel test robot <lkp@intel.com>.
	- Rebased to 5.11-rc6.
v3->v4:
	- Fixed the bug where only two bytes of byte_count were getting
	  saved and restored instead of all eight bytes. Thanks Bjorn for
	  catching this.
	- Split patch 3 "Fix regressions found during fuzz testing" into
	  6 patches as requested by Bjorn.
	- Dropped crypto from all subject headers.
	- Rebased to 5.11-rc5
v2->v3:
        - Made the comparison between keys to check if any two keys are
          same for triple des algorithms constant-time as per
          Nym Seddon's suggestion.
        - Rebased to 5.11-rc4.
v1->v2:
        - Introduced custom struct qce_sha_saved_state to store and restore
          partial sha transformation.
        - Rebased to 5.11-rc3.

Thara Gopinath (11):
  crypto: qce: sha: Restore/save ahash state with custom struct in
    export/import
  crypto: qce: sha: Hold back a block of data to be transferred as part
    of final
  crypto: qce: skcipher: Return unsupported if key1 and key 2 are same
    for AES XTS algorithm
  crypto: qce: skcipher: Return unsupported if any three keys are same
    for DES3 algorithms
  crypto: qce: skcipher: Return error for zero length messages
  crypto: qce: skcipher: Return error for non-blocksize data(ECB/CBC
    algorithms)
  crypto: qce: skcipher: Set ivsize to 0 for ecb(aes)
*** BLURB HERE ***

Thara Gopinath (11):
  crypto: qce: sha: Restore/save ahash state with custom struct in
    export/import
  crypto: qce: sha: Hold back a block of data to be transferred as part
    of final
  crypto: qce: skcipher: Return unsupported if key1 and key 2 are same
    for AES XTS algorithm
  crypto: qce: skcipher: Return unsupported if any three keys are same
    for DES3 algorithms
  crypto: qce: skcipher: Return error for zero length messages
  crypto: qce: skcipher: Return error for non-blocksize data(ECB/CBC
    algorithms)
  crypto: qce: skcipher: Set ivsize to 0 for ecb(aes)
  crypto: qce: skcipher: Improve the conditions for requesting AES
    fallback cipher
  crypto: qce: common: Set data unit size to message length for AES XTS
    transformation
  crypto: qce: Remover src_tbl from qce_cipher_reqctx
  crypto: qce: Remove totallen and offset in qce_start

 drivers/crypto/qce/cipher.h   |   1 -
 drivers/crypto/qce/common.c   |  25 +++---
 drivers/crypto/qce/common.h   |   3 +-
 drivers/crypto/qce/sha.c      | 143 +++++++++++++---------------------
 drivers/crypto/qce/skcipher.c |  69 +++++++++++++---
 5 files changed, 126 insertions(+), 115 deletions(-)

Comments

Thara Gopinath Feb. 24, 2021, 10:33 p.m. UTC | #1
On 2/11/21 3:01 PM, Thara Gopinath wrote:
> This patch series is a result of running kernel crypto fuzz tests (by
> enabling CONFIG_CRYPTO_MANAGER_EXTRA_TESTS) on the transformations
> currently supported via the Qualcomm crypto engine on sdm845.  The first
> nine patches are fixes for various regressions found during testing. The
> last two patches are minor clean ups of unused variable and parameters.

Hi Herbert,

This version has all the comments from you and rest of the community 
fixed. Do you think you can merge this ?

> 
> v6->v7:
> 	- Fixed sparse warning in patch 4 as pointed out by Herbert Xu.
> 	  This means the checking if any two keys are same for triple
> 	  des algorithms has been reverted back to using conditional OR
> 	  instead of using bitwise OR.
> 	- Rebased to 5.11-rc7.
> 
> v5->v6:
> 	- Return 0 for zero length messages instead of -EOPNOTSUPP in the
> 	  cipher algorithms as pointed out by Eric Biggers.
> 	- Remove the wrong TODO in patch 6 which implied that AES CBC can
> 	  do partial block sizes when it is actually CTS mode that can as
> 	  pointed out my Eric Biggers.
> 
> v4->v5:
> 	- Fixed build warning/error in patch for wrong assignment of const
> 	  pointer as reported by kernel test robot <lkp@intel.com>.
> 	- Rebased to 5.11-rc6.
> v3->v4:
> 	- Fixed the bug where only two bytes of byte_count were getting
> 	  saved and restored instead of all eight bytes. Thanks Bjorn for
> 	  catching this.
> 	- Split patch 3 "Fix regressions found during fuzz testing" into
> 	  6 patches as requested by Bjorn.
> 	- Dropped crypto from all subject headers.
> 	- Rebased to 5.11-rc5
> v2->v3:
>          - Made the comparison between keys to check if any two keys are
>            same for triple des algorithms constant-time as per
>            Nym Seddon's suggestion.
>          - Rebased to 5.11-rc4.
> v1->v2:
>          - Introduced custom struct qce_sha_saved_state to store and restore
>            partial sha transformation.
>          - Rebased to 5.11-rc3.
> 
> Thara Gopinath (11):
>    crypto: qce: sha: Restore/save ahash state with custom struct in
>      export/import
>    crypto: qce: sha: Hold back a block of data to be transferred as part
>      of final
>    crypto: qce: skcipher: Return unsupported if key1 and key 2 are same
>      for AES XTS algorithm
>    crypto: qce: skcipher: Return unsupported if any three keys are same
>      for DES3 algorithms
>    crypto: qce: skcipher: Return error for zero length messages
>    crypto: qce: skcipher: Return error for non-blocksize data(ECB/CBC
>      algorithms)
>    crypto: qce: skcipher: Set ivsize to 0 for ecb(aes)
> *** BLURB HERE ***
> 
> Thara Gopinath (11):
>    crypto: qce: sha: Restore/save ahash state with custom struct in
>      export/import
>    crypto: qce: sha: Hold back a block of data to be transferred as part
>      of final
>    crypto: qce: skcipher: Return unsupported if key1 and key 2 are same
>      for AES XTS algorithm
>    crypto: qce: skcipher: Return unsupported if any three keys are same
>      for DES3 algorithms
>    crypto: qce: skcipher: Return error for zero length messages
>    crypto: qce: skcipher: Return error for non-blocksize data(ECB/CBC
>      algorithms)
>    crypto: qce: skcipher: Set ivsize to 0 for ecb(aes)
>    crypto: qce: skcipher: Improve the conditions for requesting AES
>      fallback cipher
>    crypto: qce: common: Set data unit size to message length for AES XTS
>      transformation
>    crypto: qce: Remover src_tbl from qce_cipher_reqctx
>    crypto: qce: Remove totallen and offset in qce_start
> 
>   drivers/crypto/qce/cipher.h   |   1 -
>   drivers/crypto/qce/common.c   |  25 +++---
>   drivers/crypto/qce/common.h   |   3 +-
>   drivers/crypto/qce/sha.c      | 143 +++++++++++++---------------------
>   drivers/crypto/qce/skcipher.c |  69 +++++++++++++---
>   5 files changed, 126 insertions(+), 115 deletions(-)
>
Herbert Xu March 4, 2021, 6:42 a.m. UTC | #2
On Thu, Feb 11, 2021 at 03:01:17PM -0500, Thara Gopinath wrote:
> This patch series is a result of running kernel crypto fuzz tests (by
> enabling CONFIG_CRYPTO_MANAGER_EXTRA_TESTS) on the transformations
> currently supported via the Qualcomm crypto engine on sdm845.  The first
> nine patches are fixes for various regressions found during testing. The
> last two patches are minor clean ups of unused variable and parameters.
> 
> v6->v7:
> 	- Fixed sparse warning in patch 4 as pointed out by Herbert Xu.
> 	  This means the checking if any two keys are same for triple
> 	  des algorithms has been reverted back to using conditional OR
> 	  instead of using bitwise OR.
> 	- Rebased to 5.11-rc7.
> 
> v5->v6:
> 	- Return 0 for zero length messages instead of -EOPNOTSUPP in the
> 	  cipher algorithms as pointed out by Eric Biggers.
> 	- Remove the wrong TODO in patch 6 which implied that AES CBC can
> 	  do partial block sizes when it is actually CTS mode that can as
> 	  pointed out my Eric Biggers.
> 
> v4->v5:
> 	- Fixed build warning/error in patch for wrong assignment of const
> 	  pointer as reported by kernel test robot <lkp@intel.com>.
> 	- Rebased to 5.11-rc6.
> v3->v4:
> 	- Fixed the bug where only two bytes of byte_count were getting
> 	  saved and restored instead of all eight bytes. Thanks Bjorn for
> 	  catching this.
> 	- Split patch 3 "Fix regressions found during fuzz testing" into
> 	  6 patches as requested by Bjorn.
> 	- Dropped crypto from all subject headers.
> 	- Rebased to 5.11-rc5
> v2->v3:
>         - Made the comparison between keys to check if any two keys are
>           same for triple des algorithms constant-time as per
>           Nym Seddon's suggestion.
>         - Rebased to 5.11-rc4.
> v1->v2:
>         - Introduced custom struct qce_sha_saved_state to store and restore
>           partial sha transformation.
>         - Rebased to 5.11-rc3.
> 
> Thara Gopinath (11):
>   crypto: qce: sha: Restore/save ahash state with custom struct in
>     export/import
>   crypto: qce: sha: Hold back a block of data to be transferred as part
>     of final
>   crypto: qce: skcipher: Return unsupported if key1 and key 2 are same
>     for AES XTS algorithm
>   crypto: qce: skcipher: Return unsupported if any three keys are same
>     for DES3 algorithms
>   crypto: qce: skcipher: Return error for zero length messages
>   crypto: qce: skcipher: Return error for non-blocksize data(ECB/CBC
>     algorithms)
>   crypto: qce: skcipher: Set ivsize to 0 for ecb(aes)
> *** BLURB HERE ***
> 
> Thara Gopinath (11):
>   crypto: qce: sha: Restore/save ahash state with custom struct in
>     export/import
>   crypto: qce: sha: Hold back a block of data to be transferred as part
>     of final
>   crypto: qce: skcipher: Return unsupported if key1 and key 2 are same
>     for AES XTS algorithm
>   crypto: qce: skcipher: Return unsupported if any three keys are same
>     for DES3 algorithms
>   crypto: qce: skcipher: Return error for zero length messages
>   crypto: qce: skcipher: Return error for non-blocksize data(ECB/CBC
>     algorithms)
>   crypto: qce: skcipher: Set ivsize to 0 for ecb(aes)
>   crypto: qce: skcipher: Improve the conditions for requesting AES
>     fallback cipher
>   crypto: qce: common: Set data unit size to message length for AES XTS
>     transformation
>   crypto: qce: Remover src_tbl from qce_cipher_reqctx
>   crypto: qce: Remove totallen and offset in qce_start
> 
>  drivers/crypto/qce/cipher.h   |   1 -
>  drivers/crypto/qce/common.c   |  25 +++---
>  drivers/crypto/qce/common.h   |   3 +-
>  drivers/crypto/qce/sha.c      | 143 +++++++++++++---------------------
>  drivers/crypto/qce/skcipher.c |  69 +++++++++++++---
>  5 files changed, 126 insertions(+), 115 deletions(-)

All applied.  Thanks.