From 27d19d64aa11c5039a632f6fb56ea33f2aef21c3 Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Tue, 27 Aug 2024 23:44:17 +0000 Subject: [PATCH] test: increase key size for ca2-cert.pem Refs: https://github.com/nodejs/node/pull/44498 Refs: https://github.com/nodejs/node/issues/53382 Key sizes were increased to 2048 in PR 44498 including the configuration file for the generation of ca2-cert.pem. However, it seems like updating ca2-cert.pem and related files themselves were missed as they were not updated in the PR and the ca2-cert.pem reported as being associated with a 1024 bit key. I believe that was the cause of some of the failures mentioned in https://github.com/nodejs/node/issues/53382 as OpenSSL 3.2 increased the default security level from 1 to 2 and that would mean that certificates associated with keys of 1024 bits would no longer be accepted. This PR updates the key size for ca2-cert.pem. It was not necessary to change the config, only run the generation for the ca2-cert.pem and related files. Signed-off-by: Michael Dawson --- test/fixtures/keys/agent10-cert.pem | 80 +++++++++++++----------- test/fixtures/keys/agent10.pfx | Bin 4317 -> 4736 bytes test/fixtures/keys/agent3-cert.pem | 35 ++++++----- test/fixtures/keys/agent4-cert.pem | 41 +++++++----- test/fixtures/keys/agent5-cert.pem | 41 +++++++----- test/fixtures/keys/ca2-cert.pem | 33 +++++----- test/fixtures/keys/ca2-crl.pem | 20 +++--- test/fixtures/keys/ca2-database.txt | 1 + test/fixtures/keys/ca2-database.txt.old | 1 + test/fixtures/keys/ca2-key.pem | 44 ++++++++----- test/fixtures/keys/ca4-cert.pem | 41 +++++++----- 11 files changed, 195 insertions(+), 142 deletions(-) diff --git a/test/fixtures/keys/agent10-cert.pem b/test/fixtures/keys/agent10-cert.pem index ce0e515e823d1b..59bb0705757d5b 100644 --- a/test/fixtures/keys/agent10-cert.pem +++ b/test/fixtures/keys/agent10-cert.pem @@ -1,41 +1,47 @@ -----BEGIN CERTIFICATE----- -MIIDjjCCAnagAwIBAgITMVaZ0eX5Kp8NI4vaKFVI592wTjANBgkqhkiG9w0BAQsF -ADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjEfMB0G -A1UECgwWVGhlIE5vZGUuanMgRm91bmRhdGlvbjEQMA4GA1UECwwHTm9kZS5qczEM -MAoGA1UEAwwDY2E0MR4wHAYJKoZIhvcNAQkBFg9jYTRAZXhhbXBsZS5vcmcwIBcN -MjIwOTAzMjE0MDM3WhgPMjI5NjA2MTcyMTQwMzdaMHgxCzAJBgNVBAYTAlVTMQsw -CQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxHzAdBgNVBAoMFlRoZSBOb2RlLmpzIEZv -dW5kYXRpb24xEDAOBgNVBAsMB05vZGUuanMxHDAaBgNVBAMME2FnZW50MTAuZXhh -bXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP49yjMES5 -1sfYG4ac06jR7DnSizMDgW+0V6CFPguv6p1D08aBA60mhY8+tjsbin3DYRiTB2HN -7C9svZ2cAffKK9W/40G6+jfJuB6I8g+LtdZ9hViw2RC0k4PFLzpG3VsJRpM4Wfos -/ubZqBuNGLN+K68sAFU0jbUra4dtJQXMi7SlFlJIUx2g10OF312uJcREfFVgNAw4 -EIZ2H7bmGtpE0p3UfBir4HTy5nz4ruYCbbzNWDuX7RIGZSXtqaQc7P9QPvuLzspl -feI8S2oRTLRIgDEatXJFlIWzGu1kF7XjftOrnFHwRWICK6joqSzdLhSS02qfqIRF -JFVZ8QNq11bhAgMBAAEwDQYJKoZIhvcNAQELBQADggEBACenzaglCUisBHiI7H/v -tOF/75jxDUO8FmV3mksh33EpTmzoBiQD1DiTFQu/EEJ/iAbdTRJ1PVnJsMTFH0Bm -7SmkYOCpETleXjU1MwHZIvh/gGa/CjLZhop26FkK2oqENl7iaM9vvqxxQ8H4Niit -ay3cn+aB9o8MjTH9Ki9iH0LS6bwtqqRimXXX0sx3HTUnFxD/7tzE7s6t7ayk+rIJ -6mBeQAw3UjNzjtLTvSxHoPFto7z5imF+6/v236UlOTdQpkbRS1KlxA8wm/NisWeq -TLjPh5BkZof+CwTUoAFK+WILsIHuvVY9SZBNcsQvsBao/whRR2Z8bU1HDAh8jHnk -4wo= +MIIDijCCAnICFAa1gku/rBMKem53dr6+kaDTIvSCMA0GCSqGSIb3DQEBCwUAMIGI +MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExCzAJBgNVBAcMAlNGMR8wHQYDVQQK +DBZUaGUgTm9kZS5qcyBGb3VuZGF0aW9uMRAwDgYDVQQLDAdOb2RlLmpzMQwwCgYD +VQQDDANjYTQxHjAcBgkqhkiG9w0BCQEWD2NhNEBleGFtcGxlLm9yZzAgFw0yNDA4 +MjcyMjU4NDRaGA8yMjk4MDYxMTIyNTg0NFoweDELMAkGA1UEBhMCVVMxCzAJBgNV +BAgMAkNBMQswCQYDVQQHDAJTRjEfMB0GA1UECgwWVGhlIE5vZGUuanMgRm91bmRh +dGlvbjEQMA4GA1UECwwHTm9kZS5qczEcMBoGA1UEAwwTYWdlbnQxMC5leGFtcGxl +LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM/j3KMwRLnWx9gb +hpzTqNHsOdKLMwOBb7RXoIU+C6/qnUPTxoEDrSaFjz62OxuKfcNhGJMHYc3sL2y9 +nZwB98or1b/jQbr6N8m4HojyD4u11n2FWLDZELSTg8UvOkbdWwlGkzhZ+iz+5tmo +G40Ys34rrywAVTSNtStrh20lBcyLtKUWUkhTHaDXQ4XfXa4lxER8VWA0DDgQhnYf +tuYa2kTSndR8GKvgdPLmfPiu5gJtvM1YO5ftEgZlJe2ppBzs/1A++4vOymV94jxL +ahFMtEiAMRq1ckWUhbMa7WQXteN+06ucUfBFYgIrqOipLN0uFJLTap+ohEUkVVnx +A2rXVuECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAy0rm8E+PR+ZuaQsz8Q3s0Y7I +fNICuwEyByMcwiwCjvMM2FwNZbnmagmSQ2eo+jD0GMAcBLS61AWhC8tPqO6DfFOj +7L07NYJWTKQMqAsv3n6Nl0uXd8Aa4iGDhsMeTZXXk4E/GsZZ8T4pDmE8TtY6285Y +ONU7uKKFcnIfQwtcEUnpwqSAYmQxKa+rhQ974rW3hBCxvtrwNRXsMjCoPyfkIuOz +9P6ThZfMWlmuKg852Yi2VglaOrxakQInQGz4Q0JHyROd/e9m3J+t/QFR9VqtRnX8 +UEOlxD8iazk//VFd7WrO2jzqjXFIzBNrdvmsNsP+8uIjrGJtHdKeHL7v5V687A== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIDFzCCAoCgAwIBAgIJAJHwBmNgafKfMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNV -BAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzANBgNVBAoMBkpveWVu -dDEQMA4GA1UECwwHTm9kZS5qczEMMAoGA1UEAwwDY2EyMSAwHgYJKoZIhvcNAQkB -FhFyeUB0aW55Y2xvdWRzLm9yZzAgFw0yMjA5MDMxNDQ2NTFaGA8yMjk2MDYxNzE0 -NDY1MVowgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0Yx -HzAdBgNVBAoMFlRoZSBOb2RlLmpzIEZvdW5kYXRpb24xEDAOBgNVBAsMB05vZGUu -anMxDDAKBgNVBAMMA2NhNDEeMBwGCSqGSIb3DQEJARYPY2E0QGV4YW1wbGUub3Jn -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0HnUahyfA25t8kaziu0i -vVMkTWntm0pJ8oemeO7yCGaY4QHEwN+QUzrzO7y7ngl2Dt76eEvj0mrgaW8Ao7Ns -ePfp3663g8RrBsb4cR1da2Tc8kpXCqgwbcTlm8HI/7OAdHGA2YDLNv7iyVk9meHM -gYfO9dVgrZ7RxfnGwNMJdNjYJrd02xeU6euoKl9j/ZWCG5xHAM2xAXOKHGm8toIm -+Ss6iZXY8kypy7Fjwyv7jMT8V+pzIWu24xd3Y3s07r59nkFmQ29nHMTaLP7Tf3TY -MBI5mp8fet732aBoywpQ/w05LR9gdM1jpUvIlmhj4qGskv17AMEmRecwic3opq/b -yQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4GBADsFOR+N -Bcm2FyHOutoFpQn70qAFg0xlO3NTH87uubbs6rf3LDrsskhjskfs6wpUk56IJOoU -H7+F7aDDtSrnxzxxC5eZeGyaN05T5N01OdK3xvqUnr7mg/Ce0jnxrZhxHI8SHOqs -Kwrg4fRasUHGhH286Y13xOj2pLSrVoSbkXsA +MIIEaDCCA1CgAwIBAgIUDxaIwCfB2vttbQL/LlnVg4mwMUAwDQYJKoZIhvcNAQEL +BQAwejELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjEPMA0G +A1UECgwGSm95ZW50MRAwDgYDVQQLDAdOb2RlLmpzMQwwCgYDVQQDDANjYTIxIDAe +BgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMCAXDTI0MDgyNzIyNTg0NFoY +DzIyOTgwNjExMjI1ODQ0WjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQsw +CQYDVQQHDAJTRjEfMB0GA1UECgwWVGhlIE5vZGUuanMgRm91bmRhdGlvbjEQMA4G +A1UECwwHTm9kZS5qczEMMAoGA1UEAwwDY2E0MR4wHAYJKoZIhvcNAQkBFg9jYTRA +ZXhhbXBsZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQedRq +HJ8Dbm3yRrOK7SK9UyRNae2bSknyh6Z47vIIZpjhAcTA35BTOvM7vLueCXYO3vp4 +S+PSauBpbwCjs2x49+nfrreDxGsGxvhxHV1rZNzySlcKqDBtxOWbwcj/s4B0cYDZ +gMs2/uLJWT2Z4cyBh8711WCtntHF+cbA0wl02Ngmt3TbF5Tp66gqX2P9lYIbnEcA +zbEBc4ocaby2gib5KzqJldjyTKnLsWPDK/uMxPxX6nMha7bjF3djezTuvn2eQWZD +b2ccxNos/tN/dNgwEjmanx963vfZoGjLClD/DTktH2B0zWOlS8iWaGPioayS/XsA +wSZF5zCJzeimr9vJAgMBAAGjgdQwgdEwDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQU +Tc8o3KouldTCYNQHvW09ZBv9sW0wgaEGA1UdIwSBmTCBlqF+pHwwejELMAkGA1UE +BhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjEPMA0GA1UECgwGSm95ZW50 +MRAwDgYDVQQLDAdOb2RlLmpzMQwwCgYDVQQDDANjYTIxIDAeBgkqhkiG9w0BCQEW +EXJ5QHRpbnljbG91ZHMub3JnghRsoeMhBMOB34RpWIz6SD/UwaqquzANBgkqhkiG +9w0BAQsFAAOCAQEAKtd7q+5123jVDzpydg4o3FO84u/1gzlkQ9gAc0q48/ePD/0g +GTeTLz3fODq84l0Nx0g2XbcnrnH/07dzykZokAI6TFhv9qioeMmZa5UhwLSFynXJ +tqP26jA2/dpofGrVV2up/dJ9nw/jmvsRTigvIjkPyofFyxyssNmUIOXgEB6szthQ +mg0VKqgcF3yPDFiSMNh7YnxKd6Rsw1uujtRR+dbkLJs3m0sk+MNra7+LIfqVU5Iv +UyieguUmYYtW9rWTjxVCEl84teryIFJK81GlX/wiq1Nx3DZj+DCSwJMdl5DDzvH8 +EnE1L+MapqCnP0eAmNdWwF5SVxfKUwtt6uPpYw== -----END CERTIFICATE----- diff --git a/test/fixtures/keys/agent10.pfx b/test/fixtures/keys/agent10.pfx index f1df772cbbee1bcda61fe8bbf7467023219bb58b..fc6a9a20b1f7c116415971d84049f92bdefb7ee8 100644 GIT binary patch literal 4736 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 F{{d`mCA