** Description changed:

  [Impact]
  
  Ubuntu commit aae817ffb114 "crypto: testmgr - add AES-CFB tests" added
  new test cases to the crypto self-tests. This patch is referring to
  structure members that don't exist in Bionic because the large mainline
  clean up patch 92a4c9fef34c crypto: "testmgr - eliminate redundant
  decryption test vectors" has not been backported.
  
  As a result, Bionic will fail to build if the crypto self tests are
  enabled in the kernel config. This build failure was noticed when
  building a derivative kernel.
  
  This mainline patch is a massive refactoring, complete with the updated
  structure definitions that will resolve the build failure:
  
  92a4c9fef34c "crypto: testmgr - eliminate redundant decryption test
  vectors"
  
  Furthermore, once the pre-requisite patch is backported, the CFB module
  also needs to be backported as the new tests added by Ubuntu commit
  aae817ffb114 "crypto: testmgr - add AES-CFB tests" will attempt to load
  that module at runtime to execute its tests.
  
+ The primary argument for the inclusion of this backport would be that we
+ would not have to amend future crypto test case additions as they come
+ in via stable update sync to use the "older" code structure.
+ 
  [Test Case]
  
  On a Bionic kernel, ensure "CONFIG_CRYPTO_MANAGER_DISABLE_TESTS" is NOT
  set and ensure you have the patch in your tree (master-next should have
  it as of this writing it has not been reverted).
  
  To disable that config option, edit
  debian.master/config/config.common.ubuntu and delete the line  that
  reads "CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y" then update the configs
  with "fakeroot debian/rules updateconfigs"
  
  Build the kernel.
  
  Expected result: crypto/testmgr.o is built successfully and so is the
  rest of the kernel for your build.
  
  Actual result: crypto/testmgr.o fails to build with several errors
  related to data members of a structure that don't exist yet. Like this:
  
  /tmp/kernel-connork-cb14cb8-q7j8/build/crypto/testmgr.h:16148:4: error: 
'const struct cipher_testvec' has no member named 'ptext'
-    .ptext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
-     ^~~~~
+    .ptext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
+     ^~~~~
  /tmp/kernel-connork-cb14cb8-q7j8/build/crypto/testmgr.h:16156:4: error: 
'const struct cipher_testvec' has no member named 'ctext'
-    .ctext = "\x3b\x3f\xd9\x2e\xb7\x2d\xad\x20"
-     ^~~~~
+    .ctext = "\x3b\x3f\xd9\x2e\xb7\x2d\xad\x20"
+     ^~~~~
  /tmp/kernel-connork-cb14cb8-q7j8/build/crypto/testmgr.h:16164:4: error: 
'const struct cipher_testvec' has no member named 'len'; did you mean 'klen'?
-    .len = 64,
+    .len = 64,
  
  [Testing]
  
  After backporting the pre-requisite refactor patch and the CFB module
  that the new tests depend on, I compiled and booted into the kernel and
  ran the Crypto test suite by loading the "tcrypt" module. I compared the
  test suite results with a Bionic kernel that does NOT have this backport
  and confirmed they both emitted the same test results from the crypto
  self tests:
  
  [   15.536400] alg: hash: Failed to load transform for hmac(crc32): -2
  [   15.552214] alg: cprng: Failed to load transform for ansi_cprng: -2
  [   15.590773] tcrypt: one or more tests failed!
  
  No new test failures have been added as a result of this backport.
  
  [Regression Potential]
  
  There is a chance for breakage within the test suite because the primary
  patch that resolves this build failure, 92a4c9fef34c "crypto: testmgr -
  eliminate redundant decryption test vectors" is not practical to review.
  
  However, this backport was accomplished with the very same awk script
  supplied by the original patch author and the results between one kernel
  and a modified kernel are consistent.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1841264

Title:
  crypto/testmgr.o fails to build due to struct cipher_testvec not
  having data members: ctext, ptext, len

Status in linux package in Ubuntu:
  Invalid
Status in linux source package in Bionic:
  In Progress

Bug description:
  [Impact]

  Ubuntu commit aae817ffb114 "crypto: testmgr - add AES-CFB tests" added
  new test cases to the crypto self-tests. This patch is referring to
  structure members that don't exist in Bionic because the large
  mainline clean up patch 92a4c9fef34c crypto: "testmgr - eliminate
  redundant decryption test vectors" has not been backported.

  As a result, Bionic will fail to build if the crypto self tests are
  enabled in the kernel config. This build failure was noticed when
  building a derivative kernel.

  This mainline patch is a massive refactoring, complete with the
  updated structure definitions that will resolve the build failure:

  92a4c9fef34c "crypto: testmgr - eliminate redundant decryption test
  vectors"

  Furthermore, once the pre-requisite patch is backported, the CFB
  module also needs to be backported as the new tests added by Ubuntu
  commit aae817ffb114 "crypto: testmgr - add AES-CFB tests" will attempt
  to load that module at runtime to execute its tests.

  The primary argument for the inclusion of this backport would be that
  we would not have to amend future crypto test case additions as they
  come in via stable update sync to use the "older" code structure.

  [Test Case]

  On a Bionic kernel, ensure "CONFIG_CRYPTO_MANAGER_DISABLE_TESTS" is
  NOT set and ensure you have the patch in your tree (master-next should
  have it as of this writing it has not been reverted).

  To disable that config option, edit
  debian.master/config/config.common.ubuntu and delete the line  that
  reads "CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y" then update the configs
  with "fakeroot debian/rules updateconfigs"

  Build the kernel.

  Expected result: crypto/testmgr.o is built successfully and so is the
  rest of the kernel for your build.

  Actual result: crypto/testmgr.o fails to build with several errors
  related to data members of a structure that don't exist yet. Like
  this:

  /tmp/kernel-connork-cb14cb8-q7j8/build/crypto/testmgr.h:16148:4: error: 
'const struct cipher_testvec' has no member named 'ptext'
     .ptext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
      ^~~~~
  /tmp/kernel-connork-cb14cb8-q7j8/build/crypto/testmgr.h:16156:4: error: 
'const struct cipher_testvec' has no member named 'ctext'
     .ctext = "\x3b\x3f\xd9\x2e\xb7\x2d\xad\x20"
      ^~~~~
  /tmp/kernel-connork-cb14cb8-q7j8/build/crypto/testmgr.h:16164:4: error: 
'const struct cipher_testvec' has no member named 'len'; did you mean 'klen'?
     .len = 64,

  [Testing]

  After backporting the pre-requisite refactor patch and the CFB module
  that the new tests depend on, I compiled and booted into the kernel
  and ran the Crypto test suite by loading the "tcrypt" module. I
  compared the test suite results with a Bionic kernel that does NOT
  have this backport and confirmed they both emitted the same test
  results from the crypto self tests:

  [   15.536400] alg: hash: Failed to load transform for hmac(crc32): -2
  [   15.552214] alg: cprng: Failed to load transform for ansi_cprng: -2
  [   15.590773] tcrypt: one or more tests failed!

  No new test failures have been added as a result of this backport.

  [Regression Potential]

  There is a chance for breakage within the test suite because the
  primary patch that resolves this build failure, 92a4c9fef34c "crypto:
  testmgr - eliminate redundant decryption test vectors" is not
  practical to review.

  However, this backport was accomplished with the very same awk script
  supplied by the original patch author and the results between one
  kernel and a modified kernel are consistent.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1841264/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to