Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/crypto/external/bsd/openssl/dist Import OpenSSL-3.0.9



details:   https://anonhg.NetBSD.org/src/rev/fbea016e26b2
branches:  trunk
changeset: 376087:fbea016e26b2
user:      christos <christos%NetBSD.org@localhost>
date:      Wed May 31 19:25:17 2023 +0000

description:
Import OpenSSL-3.0.9

### Changes between 3.0.8 and 3.0.9 [30 May 2023]

 * Mitigate for the time it takes for `OBJ_obj2txt` to translate gigantic
   OBJECT IDENTIFIER sub-identifiers to canonical numeric text form.

   OBJ_obj2txt() would translate any size OBJECT IDENTIFIER to canonical
   numeric text form.  For gigantic sub-identifiers, this would take a very
   long time, the time complexity being O(n^2) where n is the size of that
   sub-identifier.  ([CVE-2023-2650])

   To mitigitate this, `OBJ_obj2txt()` will only translate an OBJECT
   IDENTIFIER to canonical numeric text form if the size of that OBJECT
   IDENTIFIER is 586 bytes or less, and fail otherwise.

   The basis for this restriction is RFC 2578 (STD 58), section 3.5. OBJECT
   IDENTIFIER values, which stipulates that OBJECT IDENTIFIERS may have at
   most 128 sub-identifiers, and that the maximum value that each sub-
   identifier may have is 2^32-1 (4294967295 decimal).

   For each byte of every sub-identifier, only the 7 lower bits are part of
   the value, so the maximum amount of bytes that an OBJECT IDENTIFIER with
   these restrictions may occupy is 32 * 128 / 7, which is approximately 586
   bytes.

   Ref: https://datatracker.ietf.org/doc/html/rfc2578#section-3.5

   *Richard Levitte*

 * Fixed buffer overread in AES-XTS decryption on ARM 64 bit platforms which
   happens if the buffer size is 4 mod 5 in 16 byte AES blocks. This can
   trigger a crash of an application using AES-XTS decryption if the memory
   just after the buffer being decrypted is not mapped.
   Thanks to Anton Romanov (Amazon) for discovering the issue.
   ([CVE-2023-1255])

   *Nevine Ebeid*

 * Reworked the Fix for the Timing Oracle in RSA Decryption ([CVE-2022-4304]).
   The previous fix for this timing side channel turned out to cause
   a severe 2-3x performance regression in the typical use case
   compared to 3.0.7. The new fix uses existing constant time
   code paths, and restores the previous performance level while
   fully eliminating all existing timing side channels.
   The fix was developed by Bernd Edlinger with testing support
   by Hubert Kario.

   *Bernd Edlinger*

 * Corrected documentation of X509_VERIFY_PARAM_add0_policy() to mention
   that it does not enable policy checking. Thanks to David Benjamin for
   discovering this issue.
   ([CVE-2023-0466])

   *Tomáš Mráz*

 * Fixed an issue where invalid certificate policies in leaf certificates are
   silently ignored by OpenSSL and other certificate policy checks are skipped
   for that certificate. A malicious CA could use this to deliberately assert
   invalid certificate policies in order to circumvent policy checking on the
   certificate altogether.
   ([CVE-2023-0465])

   *Matt Caswell*

 * Limited the number of nodes created in a policy tree to mitigate
   against CVE-2023-0464.  The default limit is set to 1000 nodes, which
   should be sufficient for most installations.  If required, the limit
   can be adjusted by setting the OPENSSL_POLICY_TREE_NODES_MAX build
   time define to a desired maximum number of nodes or zero to allow
   unlimited growth.
   ([CVE-2023-0464])

   *Paul Dale*

diffstat:

 crypto/external/bsd/openssl/dist/CHANGES.md                                                  |   81 +-
 crypto/external/bsd/openssl/dist/Configurations/10-main.conf                                 |    6 +-
 crypto/external/bsd/openssl/dist/Configurations/50-vms-x86_64.conf                           |   12 +-
 crypto/external/bsd/openssl/dist/Configurations/descrip.mms.tmpl                             |   10 +-
 crypto/external/bsd/openssl/dist/Configurations/unix-Makefile.tmpl                           |    3 +-
 crypto/external/bsd/openssl/dist/Configurations/windows-makefile.tmpl                        |    2 +-
 crypto/external/bsd/openssl/dist/NEWS.md                                                     |   19 +-
 crypto/external/bsd/openssl/dist/NOTES-NONSTOP.md                                            |   14 +
 crypto/external/bsd/openssl/dist/NOTES-VMS.md                                                |   17 +
 crypto/external/bsd/openssl/dist/VERSION.dat                                                 |    4 +-
 crypto/external/bsd/openssl/dist/apps/dgst.c                                                 |    9 +-
 crypto/external/bsd/openssl/dist/apps/enc.c                                                  |   17 +-
 crypto/external/bsd/openssl/dist/apps/include/cmp_mock_srv.h                                 |    4 +-
 crypto/external/bsd/openssl/dist/apps/lib/cmp_mock_srv.c                                     |   46 +-
 crypto/external/bsd/openssl/dist/apps/openssl-vms.cnf                                        |    4 +-
 crypto/external/bsd/openssl/dist/apps/rehash.c                                               |    9 +-
 crypto/external/bsd/openssl/dist/crypto/aes/asm/aesv8-armx.pl                                |   28 +-
 crypto/external/bsd/openssl/dist/crypto/aes/asm/bsaes-armv7.pl                               |    6 +-
 crypto/external/bsd/openssl/dist/crypto/asn1/a_bitstr.c                                      |    8 +-
 crypto/external/bsd/openssl/dist/crypto/asn1/asn1_parse.c                                    |    4 +-
 crypto/external/bsd/openssl/dist/crypto/bio/bss_acpt.c                                       |    4 +-
 crypto/external/bsd/openssl/dist/crypto/bn/bn_asm.c                                          |  108 +-
 crypto/external/bsd/openssl/dist/crypto/bn/bn_blind.c                                        |   17 +-
 crypto/external/bsd/openssl/dist/crypto/bn/bn_local.h                                        |   58 +-
 crypto/external/bsd/openssl/dist/crypto/bn/bn_rsa_fips186_4.c                                |    4 +-
 crypto/external/bsd/openssl/dist/crypto/bn/build.info                                        |    2 +-
 crypto/external/bsd/openssl/dist/crypto/build.info                                           |    4 +-
 crypto/external/bsd/openssl/dist/crypto/cmp/cmp_client.c                                     |   68 +-
 crypto/external/bsd/openssl/dist/crypto/cmp/cmp_ctx.c                                        |   26 +-
 crypto/external/bsd/openssl/dist/crypto/cmp/cmp_err.c                                        |    5 +-
 crypto/external/bsd/openssl/dist/crypto/cmp/cmp_local.h                                      |   19 +-
 crypto/external/bsd/openssl/dist/crypto/cmp/cmp_msg.c                                        |   66 +-
 crypto/external/bsd/openssl/dist/crypto/cmp/cmp_protect.c                                    |    4 +-
 crypto/external/bsd/openssl/dist/crypto/cmp/cmp_server.c                                     |   45 +-
 crypto/external/bsd/openssl/dist/crypto/cmp/cmp_vfy.c                                        |   19 +-
 crypto/external/bsd/openssl/dist/crypto/cms/cms_dh.c                                         |    4 +-
 crypto/external/bsd/openssl/dist/crypto/cms/cms_ec.c                                         |   20 +-
 crypto/external/bsd/openssl/dist/crypto/cms/cms_env.c                                        |    4 +-
 crypto/external/bsd/openssl/dist/crypto/cms/cms_lib.c                                        |   15 +-
 crypto/external/bsd/openssl/dist/crypto/cms/cms_smime.c                                      |   73 +-
 crypto/external/bsd/openssl/dist/crypto/dsa/dsa_backend.c                                    |    7 +-
 crypto/external/bsd/openssl/dist/crypto/dsa/dsa_err.c                                        |    3 +-
 crypto/external/bsd/openssl/dist/crypto/dsa/dsa_ossl.c                                       |   35 +-
 crypto/external/bsd/openssl/dist/crypto/dsa/dsa_sign.c                                       |    4 +-
 crypto/external/bsd/openssl/dist/crypto/ec/asm/ecp_nistp521-ppc64.pl                         |    3 +-
 crypto/external/bsd/openssl/dist/crypto/ec/ec_err.c                                          |    3 +-
 crypto/external/bsd/openssl/dist/crypto/ec/ecdsa_ossl.c                                      |   23 +-
 crypto/external/bsd/openssl/dist/crypto/ec/ecx_meth.c                                        |    4 +-
 crypto/external/bsd/openssl/dist/crypto/err/openssl.txt                                      |    6 +-
 crypto/external/bsd/openssl/dist/crypto/evp/ctrl_params_translate.c                          |   64 +-
 crypto/external/bsd/openssl/dist/crypto/evp/digest.c                                         |    6 +-
 crypto/external/bsd/openssl/dist/crypto/evp/ec_ctrl.c                                        |    6 +-
 crypto/external/bsd/openssl/dist/crypto/evp/evp_pbe.c                                        |    4 +-
 crypto/external/bsd/openssl/dist/crypto/evp/keymgmt_meth.c                                   |    4 +-
 crypto/external/bsd/openssl/dist/crypto/evp/p_lib.c                                          |   21 +-
 crypto/external/bsd/openssl/dist/crypto/evp/pmeth_lib.c                                      |   30 +-
 crypto/external/bsd/openssl/dist/crypto/ffc/ffc_backend.c                                    |    3 +-
 crypto/external/bsd/openssl/dist/crypto/ffc/ffc_params.c                                     |    4 +-
 crypto/external/bsd/openssl/dist/crypto/http/http_client.c                                   |   13 +-
 crypto/external/bsd/openssl/dist/crypto/http/http_lib.c                                      |   11 +-
 crypto/external/bsd/openssl/dist/crypto/modes/asm/aes-gcm-armv8_64.pl                        |  799 +++++++--
 crypto/external/bsd/openssl/dist/crypto/objects/obj_dat.c                                    |   21 +-
 crypto/external/bsd/openssl/dist/crypto/property/property.c                                  |   11 +-
 crypto/external/bsd/openssl/dist/crypto/rand/rand_lib.c                                      |    8 +-
 crypto/external/bsd/openssl/dist/crypto/rsa/rsa_chk.c                                        |   18 +-
 crypto/external/bsd/openssl/dist/crypto/rsa/rsa_ossl.c                                       |   32 +-
 crypto/external/bsd/openssl/dist/crypto/rsa/rsa_sp800_56b_gen.c                              |   11 +-
 crypto/external/bsd/openssl/dist/crypto/sm2/sm2_sign.c                                       |    4 +-
 crypto/external/bsd/openssl/dist/crypto/threads_win.c                                        |    4 +-
 crypto/external/bsd/openssl/dist/crypto/ui/ui_util.c                                         |    6 +-
 crypto/external/bsd/openssl/dist/crypto/x509/pcy_local.h                                     |   10 +-
 crypto/external/bsd/openssl/dist/crypto/x509/pcy_node.c                                      |   26 +-
 crypto/external/bsd/openssl/dist/crypto/x509/pcy_tree.c                                      |   54 +-
 crypto/external/bsd/openssl/dist/crypto/x509/x509_txt.c                                      |    7 +-
 crypto/external/bsd/openssl/dist/doc/build.info                                              |   12 +
 crypto/external/bsd/openssl/dist/doc/fingerprints.txt                                        |    3 +
 crypto/external/bsd/openssl/dist/doc/internal/man3/ossl_cmp_certreq_new.pod                  |   11 +-
 crypto/external/bsd/openssl/dist/doc/internal/man3/ossl_cmp_mock_srv_new.pod                 |   28 +-
 crypto/external/bsd/openssl/dist/doc/internal/man3/ossl_cmp_msg_protect.pod                  |    8 +-
 crypto/external/bsd/openssl/dist/doc/internal/man3/ossl_cmp_pkisi_get_status.pod             |    8 +-
 crypto/external/bsd/openssl/dist/doc/man1/openssl-cmp.pod.in                                 |  148 +-
 crypto/external/bsd/openssl/dist/doc/man1/openssl-enc.pod.in                                 |    3 +-
 crypto/external/bsd/openssl/dist/doc/man1/openssl.pod                                        |    6 +-
 crypto/external/bsd/openssl/dist/doc/man3/ASN1_STRING_new.pod                                |    4 +-
 crypto/external/bsd/openssl/dist/doc/man3/CMS_EncryptedData_decrypt.pod                      |    8 +-
 crypto/external/bsd/openssl/dist/doc/man3/CMS_add0_cert.pod                                  |   12 +-
 crypto/external/bsd/openssl/dist/doc/man3/CMS_decrypt.pod                                    |   74 +-
 crypto/external/bsd/openssl/dist/doc/man3/EC_GROUP_copy.pod                                  |    2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EC_KEY_new.pod                                     |    4 +-
 crypto/external/bsd/openssl/dist/doc/man3/EC_POINT_add.pod                                   |    4 +-
 crypto/external/bsd/openssl/dist/doc/man3/EC_POINT_new.pod                                   |   28 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_EncryptInit.pod                                |    2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_set1_RSA.pod                              |   16 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_RAND.pod                                       |   14 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_aes_128_gcm.pod                                |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_aria_128_gcm.pod                               |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_bf_cbc.pod                                     |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_blake2b512.pod                                 |   19 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_camellia_128_ecb.pod                           |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_cast5_cbc.pod                                  |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_chacha20.pod                                   |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_des_cbc.pod                                    |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_desx_cbc.pod                                   |    7 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_idea_cbc.pod                                   |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_md2.pod                                        |    8 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_md4.pod                                        |    8 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_md5.pod                                        |    8 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_mdc2.pod                                       |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_rc2_cbc.pod                                    |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_rc4.pod                                        |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_rc5_32_12_16_cbc.pod                           |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_ripemd160.pod                                  |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_seed_cbc.pod                                   |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_sha1.pod                                       |    8 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_sha224.pod                                     |    8 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_sha3_224.pod                                   |    8 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_sm3.pod                                        |    8 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_sm4_cbc.pod                                    |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_whirlpool.pod                                  |    8 +-
 crypto/external/bsd/openssl/dist/doc/man3/OSSL_CMP_CTX_new.pod                               |   40 +-
 crypto/external/bsd/openssl/dist/doc/man3/OSSL_CMP_MSG_get0_header.pod                       |   21 +-
 crypto/external/bsd/openssl/dist/doc/man3/OSSL_CRMF_MSG_set0_validity.pod                    |    4 +-
 crypto/external/bsd/openssl/dist/doc/man3/OSSL_DECODER_from_bio.pod                          |    6 +-
 crypto/external/bsd/openssl/dist/doc/man3/OSSL_PARAM.pod                                     |   16 +-
 crypto/external/bsd/openssl/dist/doc/man3/OSSL_PARAM_int.pod                                 |    4 +-
 crypto/external/bsd/openssl/dist/doc/man3/PEM_read_CMS.pod                                   |    5 +-
 crypto/external/bsd/openssl/dist/doc/man3/PKCS7_sign.pod                                     |    4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_options.pod                            |    8 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_split_send_fragment.pod                |    9 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_SESSION_free.pod                               |    8 +-
 crypto/external/bsd/openssl/dist/doc/man3/X509_STORE_CTX_get_error.pod                       |  125 +-
 crypto/external/bsd/openssl/dist/doc/man3/X509_VERIFY_PARAM_set_flags.pod                    |    9 +-
 crypto/external/bsd/openssl/dist/doc/man5/config.pod                                         |    4 +-
 crypto/external/bsd/openssl/dist/doc/man7/EVP_CIPHER-NULL.pod                                |   72 +
 crypto/external/bsd/openssl/dist/doc/man7/EVP_MD-NULL.pod                                    |   42 +
 crypto/external/bsd/openssl/dist/doc/man7/EVP_PKEY-EC.pod                                    |    4 +-
 crypto/external/bsd/openssl/dist/doc/man7/OSSL_PROVIDER-FIPS.pod                             |   18 +-
 crypto/external/bsd/openssl/dist/doc/man7/OSSL_PROVIDER-default.pod                          |   22 +-
 crypto/external/bsd/openssl/dist/doc/man7/crypto.pod                                         |   72 +-
 crypto/external/bsd/openssl/dist/doc/man7/migration_guide.pod                                |   31 +
 crypto/external/bsd/openssl/dist/doc/man7/provider-asym_cipher.pod                           |    7 +-
 crypto/external/bsd/openssl/dist/doc/man7/provider-base.pod                                  |    6 +-
 crypto/external/bsd/openssl/dist/doc/man7/provider-cipher.pod                                |    4 +-
 crypto/external/bsd/openssl/dist/doc/man7/provider-decoder.pod                               |    6 +-
 crypto/external/bsd/openssl/dist/doc/man7/provider-digest.pod                                |    3 +-
 crypto/external/bsd/openssl/dist/doc/man7/provider-keymgmt.pod                               |   32 +-
 crypto/external/bsd/openssl/dist/doc/man7/provider-signature.pod                             |    6 +-
 crypto/external/bsd/openssl/dist/include/crypto/bn.h                                         |    6 -
 crypto/external/bsd/openssl/dist/include/crypto/cmperr.h                                     |    2 +-
 crypto/external/bsd/openssl/dist/include/crypto/dsaerr.h                                     |    2 +-
 crypto/external/bsd/openssl/dist/include/crypto/ecerr.h                                      |    2 +-
 crypto/external/bsd/openssl/dist/include/openssl/cmp.h.in                                    |    7 +-
 crypto/external/bsd/openssl/dist/include/openssl/cmperr.h                                    |    4 +-
 crypto/external/bsd/openssl/dist/include/openssl/dsaerr.h                                    |    3 +-
 crypto/external/bsd/openssl/dist/include/openssl/ecerr.h                                     |    3 +-
 crypto/external/bsd/openssl/dist/providers/fips-sources.checksums                            |   78 +-
 crypto/external/bsd/openssl/dist/providers/fips.checksum                                     |    2 +-
 crypto/external/bsd/openssl/dist/providers/fips.module.sources                               |   14 +-
 crypto/external/bsd/openssl/dist/providers/implementations/asymciphers/rsa_enc.c             |   10 +-
 crypto/external/bsd/openssl/dist/providers/implementations/ciphers/cipher_tdes_common.c      |   11 +-
 crypto/external/bsd/openssl/dist/providers/implementations/kdfs/hkdf.c                       |    4 +-
 crypto/external/bsd/openssl/dist/providers/implementations/keymgmt/ec_kmgmt.c                |    2 +-
 crypto/external/bsd/openssl/dist/providers/implementations/keymgmt/rsa_kmgmt.c               |    6 +-
 crypto/external/bsd/openssl/dist/providers/implementations/rands/drbg.c                      |    4 +-
 crypto/external/bsd/openssl/dist/providers/implementations/signature/rsa_sig.c               |   11 +-
 crypto/external/bsd/openssl/dist/ssl/record/rec_layer_d1.c                                   |   12 +-
 crypto/external/bsd/openssl/dist/ssl/record/rec_layer_s3.c                                   |   29 +-
 crypto/external/bsd/openssl/dist/ssl/record/ssl3_buffer.c                                    |    5 +
 crypto/external/bsd/openssl/dist/ssl/record/ssl3_record.c                                    |   14 +-
 crypto/external/bsd/openssl/dist/ssl/ssl_cert.c                                              |   24 +-
 crypto/external/bsd/openssl/dist/test/build.info                                             |    7 +-
 crypto/external/bsd/openssl/dist/test/certs/ca-pol-cert.pem                                  |   19 +
 crypto/external/bsd/openssl/dist/test/certs/ee-cert-policies-bad.pem                         |   20 +
 crypto/external/bsd/openssl/dist/test/certs/ee-cert-policies.pem                             |   20 +
 crypto/external/bsd/openssl/dist/test/certs/mkcert.sh                                        |   11 +-
 crypto/external/bsd/openssl/dist/test/certs/setup.sh                                         |    6 +
 crypto/external/bsd/openssl/dist/test/cmp_client_test.c                                      |  112 +-
 crypto/external/bsd/openssl/dist/test/cmp_msg_test.c                                         |   11 +-
 crypto/external/bsd/openssl/dist/test/cmp_protect_test.c                                     |    4 +-
 crypto/external/bsd/openssl/dist/test/cmp_vfy_test.c                                         |    4 +-
 crypto/external/bsd/openssl/dist/test/dtlstest.c                                             |   63 +-
 crypto/external/bsd/openssl/dist/test/evp_extra_test2.c                                      |   93 +-
 crypto/external/bsd/openssl/dist/test/helpers/ssltestlib.c                                   |  120 +-
 crypto/external/bsd/openssl/dist/test/helpers/ssltestlib.h                                   |    5 +-
 crypto/external/bsd/openssl/dist/test/nodefltctxtest.c                                       |   60 +
 crypto/external/bsd/openssl/dist/test/null.cnf                                               |   13 +
 crypto/external/bsd/openssl/dist/test/recipes/04-test_nodefltctx.t                           |   19 +
 crypto/external/bsd/openssl/dist/test/recipes/15-test_mp_rsa.t                               |    7 +-
 crypto/external/bsd/openssl/dist/test/recipes/15-test_mp_rsa_data/rsamplcm.pem               |   55 +
 crypto/external/bsd/openssl/dist/test/recipes/25-test_verify.t                               |   13 +-
 crypto/external/bsd/openssl/dist/test/recipes/30-test_evp_data/evpciph_aes_common.txt        |   15 +-
 crypto/external/bsd/openssl/dist/test/recipes/80-test_cmp_http_data/Mock/issuing.crt         |   23 -
 crypto/external/bsd/openssl/dist/test/recipes/80-test_cmp_http_data/Mock/issuing_expired.crt |   22 +
 crypto/external/bsd/openssl/dist/test/recipes/80-test_cmp_http_data/Mock/new_pub.key         |    9 +
 crypto/external/bsd/openssl/dist/test/recipes/80-test_cmp_http_data/Mock/root_expired.crt    |   21 +
 crypto/external/bsd/openssl/dist/test/recipes/80-test_cmp_http_data/Mock/server.crt          |   39 +-
 crypto/external/bsd/openssl/dist/test/recipes/80-test_cmp_http_data/Mock/server.key          |   55 +-
 crypto/external/bsd/openssl/dist/test/recipes/80-test_cmp_http_data/Mock/test.cnf            |    6 +-
 crypto/external/bsd/openssl/dist/test/recipes/80-test_cmp_http_data/Mock/trusted.crt         |   38 +-
 crypto/external/bsd/openssl/dist/test/recipes/80-test_cmp_http_data/test_commands.csv        |   11 +-
 crypto/external/bsd/openssl/dist/test/recipes/80-test_cmp_http_data/test_enrollment.csv      |   12 +-
 crypto/external/bsd/openssl/dist/test/recipes/80-test_cms.t                                  |    2 +-
 crypto/external/bsd/openssl/dist/test/recipes/80-test_policy_tree.t                          |   43 +
 crypto/external/bsd/openssl/dist/test/recipes/80-test_policy_tree_data/large_leaf.pem        |   11 +
 crypto/external/bsd/openssl/dist/test/recipes/80-test_policy_tree_data/large_policy_tree.pem |  434 +++++
 crypto/external/bsd/openssl/dist/test/recipes/80-test_policy_tree_data/small_leaf.pem        |   11 +
 crypto/external/bsd/openssl/dist/test/recipes/80-test_policy_tree_data/small_policy_tree.pem |   70 +
 crypto/external/bsd/openssl/dist/test/sslapitest.c                                           |  323 +++-
 crypto/external/bsd/openssl/dist/util/check-format-test-negatives.c                          |   89 +-
 crypto/external/bsd/openssl/dist/util/check-format-test-positives.c                          |   48 +-
 crypto/external/bsd/openssl/dist/util/check-format.pl                                        |  293 ++-
 crypto/external/bsd/openssl/dist/util/find-doc-nits                                          |   18 +-
 crypto/external/bsd/openssl/dist/util/libcrypto.num                                          |    1 +
 crypto/external/bsd/openssl/dist/util/perl/OpenSSL/Ordinals.pm                               |    4 +-
 crypto/external/bsd/openssl/dist/util/perl/OpenSSL/config.pm                                 |    8 +-
 215 files changed, 4468 insertions(+), 1396 deletions(-)

diffs (truncated from 12871 to 300 lines):

diff -r d3eaef198da3 -r fbea016e26b2 crypto/external/bsd/openssl/dist/CHANGES.md
--- a/crypto/external/bsd/openssl/dist/CHANGES.md       Wed May 31 18:44:39 2023 +0000
+++ b/crypto/external/bsd/openssl/dist/CHANGES.md       Wed May 31 19:25:17 2023 +0000
@@ -28,6 +28,80 @@ breaking changes, and mappings for the l
 
 [Migration guide]: https://github.com/openssl/openssl/tree/master/doc/man7/migration_guide.pod
 
+### Changes between 3.0.8 and 3.0.9 [30 May 2023]
+
+ * Mitigate for the time it takes for `OBJ_obj2txt` to translate gigantic
+   OBJECT IDENTIFIER sub-identifiers to canonical numeric text form.
+
+   OBJ_obj2txt() would translate any size OBJECT IDENTIFIER to canonical
+   numeric text form.  For gigantic sub-identifiers, this would take a very
+   long time, the time complexity being O(n^2) where n is the size of that
+   sub-identifier.  ([CVE-2023-2650])
+
+   To mitigitate this, `OBJ_obj2txt()` will only translate an OBJECT
+   IDENTIFIER to canonical numeric text form if the size of that OBJECT
+   IDENTIFIER is 586 bytes or less, and fail otherwise.
+
+   The basis for this restriction is RFC 2578 (STD 58), section 3.5. OBJECT
+   IDENTIFIER values, which stipulates that OBJECT IDENTIFIERS may have at
+   most 128 sub-identifiers, and that the maximum value that each sub-
+   identifier may have is 2^32-1 (4294967295 decimal).
+
+   For each byte of every sub-identifier, only the 7 lower bits are part of
+   the value, so the maximum amount of bytes that an OBJECT IDENTIFIER with
+   these restrictions may occupy is 32 * 128 / 7, which is approximately 586
+   bytes.
+
+   Ref: https://datatracker.ietf.org/doc/html/rfc2578#section-3.5
+
+   *Richard Levitte*
+
+ * Fixed buffer overread in AES-XTS decryption on ARM 64 bit platforms which
+   happens if the buffer size is 4 mod 5 in 16 byte AES blocks. This can
+   trigger a crash of an application using AES-XTS decryption if the memory
+   just after the buffer being decrypted is not mapped.
+   Thanks to Anton Romanov (Amazon) for discovering the issue.
+   ([CVE-2023-1255])
+
+   *Nevine Ebeid*
+
+ * Reworked the Fix for the Timing Oracle in RSA Decryption ([CVE-2022-4304]).
+   The previous fix for this timing side channel turned out to cause
+   a severe 2-3x performance regression in the typical use case
+   compared to 3.0.7. The new fix uses existing constant time
+   code paths, and restores the previous performance level while
+   fully eliminating all existing timing side channels.
+   The fix was developed by Bernd Edlinger with testing support
+   by Hubert Kario.
+
+   *Bernd Edlinger*
+
+ * Corrected documentation of X509_VERIFY_PARAM_add0_policy() to mention
+   that it does not enable policy checking. Thanks to David Benjamin for
+   discovering this issue.
+   ([CVE-2023-0466])
+
+   *Tomáš Mráz*
+
+ * Fixed an issue where invalid certificate policies in leaf certificates are
+   silently ignored by OpenSSL and other certificate policy checks are skipped
+   for that certificate. A malicious CA could use this to deliberately assert
+   invalid certificate policies in order to circumvent policy checking on the
+   certificate altogether.
+   ([CVE-2023-0465])
+
+   *Matt Caswell*
+
+ * Limited the number of nodes created in a policy tree to mitigate
+   against CVE-2023-0464.  The default limit is set to 1000 nodes, which
+   should be sufficient for most installations.  If required, the limit
+   can be adjusted by setting the OPENSSL_POLICY_TREE_NODES_MAX build
+   time define to a desired maximum number of nodes or zero to allow
+   unlimited growth.
+   ([CVE-2023-0464])
+
+   *Paul Dale*
+
 ### Changes between 3.0.7 and 3.0.8 [7 Feb 2023]
 
  * Fixed NULL dereference during PKCS7 data verification.
@@ -19578,6 +19652,11 @@ ndif
 
 <!-- Links -->
 
+[CVE-2023-2650]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2650
+[CVE-2023-1255]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-1255
+[CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466
+[CVE-2023-0465]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0465
+[CVE-2023-0464]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0464
 [CVE-2023-0401]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0401
 [CVE-2023-0286]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0286
 [CVE-2023-0217]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0217
@@ -19588,7 +19667,7 @@ ndif
 [CVE-2022-4203]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-4203
 [CVE-2022-3996]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-3996
 [CVE-2022-2274]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-2274
-[CVE-2022-2097]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-2274
+[CVE-2022-2097]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-2097
 [CVE-2020-1971]: https://www.openssl.org/news/vulnerabilities.html#CVE-2020-1971
 [CVE-2020-1967]: https://www.openssl.org/news/vulnerabilities.html#CVE-2020-1967
 [CVE-2019-1563]: https://www.openssl.org/news/vulnerabilities.html#CVE-2019-1563
diff -r d3eaef198da3 -r fbea016e26b2 crypto/external/bsd/openssl/dist/Configurations/10-main.conf
--- a/crypto/external/bsd/openssl/dist/Configurations/10-main.conf      Wed May 31 18:44:39 2023 +0000
+++ b/crypto/external/bsd/openssl/dist/Configurations/10-main.conf      Wed May 31 19:25:17 2023 +0000
@@ -1934,5 +1934,9 @@ my %targets = (
         cflags           => add("/POINTER_SIZE=64=ARGV"),
         pointer_size     => "64",
     },
-
+    "vms-x86_64" => {
+        inherit_from     => [ "vms-generic" ],
+        bn_ops           => "SIXTY_FOUR_BIT",
+        pointer_size     => "",
+    }
 );
diff -r d3eaef198da3 -r fbea016e26b2 crypto/external/bsd/openssl/dist/Configurations/50-vms-x86_64.conf
--- a/crypto/external/bsd/openssl/dist/Configurations/50-vms-x86_64.conf        Wed May 31 18:44:39 2023 +0000
+++ b/crypto/external/bsd/openssl/dist/Configurations/50-vms-x86_64.conf        Wed May 31 19:25:17 2023 +0000
@@ -1,16 +1,10 @@
 ## -*- mode: perl; -*-
 
-# OpenVMS for x86_64 is currently out on a field test.  A native C compiler
-# is currently not available, but there are cross-compilation tools for
-# OpenVMS for Itanium.  This configuration file holds the necessary target(s)
-# to make that useful.
-#
-# The assumption is that *building* is done on Itanium, and then the source
-# tree and build tree are transferred to x86_64, where tests can be performed,
-# and installation can be done.
+# OpenVMS cross compilation of x86_64 binaries on Itanium.  This doesn't
+# fit the usual cross compilation parameters that are used on Unixly machines
 
 (
- 'vms-x86_64' => {
+ 'vms-x86_64-cross-ia64' => {
      inherit_from   => [ 'vms-generic' ],
      CC             => 'XCC',
      bn_ops         => 'SIXTY_FOUR_BIT',
diff -r d3eaef198da3 -r fbea016e26b2 crypto/external/bsd/openssl/dist/Configurations/descrip.mms.tmpl
--- a/crypto/external/bsd/openssl/dist/Configurations/descrip.mms.tmpl  Wed May 31 18:44:39 2023 +0000
+++ b/crypto/external/bsd/openssl/dist/Configurations/descrip.mms.tmpl  Wed May 31 19:25:17 2023 +0000
@@ -125,7 +125,7 @@
   my @lib_cflags_no_inst = ( $target{no_inst_lib_cflags} // @lib_cflags );
   my @lib_cflags_cont = ( $target{shared_cflag} || (),
                           @{$config{lib_cflags}}, @{$config{shared_cflag}},
-                          $cnf_cflags, '$(CFLAGS)');
+                          @cnf_cflags, '$(CFLAGS)');
   our $lib_cflags = join('', @lib_cflags, @lib_cflags_cont );
   our $lib_cflags_no_inst = join('', @lib_cflags_no_inst, @lib_cflags_cont );
   our $lib_ldflags =
@@ -161,7 +161,7 @@
   my @dso_cflags_no_inst = ( $target{no_inst_dso_cflags} // @dso_cflags );
   my @dso_cflags_cont = ( $target{module_cflag} || (),
                           @{$config{dso_cflags}}, @{$config{module_cflag}},
-                          $cnf_cflags, '$(CFLAGS)');
+                          @cnf_cflags, '$(CFLAGS)');
   our $dso_cflags = join('', @dso_cflags, @dso_cflags_cont );
   our $dso_cflags_no_inst = join('', @dso_cflags_no_inst, @dso_cflags_cont );
   our $dso_ldflags =
@@ -196,13 +196,9 @@
   my @bin_cflags = ( $target{bin_cflags} // () );
   my @bin_cflags_no_inst = ( $target{no_inst_bin_cflags} // @bin_cflags );
   my @bin_cflags_cont = ( @{$config{bin_cflags}},
-                          $cnf_cflags, '$(CFLAGS)');
+                          @cnf_cflags, '$(CFLAGS)');
   our $bin_cflags = join('', @bin_cflags, @bin_cflags_cont );
   our $bin_cflags_no_inst = join('', @bin_cflags_no_inst, @bin_cflags_cont );
-  our $bin_cflags =
-      join('', $target{bin_cflags} || (),
-               @{$config{bin_cflags}},
-               @cnf_cflags, '$(CFLAGS)');
   our $bin_ldflags =
       join('', $target{bin_lflags} || (),
                @{$config{bin_lflags}},
diff -r d3eaef198da3 -r fbea016e26b2 crypto/external/bsd/openssl/dist/Configurations/unix-Makefile.tmpl
--- a/crypto/external/bsd/openssl/dist/Configurations/unix-Makefile.tmpl        Wed May 31 18:44:39 2023 +0000
+++ b/crypto/external/bsd/openssl/dist/Configurations/unix-Makefile.tmpl        Wed May 31 19:25:17 2023 +0000
@@ -1227,7 +1227,8 @@ providers/fips.module.sources.new: confi
                   crypto/ec/asm/*.pl \
                   crypto/modes/asm/*.pl \
                   crypto/sha/asm/*.pl \
-                  crypto/x86_64cpuid.pl; do \
+                  crypto/*cpuid.pl crypto/*cpuid.S \
+                  crypto/*cap.c; do \
            echo "$$x"; \
          done \
        ) | sort | uniq > providers/fips.module.sources.new
diff -r d3eaef198da3 -r fbea016e26b2 crypto/external/bsd/openssl/dist/Configurations/windows-makefile.tmpl
--- a/crypto/external/bsd/openssl/dist/Configurations/windows-makefile.tmpl     Wed May 31 18:44:39 2023 +0000
+++ b/crypto/external/bsd/openssl/dist/Configurations/windows-makefile.tmpl     Wed May 31 19:25:17 2023 +0000
@@ -765,7 +765,7 @@ EOF
           my $generator;
           if ($gen0 =~ /\.pl$/) {
               $generator = '"$(PERL)"'.$gen_incs.' "'.$gen0.'"'.$gen_args
-                  .' "$(PERLASM_SCHEME)"'.$incs.' '.$cppflags.$defs.' $(PROCESSSOR)';
+                  .' "$(PERLASM_SCHEME)"'.$incs.' '.$cppflags.$defs.' $(PROCESSOR)';
           } elsif ($gen0 =~ /\.S$/) {
               $generator = undef;
           } else {
diff -r d3eaef198da3 -r fbea016e26b2 crypto/external/bsd/openssl/dist/NEWS.md
--- a/crypto/external/bsd/openssl/dist/NEWS.md  Wed May 31 18:44:39 2023 +0000
+++ b/crypto/external/bsd/openssl/dist/NEWS.md  Wed May 31 19:25:17 2023 +0000
@@ -18,6 +18,17 @@ OpenSSL Releases
 OpenSSL 3.0
 -----------
 
+### Major changes between OpenSSL 3.0.8 and OpenSSL 3.0.9 [30 May 2023]
+
+  * Mitigate for very slow `OBJ_obj2txt()` performance with gigantic OBJECT
+    IDENTIFIER sub-identities.  ([CVE-2023-2650])
+  * Fixed buffer overread in AES-XTS decryption on ARM 64 bit platforms
+    ([CVE-2023-1255])
+  * Fixed documentation of X509_VERIFY_PARAM_add0_policy() ([CVE-2023-0466])
+  * Fixed handling of invalid certificate policies in leaf certificates
+    ([CVE-2023-0465])
+  * Limited the number of nodes created in a policy tree ([CVE-2023-0464])
+
 ### Major changes between OpenSSL 3.0.7 and OpenSSL 3.0.8 [7 Feb 2023]
 
   * Fixed NULL dereference during PKCS7 data verification ([CVE-2023-0401])
@@ -1430,6 +1441,12 @@ OpenSSL 0.9.x
   * Support for various new platforms
 
 <!-- Links -->
+
+[CVE-2023-2650]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2650
+[CVE-2023-1255]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-1255
+[CVE-2023-0466]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0466
+[CVE-2023-0465]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0465
+[CVE-2023-0464]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0464
 [CVE-2023-0401]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0401
 [CVE-2023-0286]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0286
 [CVE-2023-0217]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-0217
@@ -1440,7 +1457,7 @@ OpenSSL 0.9.x
 [CVE-2022-4203]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-4203
 [CVE-2022-3996]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-3996
 [CVE-2022-2274]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-2274
-[CVE-2022-2097]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-2274
+[CVE-2022-2097]: https://www.openssl.org/news/vulnerabilities.html#CVE-2022-2097
 [CVE-2020-1971]: https://www.openssl.org/news/vulnerabilities.html#CVE-2020-1971
 [CVE-2020-1967]: https://www.openssl.org/news/vulnerabilities.html#CVE-2020-1967
 [CVE-2019-1563]: https://www.openssl.org/news/vulnerabilities.html#CVE-2019-1563
diff -r d3eaef198da3 -r fbea016e26b2 crypto/external/bsd/openssl/dist/NOTES-NONSTOP.md
--- a/crypto/external/bsd/openssl/dist/NOTES-NONSTOP.md Wed May 31 18:44:39 2023 +0000
+++ b/crypto/external/bsd/openssl/dist/NOTES-NONSTOP.md Wed May 31 19:25:17 2023 +0000
@@ -44,6 +44,20 @@ instead of `nsx` in the set above.
 You cannot build for TNS/E for FIPS, so you must specify the `no-fips`
 option to `./Configure`.
 
+Linking and Loading Considerations
+----------------------------------
+
+Because of how the NonStop Common Runtime Environment (CRE) works, there are
+restrictions on how programs can link and load with OpenSSL libraries.
+On current NonStop platforms, programs cannot both statically link OpenSSL
+libraries and dynamically load OpenSSL shared libraries concurrently. If this
+is done, there is a high probability of encountering a SIGSEGV condition
+relating to `atexit()` processing when a shared library is unloaded and when
+the program terminates. This limitation applies to all OpenSSL shared library
+components.
+
+A resolution to this situation is under investigation.
+
 About Prefix and OpenSSLDir
 ---------------------------
 
diff -r d3eaef198da3 -r fbea016e26b2 crypto/external/bsd/openssl/dist/NOTES-VMS.md
--- a/crypto/external/bsd/openssl/dist/NOTES-VMS.md     Wed May 31 18:44:39 2023 +0000
+++ b/crypto/external/bsd/openssl/dist/NOTES-VMS.md     Wed May 31 19:25:17 2023 +0000
@@ -83,6 +83,23 @@ When done, we recommend that you turn th
 
     $ set image /flag=nocall_debug [.test]evp_test.exe
 
+About assembler acceleration
+----------------------------
+
+OpenSSL has assembler acceleration for a number of BIGNUM and crypto
+routines.  The VMS config targets tries to look for a selection of
+assemblers and will use what they find.  If none of the assemblers are
+found, OpenSSL will be built as if `no-asm` was configured.
+
+### For Itanium / IA64 / I64
+
+-   There is only one assembler, a port of Intel's `ias`, found in the
+    HP Open Source Tools CD, available through [DECUSlib](http://www.decuslib.com).
+    It's assumed to be set up as per the instructions, where `disk` and
+    `dir` are expected to be adapted to local conditions:
+
+        $ ias :== $disk:[dir]iasi64.exe
+
 Checking the distribution
 -------------------------
 
diff -r d3eaef198da3 -r fbea016e26b2 crypto/external/bsd/openssl/dist/VERSION.dat
--- a/crypto/external/bsd/openssl/dist/VERSION.dat      Wed May 31 18:44:39 2023 +0000
+++ b/crypto/external/bsd/openssl/dist/VERSION.dat      Wed May 31 19:25:17 2023 +0000


Home | Main Index | Thread Index | Old Index