WordPress.org

Make WordPress Core

Ticket #39309: 39309-extra-debugging.diff

File 39309-extra-debugging.diff, 2.3 KB (added by dd32, 7 months ago)
  • src/wp-admin/includes/file.php

    diff --git a/src/wp-admin/includes/file.php b/src/wp-admin/includes/file.php
    index bbae7bed4d..beda27c9c6 100644
    a b function verify_file_signature( $filename, $signatures, $filename_for_errors = f 
    11541154                                /* translators: 1: The filename of the package. */
    11551155                                __( 'The authenticity of %1$s could not be verified as no signature was found.' ),
    11561156                                '<span class="code">' . esc_html( $filename_for_errors ) . '</span>'
     1157                        ),
     1158                        array(
     1159                                'filename' => $filename_for_errors,
    11571160                        )
    11581161                );
    11591162        }
    function verify_file_signature( $filename, $signatures, $filename_for_errors = f 
    11631166
    11641167        mbstring_binary_safe_encoding();
    11651168
     1169        $skipped_key = $skipped_signature = 0;
     1170
    11661171        foreach ( (array) $signatures as $signature ) {
    11671172                $signature_raw = base64_decode( $signature );
    11681173
    11691174                // Ensure only valid-length signatures are considered.
    11701175                if ( SODIUM_CRYPTO_SIGN_BYTES !== strlen( $signature_raw ) ) {
     1176                        $skipped_signature++;
    11711177                        continue;
    11721178                }
    11731179
    function verify_file_signature( $filename, $signatures, $filename_for_errors = f 
    11761182
    11771183                        // Only pass valid public keys through.
    11781184                        if ( SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES !== strlen( $key_raw ) ) {
     1185                                $skipped_key++;
    11791186                                continue;
    11801187                        }
    11811188
    function verify_file_signature( $filename, $signatures, $filename_for_errors = f 
    11971204                ),
    11981205                // Error data helpful for debugging:
    11991206                array(
    1200                         'filename'   => $filename_for_errors,
    1201                         'keys'       => $trusted_keys,
    1202                         'signatures' => $signatures,
    1203                         'hash'       => bin2hex( $file_hash ),
     1207                        'filename'    => $filename_for_errors,
     1208                        'keys'        => $trusted_keys,
     1209                        'signatures'  => $signatures,
     1210                        'hash'        => bin2hex( $file_hash ),
     1211                        'skipped_key' => $skipped_key,
     1212                        'skipped_sig' => $skipped_signature,
     1213                        'php'         => phpversion(),
     1214                        'sodium'      => defined( 'SODIUM_LIBRARY_VERSION' ) ? SODIUM_LIBRARY_VERSION : ( defined( 'ParagonIE_Sodium_Compat::VERSION_STRING' ) ? ParagonIE_Sodium_Compat::VERSION_STRING : false ),
    12041215                )
    12051216        );
    12061217}
    function verify_file_signature( $filename, $signatures, $filename_for_errors = f 
    12101221 *
    12111222 * @since 5.2.0
    12121223 *
    1213  * @return array List of hex-encoded Signing keys.
     1224 * @return array List of base64-encoded Signing keys.
    12141225 */
    12151226function wp_trusted_keys() {
    12161227        $trusted_keys = array();