Test builds are available in this PPA:
https://launchpad.net/~fheimes/+archive/ubuntu/lp2130425

** Description changed:

  SRU Justification:
  
  [ Impact ]
  
-  * The zkey EKMFWeb KMS plugin commands
-    'zkey kms configure --gen-csr <file> ...' and
-    'zkey kms configure --gen-self-signed-cert <file> ...' always sign
-    the generated certificate signing request (CSR) or self-signed
-    certificate with RSA-PSS when the EKMFWeb identity key is an
-    RSA key, even though RSA-PSS was never requested.
+  * The zkey EKMFWeb KMS plugin commands
+    'zkey kms configure --gen-csr <file> ...' and
+    'zkey kms configure --gen-self-signed-cert <file> ...' always sign
+    the generated certificate signing request (CSR) or self-signed
+    certificate with RSA-PSS when the EKMFWeb identity key is an
+    RSA key, even though RSA-PSS was never requested.
  
-  * Not all versions of the IBM EKMF Web server accept certificates
-    signed with RSA-PSS. As a result, users with an RSA-type identity
-    key template configured in EKMF Web cannot complete
-    'zkey kms configure --register <cert>', which fails with:
-      EKMFWeb: 34: Unexpected error: 'Error during translating public
-      key from X509 Certificate'
+  * Not all versions of the IBM EKMF Web server accept certificates
+    signed with RSA-PSS. As a result, users with an RSA-type identity
+    key template configured in EKMF Web cannot complete
+    'zkey kms configure --register <cert>', which fails with:
+      EKMFWeb: 34: Unexpected error: 'Error during translating public
+      key from X509 Certificate'
  
-  * Root cause: in libekmfweb's ekmf_generate_csr() and
-    ekmf_generate_ss_cert() (libekmfweb/ekmfweb.c), the RSA-PSS
-    parameter structure is always built and its (non-NULL) address is
-    unconditionally passed down to the underlying libseckey
-    SK_OPENSSL_generate_csr()/SK_OPENSSL_generate_ss_cert() helpers.
-    Those helpers build an RSA-PSS key/signature
-    
-  * This was introduced by the rework to use libseckey for secure-key
-    crypto operations (s390-tools 2.17.0, upstream commit
-    26c34a49b1e4).
+  * Root cause: in libekmfweb's ekmf_generate_csr() and
+    ekmf_generate_ss_cert() (libekmfweb/ekmfweb.c), the RSA-PSS
+    parameter structure is always built and its (non-NULL) address is
+    unconditionally passed down to the underlying libseckey
+    SK_OPENSSL_generate_csr()/SK_OPENSSL_generate_ss_cert() helpers.
+    Those helpers build an RSA-PSS key/signature
  
-  * The fix (upstream commit e4dcf084c5a5, already released in the
-    current Ubuntu devel / stonking and in resolute) only builds/passes
-    the RSA-PSS parameter pointer when the caller really requested
-    RSA-PSS, otherwise RSA-PKCS#1.
+  * This was introduced by the rework to use libseckey for secure-key
+    crypto operations (s390-tools 2.17.0, upstream commit
+    26c34a49b1e4).
  
-  * This is a small, self-contained, upstream-accepted 2-hunk change
-    confined to two functions in one file; no ABI/API or on-disk
-    format changes.
+  * The fix (upstream commit e4dcf084c5a5, already released in the
+    current Ubuntu devel / stonking and in resolute) only builds/passes
+    the RSA-PSS parameter pointer when the caller really requested
+    RSA-PSS, otherwise RSA-PKCS#1.
+ 
+  * This is a small, self-contained, upstream-accepted 2-hunk change
+    confined to two functions in one file; no ABI/API or on-disk
+    format changes.
  
  [ Test Plan ]
  
-  Reproducing this bug requires an s390x system with a Crypto
-  Express adapter configured for CCA and access to an EKMF Web server
-  whose identity-key template is of type RSA (this is inherent to the
-  affected code path: zkey's identity key and its signing algorithm
-  are provided by IBM CCA hardware and by the server-side EKMF Web
-  key template).
+  Reproducing this bug requires an s390x system with a Crypto
+  Express adapter configured for CCA and access to an EKMF Web server
+  whose identity-key template is of type RSA (this is inherent to the
+  affected code path: zkey's identity key and its signing algorithm
+  are provided by IBM CCA hardware and by the server-side EKMF Web
+  key template).
  
-  1. Install the updated s390-tools package (2.31.0-0ubuntu5.4 or
-     later) on an s390x test system with an s390x Crypto Express
-     (CEX) adapter in CCA-coprocessor mode, and enable the zkey
-     EKMFWeb plugin:
-        # zkey kms bind EKMFWeb
-        # zkey kms configure --apqns <card.domain>
-        # zkey kms configure --ekmfweb-url https://<ekmfweb-server>
+  1. Install the updated s390-tools package (2.31.0-0ubuntu5.4 or
+     later) on an s390x test system with an s390x Crypto Express
+     (CEX) adapter in CCA-coprocessor mode, and enable the zkey
+     EKMFWeb plugin:
+        # zkey kms bind EKMFWeb
+        # zkey kms configure --apqns <card.domain>
+        # zkey kms configure --ekmfweb-url https://<ekmfweb-server>
  
-  2. Configure/point the EKMF Web server-side identity-key template
-     used for this client to key-type RSA (2048/3072/4096) rather
-     than ECDSA.
+  2. Configure/point the EKMF Web server-side identity-key template
+     used for this client to key-type RSA (2048/3072/4096) rather
+     than ECDSA.
  
-  3. Generate a CSR (or self-signed certificate) with the identity
-     key:
-        # zkey kms configure --gen-csr csr.pem \
-              --cert-subject "CN=test.zkey.client;OU=Example;C=US"
-     or
-        # zkey kms configure --gen-self-signed-cert cert.pem \
-              --cert-subject "CN=test.zkey.client;OU=Example;C=US"
+  3. Generate a CSR (or self-signed certificate) with the identity
+     key:
+        # zkey kms configure --gen-csr csr.pem \
+              --cert-subject "CN=test.zkey.client;OU=Example;C=US"
+     or
+        # zkey kms configure --gen-self-signed-cert cert.pem \
+              --cert-subject "CN=test.zkey.client;OU=Example;C=US"
  
-  4. Inspect the signature algorithm of the generated file:
-        # openssl req  -in csr.pem  -noout -text | grep "Signature Algorithm"
-        # openssl x509 -in cert.pem -noout -text | grep "Signature Algorithm"
+  4. Inspect the signature algorithm of the generated file:
+        # openssl req  -in csr.pem  -noout -text | grep "Signature Algorithm"
+        # openssl x509 -in cert.pem -noout -text | grep "Signature Algorithm"
  
-     - Before the fix: "Signature Algorithm: rsassaPss"
-       (RSA-PSS, wrong).
-     - After the fix:  "Signature Algorithm: sha256WithRSAEncryption"
-       (or the configured digest) - RSA-PKCS#1, correct.
+     - Before the fix: "Signature Algorithm: rsassaPss"
+       (RSA-PSS, wrong).
+     - After the fix:  "Signature Algorithm: sha256WithRSAEncryption"
+       (or the configured digest) - RSA-PKCS#1, correct.
  
-  Note: Due to the CCA hardware and EKMF Web server dependency,
-  functional verification will be done by the IBM.
+  Note: Due to the CCA hardware and EKMF Web server dependency,
+  functional verification will be done by the IBM.
  
  [ Where problems could occur ]
  
-  * The change only affects the two call sites where the RSA-PSS
-    parameter pointer is now conditionally built instead of always
-    built. A regression would most likely manifest as:
-    - CSR/certificate generation using the wrong signing algorithm
-      again (i.e. the fix doesn't take effect, no change from current
-      buggy behaviour) - no new failure mode, same as pre-SRU.
-    - Or, if the condition were inverted/broken, RSA-PSS could now
-      never be produced even when later enabled via
-      '--cert-rsa-pss' - this would only affect users
-      who explicitly opt into RSA-PSS, a feature not built into this
-      version of the package, so no currently-supported workflow is
-      at risk.
-    - Malformed CSR/certificate generation (OpenSSL would simply fail
-      the signing operation, causing 'zkey kms configure --gen-csr/
-      --gen-self-signed-cert' to error out) rather than silently
-      producing a corrupt file, since SK_OPENSSL_setup_sign_context()
-      and X509_REQ_sign_ctx()/X509_sign_ctx() would fail cleanly on
-      an inconsistent pkey/padding combination.
-  * ECDSA identity keys are unaffected: rsa_pss_params is ignored for
-    EC keys in libseckey, so no regression is expected there; this is
-    nonetheless included in the test plan as a sanity/regression
-    check.
-  * The change is confined to the zkey EKMFWeb KMS plugin
-    (libekmfweb/zkey-ekmfweb) code path; no other consumer of
-    libekmfweb or libseckey in the s390-tools source is affected.
+  * The change only affects the two call sites where the RSA-PSS
+    parameter pointer is now conditionally built instead of always
+    built. A regression would most likely manifest as:
+    - CSR/certificate generation using the wrong signing algorithm
+      again (i.e. the fix doesn't take effect, no change from current
+      buggy behaviour) - no new failure mode, same as pre-SRU.
+    - Or, if the condition were inverted/broken, RSA-PSS could now
+      never be produced even when later enabled via
+      '--cert-rsa-pss' - this would only affect users
+      who explicitly opt into RSA-PSS, a feature not built into this
+      version of the package, so no currently-supported workflow is
+      at risk.
+    - Malformed CSR/certificate generation (OpenSSL would simply fail
+      the signing operation, causing 'zkey kms configure --gen-csr/
+      --gen-self-signed-cert' to error out) rather than silently
+      producing a corrupt file, since SK_OPENSSL_setup_sign_context()
+      and X509_REQ_sign_ctx()/X509_sign_ctx() would fail cleanly on
+      an inconsistent pkey/padding combination.
+  * ECDSA identity keys are unaffected: rsa_pss_params is ignored for
+    EC keys in libseckey, so no regression is expected there; this is
+    nonetheless included in the test plan as a sanity/regression
+    check.
+  * The change is confined to the zkey EKMFWeb KMS plugin
+    (libekmfweb/zkey-ekmfweb) code path; no other consumer of
+    libekmfweb or libseckey in the s390-tools source is affected.
  
  [ Other Info ]
  
-  * Upstream commit: 
https://github.com/ibm-s390-linux/s390-tools/commit/e4dcf084c5a54f8030da39707c5fa0fbb7ae9681
-  * Already fix-released in current Ubuntu devel / stonking and
-    in resolute.
-  * Noble is the only remaining supported series still
-    affected.
-  * This fix is being uploaded to noble together with the unrelated
-    fix for LP: #2162891 (missing 'adduser' dependency) in the same
-    2.31.0-0ubuntu5.4 upload; each bug is independently justified.
- 
+  * Upstream commit: 
https://github.com/ibm-s390-linux/s390-tools/commit/e4dcf084c5a54f8030da39707c5fa0fbb7ae9681
+  * Already fix-released in current Ubuntu devel / stonking and
+    in resolute.
+  * Noble is the only remaining supported series still
+    affected.
+  * This fix is being uploaded to noble together with the unrelated
+    fix for LP: #2162891 (missing 'adduser' dependency) in the same
+    2.31.0-0ubuntu5.4 upload; each bug is independently justified.
+  * Test builds are available in this PPA:
+    https://launchpad.net/~fheimes/+archive/ubuntu/lp2130425
  
  __________
  
  Description:   libekmfweb: Fix gen of cert or CSR to use RSA not RSA-PSS
  
  Symptom:       The zkey EKMFWeb-plugin commands 'zkey kms configure --gen-csr
                 ...' and/or 'zkey kms configure --gen-self-signed-cert ...'
                 erroneously generate certificates or certificate-signing-
                 requests signed using RSA-PSS instead of using RSA-PKCS when
                 an RSA identity key is used (as defined in EKMFWeb key template
                 for the identity key).
                 EKMFWeb might not support certificates signed with RSA-PSS
                 dependent on the version, and thus the import of such a
                 certificate fails with "EKMFWeb: 34: Unexpected error: 'Error
                 during translating public key from X509 Certificate'" during
                 the 'zkey kms configure --register ...' command.
  
  Problem:       Currently a certificate or certificate signing request 
generated
                 by the zkey EKMFWeb library erroneously always uses RSA-PSS as
                 signing algorithm, although EKMFWeb does not support RSA-PSS
                 certificates in all versions.
                 This bug was introduced with the rework to use libseckey for
                 secure key crypto operations with s390-tools version 2.17.0.
  
  Solution:      Only pass the RSS-PSS parameters to the low-level function
                 when the use of RSA-PSS is intended.
  
  Reproduction:  Setup the zkey EKMFWeb plugin and use an RSA-type identity key
                 template in EKMFWeb. Then generate a certificate or CSR and
                 try to register the certificate with EKMFWeb.
  
  Upstream-ID:   e4dcf084c5a54f8030da39707c5fa0fbb7ae9681

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2130425

Title:
  [Ubuntu 24.04] libekmfweb: Fix gen of cert or CSR to use RSA not RSA-
  PSS

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/2130425/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to