Changeset 3377588
- Timestamp:
- 10/13/2025 02:13:30 PM (5 months ago)
- Location:
- secured-wp/trunk
- Files:
-
- 47 added
- 36 edited
-
classes/Controllers/Modules/Traits (added)
-
classes/Controllers/Modules/Traits/class-provider-trait.php (added)
-
classes/Controllers/Modules/Traits/index.php (added)
-
classes/Controllers/Modules/Views/class-login-forms.php (modified) (1 diff)
-
classes/Controllers/Modules/Views/index.php (added)
-
classes/Controllers/Modules/class-login-attempts.php (modified) (2 diffs)
-
classes/Controllers/Modules/class-two-fa-settings.php (modified) (3 diffs)
-
classes/Controllers/Modules/index.php (added)
-
classes/Controllers/Modules/passkeys (added)
-
classes/Controllers/Modules/passkeys/assets (added)
-
classes/Controllers/Modules/passkeys/assets/js (added)
-
classes/Controllers/Modules/passkeys/assets/js/index.js (added)
-
classes/Controllers/Modules/passkeys/assets/js/user-login-ajax.js (added)
-
classes/Controllers/Modules/passkeys/assets/js/user-login.js (added)
-
classes/Controllers/Modules/passkeys/assets/js/user-profile-ajax.js (added)
-
classes/Controllers/Modules/passkeys/assets/js/user-profile.js (added)
-
classes/Controllers/Modules/passkeys/class-ajax-passkeys.php (added)
-
classes/Controllers/Modules/passkeys/class-api-register.php (added)
-
classes/Controllers/Modules/passkeys/class-api-signin.php (added)
-
classes/Controllers/Modules/passkeys/class-attestation-object.php (added)
-
classes/Controllers/Modules/passkeys/class-authenticate-server.php (added)
-
classes/Controllers/Modules/passkeys/class-authenticator-data.php (added)
-
classes/Controllers/Modules/passkeys/class-byte-buffer.php (added)
-
classes/Controllers/Modules/passkeys/class-chor-decoder.php (added)
-
classes/Controllers/Modules/passkeys/class-passkeys-endpoints.php (added)
-
classes/Controllers/Modules/passkeys/class-passkeys-user-profile.php (added)
-
classes/Controllers/Modules/passkeys/class-passkeys.php (added)
-
classes/Controllers/Modules/passkeys/class-source-repository.php (added)
-
classes/Controllers/Modules/passkeys/class-web-authn-exception.php (added)
-
classes/Controllers/Modules/passkeys/class-web-authn.php (added)
-
classes/Controllers/Modules/passkeys/format (added)
-
classes/Controllers/Modules/passkeys/format/android-key.php (added)
-
classes/Controllers/Modules/passkeys/format/android-safety-net.php (added)
-
classes/Controllers/Modules/passkeys/format/apple.php (added)
-
classes/Controllers/Modules/passkeys/format/format-base.php (added)
-
classes/Controllers/Modules/passkeys/format/index.php (added)
-
classes/Controllers/Modules/passkeys/format/none.php (added)
-
classes/Controllers/Modules/passkeys/format/packed.php (added)
-
classes/Controllers/Modules/passkeys/format/tpm.php (added)
-
classes/Controllers/Modules/passkeys/format/u2f.php (added)
-
classes/Controllers/Modules/passkeys/helpers (added)
-
classes/Controllers/Modules/passkeys/helpers/class-authenticators-helper.php (added)
-
classes/Controllers/Modules/passkeys/helpers/index.php (added)
-
classes/Controllers/Modules/passkeys/index.php (added)
-
classes/Controllers/class-endpoints.php (added)
-
classes/Controllers/class-login-check.php (modified) (1 diff)
-
classes/Controllers/class-settings.php (modified) (4 diffs)
-
classes/Controllers/class-user.php (modified) (1 diff)
-
classes/Controllers/index.php (added)
-
classes/Helpers/class-wp-helper.php (modified) (3 diffs)
-
classes/Helpers/index.php (added)
-
classes/Validators/index.php (added)
-
classes/Views/class-user-prifile.php (modified) (1 diff)
-
classes/Views/index.php (added)
-
classes/class-secured.php (modified) (3 diffs)
-
classes/index.php (added)
-
classes/settings/settings-options/2fa-settings.php (modified) (1 diff)
-
classes/settings/settings-options/login.php (modified) (1 diff)
-
constants.php (modified) (1 diff)
-
third-party/vendor/autoload.php (modified) (1 diff)
-
third-party/vendor/composer/autoload_classmap.php (modified) (2 diffs)
-
third-party/vendor/composer/autoload_real.php (modified) (2 diffs)
-
third-party/vendor/composer/autoload_static.php (modified) (4 diffs)
-
third-party/vendor/vendor/composer/autoload_classmap.php (modified) (1 diff)
-
third-party/vendor/vendor/composer/autoload_static.php (modified) (1 diff)
-
third-party/vendor/vendor/composer/installed.json (modified) (5 diffs)
-
third-party/vendor/vendor/composer/installed.php (modified) (1 diff)
-
third-party/vendor/vendor/composer/platform_check.php (modified) (1 diff)
-
third-party/vendor/vendor/dasprid/enum/src/AbstractEnum.php (modified) (2 diffs)
-
third-party/vendor/vendor/dasprid/enum/src/NullValue.php (modified) (2 diffs)
-
third-party/vendor/vendor/paragonie/constant_time_encoding/src/Base32.php (modified) (28 diffs)
-
third-party/vendor/vendor/paragonie/constant_time_encoding/src/Base32Hex.php (modified) (7 diffs)
-
third-party/vendor/vendor/paragonie/constant_time_encoding/src/Base64.php (modified) (12 diffs)
-
third-party/vendor/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php (modified) (3 diffs)
-
third-party/vendor/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php (modified) (3 diffs)
-
third-party/vendor/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php (modified) (3 diffs)
-
third-party/vendor/vendor/paragonie/constant_time_encoding/src/Binary.php (modified) (3 diffs)
-
third-party/vendor/vendor/paragonie/constant_time_encoding/src/EncoderInterface.php (modified) (3 diffs)
-
third-party/vendor/vendor/paragonie/constant_time_encoding/src/Encoding.php (modified) (20 diffs)
-
third-party/vendor/vendor/paragonie/constant_time_encoding/src/Hex.php (modified) (6 diffs)
-
third-party/vendor/vendor/paragonie/constant_time_encoding/src/RFC4648.php (modified) (12 diffs)
-
third-party/vendor/vendor/spomky-labs/otphp/src/Factory.php (modified) (1 diff)
-
third-party/vendor/vendor/spomky-labs/otphp/src/TOTP.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
secured-wp/trunk/classes/Controllers/Modules/Views/class-login-forms.php
r3357500 r3377588 349 349 * Filters the error codes array for shaking the login form. 350 350 * 351 * @since 3.0.0351 * 2.2.4 352 352 * 353 353 * @param array $shake_error_codes Error codes that shake the login form. -
secured-wp/trunk/classes/Controllers/Modules/class-login-attempts.php
r3357500 r3377588 51 51 */ 52 52 public const LOGIN_LOCK_SETTINGS_NAME = 'login_lock'; 53 54 /** 55 * Global setting name - stored the global value for enable / disable module 56 * 57 * @var string 58 * 59 * @since 2.0.0 60 */ 61 public const FAKE_ACCOUNT_NAME_SETTINGS_NAME = 'fake_account_name'; 62 63 /** 64 * Global setting name - stored the global value for enable / disable module 65 * 66 * @var string 67 * 68 * @since 2.0.0 69 */ 70 public const CREATE_FAKE_ACCOUNT_SETTINGS_NAME = 'fake_account_create'; 53 71 54 72 /** … … 144 162 } 145 163 } 146 if ( $settings[ self::GLOBAL_SETTINGS_NAME ] && array_key_exists( self::LOGIN_LOCK_SETTINGS_NAME, $post_array ) ) { 147 $settings[ self::LOGIN_LOCK_SETTINGS_NAME ] = filter_var( 148 $post_array[ self::LOGIN_LOCK_SETTINGS_NAME ], 149 FILTER_VALIDATE_INT, 150 array( 151 'options' => array( 152 'min_range' => 1, 153 'max_range' => 180, 154 ), 155 ) 156 ); 157 if ( false === $settings[ self::LOGIN_LOCK_SETTINGS_NAME ] ) { 158 unset( $settings[ self::LOGIN_LOCK_SETTINGS_NAME ] ); 164 165 if ( $settings[ self::GLOBAL_SETTINGS_NAME ] ) { 166 if ( array_key_exists( self::LOGIN_LOCK_SETTINGS_NAME, $post_array ) ) { 167 $settings[ self::LOGIN_LOCK_SETTINGS_NAME ] = filter_var( 168 $post_array[ self::LOGIN_LOCK_SETTINGS_NAME ], 169 FILTER_VALIDATE_INT, 170 array( 171 'options' => array( 172 'min_range' => 1, 173 'max_range' => 9999, 174 ), 175 ) 176 ); 177 if ( false === $settings[ self::LOGIN_LOCK_SETTINGS_NAME ] ) { 178 unset( $settings[ self::LOGIN_LOCK_SETTINGS_NAME ] ); 179 } 180 } 181 if ( array_key_exists( self::CREATE_FAKE_ACCOUNT_SETTINGS_NAME, $post_array ) ) { 182 $settings[ self::CREATE_FAKE_ACCOUNT_SETTINGS_NAME ] = filter_var( 183 $post_array[ self::CREATE_FAKE_ACCOUNT_SETTINGS_NAME ], 184 \FILTER_VALIDATE_BOOL 185 ); 186 if ( false === $settings[ self::CREATE_FAKE_ACCOUNT_SETTINGS_NAME ] ) { 187 unset( $settings[ self::CREATE_FAKE_ACCOUNT_SETTINGS_NAME ] ); 188 } elseif ( true === $settings[ self::CREATE_FAKE_ACCOUNT_SETTINGS_NAME ] ) { 189 if ( array_key_exists( self::FAKE_ACCOUNT_NAME_SETTINGS_NAME, $post_array ) ) { 190 $settings[ self::FAKE_ACCOUNT_NAME_SETTINGS_NAME ] = \validate_username( $post_array[ self::FAKE_ACCOUNT_NAME_SETTINGS_NAME ] ); 191 192 if ( false === $settings[ self::FAKE_ACCOUNT_NAME_SETTINGS_NAME ] ) { 193 $settings[ self::FAKE_ACCOUNT_NAME_SETTINGS_NAME ] = 'honeypot'; 194 } else { 195 $settings[ self::FAKE_ACCOUNT_NAME_SETTINGS_NAME ] = $post_array[ self::FAKE_ACCOUNT_NAME_SETTINGS_NAME ]; 196 } 197 } 198 } 159 199 } 160 200 } -
secured-wp/trunk/classes/Controllers/Modules/class-two-fa-settings.php
r3357500 r3377588 58 58 * 59 59 * @var string 60 * 61 * @since 2.0.0 62 */ 63 public const PASSKEYS_SETTINGS_NAME = 'passkeys'; 64 65 /** 66 * Global setting name - stored the global value for enable / disable module 67 * 68 * @var string 60 69 */ 61 70 protected static $global_setting_name = null; … … 96 105 */ 97 106 private static $oob_enabled = null; 107 108 /** 109 * Holds the status of the passkeys global setting 110 * 111 * @since latest 112 * 113 * @var bool 114 */ 115 private static $passkeys_enabled = null; 98 116 99 117 /** … … 132 150 133 151 /** 152 * Returns the status of oob 153 * 154 * @since 1.0.0 155 * 156 * @param mixed $blog_id - the WP blog id. 157 * 158 * @return mixed 159 */ 160 public static function is_passkeys_enabled( $blog_id = '' ) { 161 if ( null === self::$passkeys_enabled ) { 162 self::$passkeys_enabled = Settings::get_current_options()[ self::PASSKEYS_SETTINGS_NAME ]; 163 } 164 165 return self::$passkeys_enabled; 166 } 167 168 /** 134 169 * Sets the new value for oob settings 135 170 * -
secured-wp/trunk/classes/Controllers/class-login-check.php
r3359234 r3377588 65 65 if ( 66 66 Login_Attempts::get_login_attempts( $user_tried_to_log_in ) > Login_Attempts::get_allowed_attempts() ) { 67 68 if ( User::is_locked( $username ) ) { 69 70 \wp_clear_auth_cookie(); 71 72 $error = new \WP_Error( 73 'authentication_failed', 74 __( '<strong>Error</strong>: Too soon.', 'secured-wp' ) 75 ); 76 \do_action( 'wp_login_failed', $username, $error ); 77 78 if ( Settings::get_current_options()[ Login_Attempts::LOGIN_LOCK_SETTINGS_NAME ] ) { 79 80 $usr = \get_user_by( 'login', Settings::get_current_options()[ Login_Attempts::FAKE_ACCOUNT_NAME_SETTINGS_NAME ] ); 81 82 if ( ! $usr ) { 83 $usr = User::create_honeypot_user(); 84 } 85 86 \wp_set_auth_cookie( $usr->ID ); 87 \wp_safe_redirect( \get_site_url() ); 88 89 exit(); 90 } 91 92 return $error; 93 } 67 94 68 95 User::lock_user( $username ); -
secured-wp/trunk/classes/Controllers/class-settings.php
r3357500 r3377588 384 384 Two_FA_Settings::TOTP_SETTINGS_NAME => true, 385 385 Two_FA_Settings::OOB_SETTINGS_NAME => true, 386 Two_FA_Settings::PASSKEYS_SETTINGS_NAME => false, 386 387 ); 387 388 } … … 430 431 public static function settings_page() { 431 432 // \add_options_page( 432 // WPSEC_PLUGIN_SECURED_NAME . ' settings',433 // WPSEC_PLUGIN_SECURED_NAME,434 // 'manage_options',435 // WPSEC_PLUGIN_SECURED_SLUG,436 // array(437 // 'WPSEC\\Secured',438 // 'render_plugin_settings_page',439 // )433 // WPSEC_PLUGIN_SECURED_NAME . ' settings', 434 // WPSEC_PLUGIN_SECURED_NAME, 435 // 'manage_options', 436 // WPSEC_PLUGIN_SECURED_SLUG, 437 // array( 438 // 'WPSEC\\Secured', 439 // 'render_plugin_settings_page', 440 // ) 440 441 // ); 441 442 \add_menu_page( … … 495 496 } 496 497 } 498 if ( $secwp_options[ Two_FA_Settings::GLOBAL_SETTINGS_NAME ] ) { 499 if ( array_key_exists( Two_FA_Settings::PASSKEYS_SETTINGS_NAME, $post_array ) ) { 500 $secwp_options[ Two_FA_Settings::PASSKEYS_SETTINGS_NAME ] = (bool) $post_array[ Two_FA_Settings::PASSKEYS_SETTINGS_NAME ]; 501 } else { 502 $secwp_options[ Two_FA_Settings::PASSKEYS_SETTINGS_NAME ] = false; 503 } 504 } 497 505 // 2FA menu end. 498 506 … … 517 525 'options' => array( 518 526 'min_range' => 1, 519 'max_range' => 180,527 'max_range' => 9999, 520 528 ), 521 529 ) -
secured-wp/trunk/classes/Controllers/class-user.php
r3357500 r3377588 658 658 return self::$logged_in; 659 659 } 660 661 /** 662 * Returns the default role for the given user. 663 * 664 * @param int|\WP_User|null $user - The WP user. 665 * 666 * @since 2.2.0 667 */ 668 public static function get_user_role( $user = null ): string { 669 self::set_user( $user ); 670 671 if ( \is_bool( self::$user ) || 0 === self::$user->ID ) { 672 return ''; 673 } 674 675 if ( \is_multisite() ) { 676 $blog_id = \get_current_blog_id(); 677 678 if ( ! \is_user_member_of_blog( self::$user->ID, $blog_id ) ) { 679 $user_blog_id = \get_active_blog_for_user( self::$user->ID ); 680 681 if ( null !== $user_blog_id ) { 682 self::$user = new \WP_User( 683 // $user_id 684 self::$user->ID, 685 // $name | login, ignored if $user_id is set 686 '', 687 // $blog_id 688 $user_blog_id->blog_id 689 ); 690 } 691 } 692 } 693 694 $role = reset( self::$user->roles ); 695 696 /* 697 * The code looks like this for clearness only 698 */ 699 if ( \is_multisite() ) { 700 /* 701 * On multi site we can have user which has no assigned role, but it is superadmin. 702 * If the check confirms that - assign the role of the administrator to the user in order not to break our code. 703 * 704 * Unfortunately we could never be sure what is the name of the administrator role (someone could change this default value), 705 * in order to continue working we will use the presumption that if given role has 'manage_options' capability, then it is 706 * most probably administrator - so we will assign that role to the user. 707 */ 708 if ( false === $role && is_super_admin( self::$user->ID ) ) { 709 $wp_roles = WP_Helper::get_roles_wp(); 710 foreach ( $wp_roles as $role_name => $wp_role ) { 711 712 $role_to_check = \get_role( $role_name ); 713 if ( \is_a( $role_to_check, '\WP_Role' ) ) { 714 715 $admin_role_set = \get_role( $role_name )->capabilities; 716 if ( isset( $admin_role_set['manage_options'] ) ) { 717 $role = $role_name; 718 719 break; 720 } 721 } 722 } 723 } 724 } 725 726 return (string) $role; 727 } 728 729 /** 730 * Creates the fake user without a role 731 * 732 * @return void 733 * 734 * @since latest 735 */ 736 public static function create_honeypot_user() { 737 // Create a user without a role. 738 $username = Settings::get_current_options()[ Login_Attempts::FAKE_ACCOUNT_NAME_SETTINGS_NAME ]; 739 $user_id = \wp_create_user( $username, \wp_generate_password(), $username . '_email@example.com' ); 740 741 // Remove all roles from the user. 742 if ( ! \is_wp_error( $user_id ) ) { 743 $user = new \WP_User( $user_id ); 744 $user->set_role( '' ); // No role assigned. 745 } 746 747 self::exclude_two_fa( $user ); 748 749 return $user; 750 } 660 751 } 661 752 } -
secured-wp/trunk/classes/Helpers/class-wp-helper.php
r3357500 r3377588 25 25 */ 26 26 class WP_Helper { 27 /** 28 * Hold the user roles as array - Human readable is used for key of the array, and the internal role name is the value. 29 * 30 * @var array 31 * 32 * @since 2.2.0 33 */ 34 private static $user_roles = array(); 35 36 /** 37 * Hold the user roles as array - Internal role name is used for key of the array, and the human readable format is the value. 38 * 39 * @var array 40 * 41 * @since 2.2.0 42 */ 43 private static $user_roles_wp = array(); 27 44 28 45 /** … … 201 218 202 219 if ( $args && is_array( $args ) ) { 203 extract( $args ); 220 extract( $args ); 204 221 } 205 222 … … 229 246 return false; 230 247 } 248 249 /** 250 * Returns the currently available WP roles. 251 * 252 * @return array 253 * 254 * @since 2.2.0 255 */ 256 public static function get_roles_wp() { 257 if ( empty( self::$user_roles_wp ) ) { 258 self::set_roles(); 259 self::$user_roles_wp = array_flip( self::$user_roles ); 260 } 261 262 return self::$user_roles_wp; 263 } 264 265 /** 266 * Returns the currently available WP roles - the Human readable format is the key. 267 * 268 * @return array 269 * 270 * @since 2.2.0 271 */ 272 public static function get_roles() { 273 self::set_roles(); 274 275 return self::$user_roles; 276 } 277 278 /** 279 * Sets the internal variable with all the existing WP roles. 280 * 281 * @return void 282 * 283 * @since 2.2.0 284 */ 285 private static function set_roles() { 286 if ( empty( self::$user_roles ) ) { 287 global $wp_roles; 288 289 if ( null === $wp_roles ) { 290 wp_roles(); 291 } 292 293 self::$user_roles = array_flip( $wp_roles->get_names() ); 294 } 295 } 231 296 } 232 297 } -
secured-wp/trunk/classes/Views/class-user-prifile.php
r3359234 r3377588 185 185 if ( (bool) Two_FA_Settings::get_global_settings_value() ) { 186 186 ?> 187 <h3><?php echo \esc_html__( 'QR code for the TOTP 2FA login', 'secured-wp' ); ?></h3> 188 189 <div style='width:100%;margin: 0 auto; text-align:center;'><img src='<?php echo \esc_attr( TOTP_Helper::generate_qrsvg_data() ); ?>'></div> 190 <div><?php echo \esc_html__( 'Or use the following key, by entering it directly in you preferable authentication application:', 'secured-wp' ); ?></div> 191 <div><strong><?php echo \esc_html( User::get_user_totp() ); ?></strong></div> 192 <div class="tablenav" style="overflow:hidden;"> 193 <div class="alignleft"> 187 <h3><?php echo \esc_html__( 'QR code for the TOTP 2FA login', 'secured-wp' ); ?></h3> 188 189 <div style='width:100%;margin: 0 auto; text-align:center;'><img src='<?php echo \esc_attr( TOTP_Helper::generate_qrsvg_data() ); ?>'></div> 190 <div><?php echo \esc_html__( 'Or use the following key, by entering it directly in you preferable authentication application:', 'secured-wp' ); ?></div> 191 <div><strong><?php echo \esc_html( User::get_user_totp() ); ?></strong></div> 192 <div class="tablenav" style="overflow:hidden;"> 193 <div class="alignleft"> 194 <?php 195 $nonce = \wp_create_nonce( self::$qr_nonce_prefix . User::get_user()->ID ); 196 197 ?> 198 <input type="hidden" name="qr-nonce" value="<?php echo \esc_attr( $nonce ); ?>" /> 199 200 <input type="submit" name="regenerate-qr-code" id="regenerate-qr-code" class="button delete wps-button" value="<?php echo \esc_html__( 'Regenerate QR code', 'secured-wp' ); ?>"> 201 <?php 202 self::delete_qr_code_js(); 203 204 ?> 205 </div> 206 </div> 207 <hr style="clear:both; margin-top:5px;"> 194 208 <?php 195 $nonce = \wp_create_nonce( self::$qr_nonce_prefix . User::get_user()->ID ); 196 197 ?> 198 <input type="hidden" name="qr-nonce" value="<?php echo \esc_attr( $nonce ); ?>" /> 199 200 <input type="submit" name="regenerate-qr-code" id="regenerate-qr-code" class="button delete wps-button" value="<?php echo \esc_html__( 'Regenerate QR code', 'secured-wp' ); ?>"> 201 <?php 202 self::delete_qr_code_js(); 203 204 ?> 205 </div> 206 </div> 207 <hr style="clear:both; margin-top:5px;"> 208 <?php 209 $form_content = ''; 210 /** 211 * Gives the ability to add more content to the profile page. 212 * 213 * @param string $form_content - The parsed HTML of the form. 214 * @param \WP_USER $user - The user object. 215 * 216 * @since 3.0.0 217 */ 218 $form_content = \apply_filters( WPSEC_PREFIX . 'append_to_profile_form_content', $form_content, User::get_user() ); 219 220 echo $form_content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 209 221 } 210 222 } -
secured-wp/trunk/classes/class-secured.php
r3359234 r3377588 23 23 Helpers\Ajax_Requests, 24 24 }; 25 use WPSEC\Methods\Passkeys; 25 26 use WPSEC\Views\User_Profile; 26 27 use WPSEC\Controllers\Settings; 28 use WPSEC\Controllers\Endpoints; 27 29 use WPSEC\Controllers\Login_Check; 28 30 … … 53 55 public static function init() { 54 56 self::init_hooks(); 57 58 Endpoints::init(); 59 60 Passkeys::init(); 55 61 56 62 Settings::init(); … … 292 298 293 299 /** 294 * Remove all non- WP Mail SMTPplugin notices from our plugin pages.300 * Remove all non-plugin notices from our plugin pages. 295 301 * 296 302 * @since 2.0.0 -
secured-wp/trunk/classes/settings/settings-options/2fa-settings.php
r3357500 r3377588 66 66 ); 67 67 68 Settings::build_option( 69 array( 70 'name' => esc_html__( 'Passkeys', 'secured-wp' ), 71 'id' => Two_FA_Settings::PASSKEYS_SETTINGS_NAME, 72 'type' => 'checkbox', 73 'default' => false, 74 'hint' => esc_html__( 'Enable passkeys usage on site', 'secured-wp' ), 75 ) 76 ); 77 68 78 echo '</div><!-- #2fa-menu-items -->'; -
secured-wp/trunk/classes/settings/settings-options/login.php
r3359234 r3377588 125 125 'default' => '15', 126 126 'min' => 1, 127 'max' => 180,127 'max' => 9999, 128 128 'hint' => esc_html__( 'If locked, how many minutes before give the user ability to login again', 'secured-wp' ), 129 129 ) 130 130 ); 131 131 132 Settings::build_option( 133 array( 134 'name' => esc_html__( 'After login attempts is reached redirect to fake account', 'secured-wp' ), 135 'id' => Login_Attempts::CREATE_FAKE_ACCOUNT_SETTINGS_NAME, 136 'toggle' => '#' . Login_Attempts::FAKE_ACCOUNT_NAME_SETTINGS_NAME . '-item', 137 'type' => 'checkbox', 138 'default' => 'false', 139 'hint' => esc_html__( 'If someone goes to the original WP login, where it should be redirected to', 'secured-wp' ), 140 ) 141 ); 142 143 Settings::build_option( 144 array( 145 'name' => esc_html__( 'Fake account username', 'secured-wp' ), 146 'id' => Login_Attempts::FAKE_ACCOUNT_NAME_SETTINGS_NAME, 147 'type' => 'text', 148 'default' => 'honeypot', 149 'hint' => esc_html__( 'After login attempts are reached you can make false positive login in fake account without a role, that wont stop attacker but will slow them at least', 'secured-wp' ), 150 ) 151 ); 132 152 echo '</div><!-- #login-attempts-items -->'; -
secured-wp/trunk/constants.php
r3359244 r3377588 26 26 define( 'WPSEC_PLUGIN_SECURED_URL', plugin_dir_url( __FILE__ ) ); 27 27 define( 'WPSEC_PLUGIN_SECURED_PATH', plugin_dir_path( __FILE__ ) ); 28 define( 'WPSEC_PREFIX', 'secwp_' ); 28 29 define( 'WPSEC_PLUGIN_SECURED_SETTINGS_NAME', '_wpsec_plugin_options' ); 29 30 -
secured-wp/trunk/third-party/vendor/autoload.php
r3359244 r3377588 20 20 require_once __DIR__ . '/composer/autoload_real.php'; 21 21 22 return ComposerAutoloaderInit 426754beb9575b4e777e32a3f8788454::getLoader();22 return ComposerAutoloaderInit2782d691a0b3c8113df72eed15c92368::getLoader(); -
secured-wp/trunk/third-party/vendor/composer/autoload_classmap.php
r3359234 r3377588 8 8 return array( 9 9 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 10 'WPSEC\\Admin\\Methods\\Traits\\Providers' => $baseDir . '/../classes/Controllers/Modules/Traits/class-provider-trait.php', 11 'WPSEC\\Admin\\Methods\\passkeys\\Authenticator_Data' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-authenticator-data.php', 12 'WPSEC\\Controllers\\Endpoints' => $baseDir . '/../classes/Controllers/class-endpoints.php', 10 13 'WPSEC\\Controllers\\Login_Check' => $baseDir . '/../classes/Controllers/class-login-check.php', 11 14 'WPSEC\\Controllers\\Modules\\Base_Module' => $baseDir . '/../classes/Controllers/Modules/class-base-module.php', … … 32 35 'WPSEC\\Helpers\\ValidatePassword' => $baseDir . '/../classes/Validators/class-password-validator.php', 33 36 'WPSEC\\Helpers\\WP_Helper' => $baseDir . '/../classes/Helpers/class-wp-helper.php', 37 'WPSEC\\Methods\\Passkeys' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-passkeys.php', 38 'WPSEC\\Methods\\Passkeys\\Attestation_Object' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-attestation-object.php', 39 'WPSEC\\Methods\\Passkeys\\Byte_Buffer' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-byte-buffer.php', 40 'WPSEC\\Methods\\Passkeys\\Cbor_Decoder' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-chor-decoder.php', 41 'WPSEC\\Methods\\Passkeys\\Web_Authn' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-web-authn.php', 42 'WPSEC\\Methods\\Passkeys\\Web_Authn_Exception' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-web-authn-exception.php', 34 43 'WPSEC\\Mosules\\Views\\Login_Forms' => $baseDir . '/../classes/Controllers/Modules/Views/class-login-forms.php', 44 'WPSEC\\Passkeys\\API_Register' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-api-register.php', 45 'WPSEC\\Passkeys\\API_Signin' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-api-signin.php', 46 'WPSEC\\Passkeys\\Ajax_Passkeys' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-ajax-passkeys.php', 47 'WPSEC\\Passkeys\\Authentication_Server' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-authenticate-server.php', 48 'WPSEC\\Passkeys\\Format\\Android_Key' => $baseDir . '/../classes/Controllers/Modules/passkeys/format/android-key.php', 49 'WPSEC\\Passkeys\\Format\\Android_Safety_Net' => $baseDir . '/../classes/Controllers/Modules/passkeys/format/android-safety-net.php', 50 'WPSEC\\Passkeys\\Format\\Apple' => $baseDir . '/../classes/Controllers/Modules/passkeys/format/apple.php', 51 'WPSEC\\Passkeys\\Format\\Format_Base' => $baseDir . '/../classes/Controllers/Modules/passkeys/format/format-base.php', 52 'WPSEC\\Passkeys\\Format\\None' => $baseDir . '/../classes/Controllers/Modules/passkeys/format/none.php', 53 'WPSEC\\Passkeys\\Format\\Packed' => $baseDir . '/../classes/Controllers/Modules/passkeys/format/packed.php', 54 'WPSEC\\Passkeys\\Format\\Tpm' => $baseDir . '/../classes/Controllers/Modules/passkeys/format/tpm.php', 55 'WPSEC\\Passkeys\\Format\\U2f' => $baseDir . '/../classes/Controllers/Modules/passkeys/format/u2f.php', 56 'WPSEC\\Passkeys\\Helpers\\Authenticators_Helper' => $baseDir . '/../classes/Controllers/Modules/passkeys/helpers/class-authenticators-helper.php', 57 'WPSEC\\Passkeys\\PassKeys_Endpoints' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-passkeys-endpoints.php', 58 'WPSEC\\Passkeys\\Passkeys_User_Profile' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-passkeys-user-profile.php', 59 'WPSEC\\Passkeys\\Source_Repository' => $baseDir . '/../classes/Controllers/Modules/passkeys/class-source-repository.php', 35 60 'WPSEC\\Secured' => $baseDir . '/../classes/class-secured.php', 36 61 'WPSEC\\Settings\\Settings_Builder' => $baseDir . '/../classes/settings/class-settings-builder.php', -
secured-wp/trunk/third-party/vendor/composer/autoload_real.php
r3359244 r3377588 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 426754beb9575b4e777e32a3f87884545 class ComposerAutoloaderInit2782d691a0b3c8113df72eed15c92368 6 6 { 7 7 private static $loader; … … 23 23 } 24 24 25 spl_autoload_register(array('ComposerAutoloaderInit 426754beb9575b4e777e32a3f8788454', 'loadClassLoader'), true, true);25 spl_autoload_register(array('ComposerAutoloaderInit2782d691a0b3c8113df72eed15c92368', 'loadClassLoader'), true, true); 26 26 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 27 spl_autoload_unregister(array('ComposerAutoloaderInit 426754beb9575b4e777e32a3f8788454', 'loadClassLoader'));27 spl_autoload_unregister(array('ComposerAutoloaderInit2782d691a0b3c8113df72eed15c92368', 'loadClassLoader')); 28 28 29 29 require __DIR__ . '/autoload_static.php'; 30 call_user_func(\Composer\Autoload\ComposerStaticInit 426754beb9575b4e777e32a3f8788454::getInitializer($loader));30 call_user_func(\Composer\Autoload\ComposerStaticInit2782d691a0b3c8113df72eed15c92368::getInitializer($loader)); 31 31 32 32 $loader->setClassMapAuthoritative(true); -
secured-wp/trunk/third-party/vendor/composer/autoload_static.php
r3359244 r3377588 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 426754beb9575b4e777e32a3f87884547 class ComposerStaticInit2782d691a0b3c8113df72eed15c92368 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( … … 36 36 public static $classMap = array ( 37 37 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 38 'WPSEC\\Admin\\Methods\\Traits\\Providers' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/Traits/class-provider-trait.php', 39 'WPSEC\\Admin\\Methods\\passkeys\\Authenticator_Data' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-authenticator-data.php', 40 'WPSEC\\Controllers\\Endpoints' => __DIR__ . '/../..' . '/../classes/Controllers/class-endpoints.php', 38 41 'WPSEC\\Controllers\\Login_Check' => __DIR__ . '/../..' . '/../classes/Controllers/class-login-check.php', 39 42 'WPSEC\\Controllers\\Modules\\Base_Module' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/class-base-module.php', … … 60 63 'WPSEC\\Helpers\\ValidatePassword' => __DIR__ . '/../..' . '/../classes/Validators/class-password-validator.php', 61 64 'WPSEC\\Helpers\\WP_Helper' => __DIR__ . '/../..' . '/../classes/Helpers/class-wp-helper.php', 65 'WPSEC\\Methods\\Passkeys' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-passkeys.php', 66 'WPSEC\\Methods\\Passkeys\\Attestation_Object' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-attestation-object.php', 67 'WPSEC\\Methods\\Passkeys\\Byte_Buffer' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-byte-buffer.php', 68 'WPSEC\\Methods\\Passkeys\\Cbor_Decoder' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-chor-decoder.php', 69 'WPSEC\\Methods\\Passkeys\\Web_Authn' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-web-authn.php', 70 'WPSEC\\Methods\\Passkeys\\Web_Authn_Exception' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-web-authn-exception.php', 62 71 'WPSEC\\Mosules\\Views\\Login_Forms' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/Views/class-login-forms.php', 72 'WPSEC\\Passkeys\\API_Register' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-api-register.php', 73 'WPSEC\\Passkeys\\API_Signin' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-api-signin.php', 74 'WPSEC\\Passkeys\\Ajax_Passkeys' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-ajax-passkeys.php', 75 'WPSEC\\Passkeys\\Authentication_Server' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-authenticate-server.php', 76 'WPSEC\\Passkeys\\Format\\Android_Key' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/format/android-key.php', 77 'WPSEC\\Passkeys\\Format\\Android_Safety_Net' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/format/android-safety-net.php', 78 'WPSEC\\Passkeys\\Format\\Apple' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/format/apple.php', 79 'WPSEC\\Passkeys\\Format\\Format_Base' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/format/format-base.php', 80 'WPSEC\\Passkeys\\Format\\None' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/format/none.php', 81 'WPSEC\\Passkeys\\Format\\Packed' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/format/packed.php', 82 'WPSEC\\Passkeys\\Format\\Tpm' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/format/tpm.php', 83 'WPSEC\\Passkeys\\Format\\U2f' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/format/u2f.php', 84 'WPSEC\\Passkeys\\Helpers\\Authenticators_Helper' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/helpers/class-authenticators-helper.php', 85 'WPSEC\\Passkeys\\PassKeys_Endpoints' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-passkeys-endpoints.php', 86 'WPSEC\\Passkeys\\Passkeys_User_Profile' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-passkeys-user-profile.php', 87 'WPSEC\\Passkeys\\Source_Repository' => __DIR__ . '/../..' . '/../classes/Controllers/Modules/passkeys/class-source-repository.php', 63 88 'WPSEC\\Secured' => __DIR__ . '/../..' . '/../classes/class-secured.php', 64 89 'WPSEC\\Settings\\Settings_Builder' => __DIR__ . '/../..' . '/../classes/settings/class-settings-builder.php', … … 172 197 { 173 198 return \Closure::bind(function () use ($loader) { 174 $loader->prefixLengthsPsr4 = ComposerStaticInit 426754beb9575b4e777e32a3f8788454::$prefixLengthsPsr4;175 $loader->prefixDirsPsr4 = ComposerStaticInit 426754beb9575b4e777e32a3f8788454::$prefixDirsPsr4;176 $loader->classMap = ComposerStaticInit 426754beb9575b4e777e32a3f8788454::$classMap;199 $loader->prefixLengthsPsr4 = ComposerStaticInit2782d691a0b3c8113df72eed15c92368::$prefixLengthsPsr4; 200 $loader->prefixDirsPsr4 = ComposerStaticInit2782d691a0b3c8113df72eed15c92368::$prefixDirsPsr4; 201 $loader->classMap = ComposerStaticInit2782d691a0b3c8113df72eed15c92368::$classMap; 177 202 178 203 }, null, ClassLoader::class); -
secured-wp/trunk/third-party/vendor/vendor/composer/autoload_classmap.php
r3359234 r3377588 6 6 $vendorDir = \dirname(__DIR__); 7 7 $baseDir = \dirname($vendorDir); 8 return array('WPSEC_Vendor\\Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 'Mobile_Detect' => $vendorDir . '/mobiledetect/mobiledetectlib/Mobile_Detect.php', 'WPSEC_Vendor\\WPSEC\\ Controllers\\Login_Check' => $baseDir . '/classes/Controllers/class-login-check.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Base_Module' => $baseDir . '/classes/Controllers/Modules/class-base-module.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Login' => $baseDir . '/classes/Controllers/Modules/class-login.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Login_Attempts' => $baseDir . '/classes/Controllers/Modules/class-login-attempts.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Remember_Me' => $baseDir . '/classes/Controllers/Modules/class-remember-me.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Two_FA_Settings' => $baseDir . '/classes/Controllers/Modules/class-two-fa-settings.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\XML_RPC_Prevents' => $baseDir . '/classes/Controllers/Modules/class-xml-rpc-prevents.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Settings' => $baseDir . '/classes/Controllers/class-settings.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\User' => $baseDir . '/classes/Controllers/class-user.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Users' => $baseDir . '/classes/Controllers/class-users.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Ajax_Requests' => $baseDir . '/classes/Helpers/class-ajax-requests.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Classes_Helper' => $baseDir . '/classes/Helpers/class-classes-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Information\\Module_Information' => $baseDir . '/classes/Helpers/Information/class-module-information.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\JIT_JS_Compiler' => $baseDir . '/classes/Helpers/class-jit-js-compiler.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\JIT_SCSS_Compiler' => $baseDir . '/classes/Helpers/class-jit-scss-compiler.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\List_Files' => $baseDir . '/classes/Helpers/class-list-files.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Mail_Helper' => $baseDir . '/classes/Helpers/class-mail-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Notify_Admin' => $baseDir . '/classes/Helpers/class-notify-admin.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Out_Of_Band_Email' => $baseDir . '/classes/Helpers/class-out-of-band-email.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\PHPHelpers\\Class_Helper' => $baseDir . '/classes/Helpers/PHPHelpers/class-class-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Secrets_Generator' => $baseDir . '/classes/Helpers/class-secrets-generator.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\TOTP_Helper' => $baseDir . '/classes/Helpers/class-totp-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\ValidatePassword' => $baseDir . '/classes/Validators/class-password-validator.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\WP_Helper' => $baseDir . '/classes/Helpers/class-wp-helper.php', 'WPSEC_Vendor\\WPSEC\\Mosules\\Views\\Login_Forms' => $baseDir . '/classes/Controllers/Modules/Views/class-login-forms.php', 'WPSEC_Vendor\\WPSEC\\Secured' => $baseDir . '/classes/class-secured.php', 'WPSEC_Vendor\\WPSEC\\Settings\\Settings_Builder' => $baseDir . '/classes/settings/class-settings-builder.php', 'WPSEC_Vendor\\WPSEC\\Validators\\Validator' => $baseDir . '/classes/Validators/class-validator.php', 'WPSEC_Vendor\\WPSEC\\Views\\User_Profile' => $baseDir . '/classes/Views/class-user-prifile.php', 'WPSEC_Vendor\\WPSEC\\Views\\Users_List' => $baseDir . '/classes/Views/class-user-list.php');8 return array('WPSEC_Vendor\\Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 'Mobile_Detect' => $vendorDir . '/mobiledetect/mobiledetectlib/Mobile_Detect.php', 'WPSEC_Vendor\\WPSEC\\Admin\\Methods\\Traits\\Providers' => $baseDir . '/classes/Controllers/Modules/Traits/class-provider-trait.php', 'WPSEC_Vendor\\WPSEC\\Admin\\Methods\\passkeys\\Authenticator_Data' => $baseDir . '/classes/Controllers/Modules/passkeys/class-authenticator-data.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Endpoints' => $baseDir . '/classes/Controllers/class-endpoints.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Login_Check' => $baseDir . '/classes/Controllers/class-login-check.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Base_Module' => $baseDir . '/classes/Controllers/Modules/class-base-module.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Login' => $baseDir . '/classes/Controllers/Modules/class-login.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Login_Attempts' => $baseDir . '/classes/Controllers/Modules/class-login-attempts.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Remember_Me' => $baseDir . '/classes/Controllers/Modules/class-remember-me.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Two_FA_Settings' => $baseDir . '/classes/Controllers/Modules/class-two-fa-settings.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\XML_RPC_Prevents' => $baseDir . '/classes/Controllers/Modules/class-xml-rpc-prevents.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Settings' => $baseDir . '/classes/Controllers/class-settings.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\User' => $baseDir . '/classes/Controllers/class-user.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Users' => $baseDir . '/classes/Controllers/class-users.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Ajax_Requests' => $baseDir . '/classes/Helpers/class-ajax-requests.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Classes_Helper' => $baseDir . '/classes/Helpers/class-classes-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Information\\Module_Information' => $baseDir . '/classes/Helpers/Information/class-module-information.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\JIT_JS_Compiler' => $baseDir . '/classes/Helpers/class-jit-js-compiler.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\JIT_SCSS_Compiler' => $baseDir . '/classes/Helpers/class-jit-scss-compiler.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\List_Files' => $baseDir . '/classes/Helpers/class-list-files.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Mail_Helper' => $baseDir . '/classes/Helpers/class-mail-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Notify_Admin' => $baseDir . '/classes/Helpers/class-notify-admin.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Out_Of_Band_Email' => $baseDir . '/classes/Helpers/class-out-of-band-email.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\PHPHelpers\\Class_Helper' => $baseDir . '/classes/Helpers/PHPHelpers/class-class-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Secrets_Generator' => $baseDir . '/classes/Helpers/class-secrets-generator.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\TOTP_Helper' => $baseDir . '/classes/Helpers/class-totp-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\ValidatePassword' => $baseDir . '/classes/Validators/class-password-validator.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\WP_Helper' => $baseDir . '/classes/Helpers/class-wp-helper.php', 'WPSEC_Vendor\\WPSEC\\Methods\\Passkeys' => $baseDir . '/classes/Controllers/Modules/passkeys/class-passkeys.php', 'WPSEC_Vendor\\WPSEC\\Methods\\Passkeys\\Attestation_Object' => $baseDir . '/classes/Controllers/Modules/passkeys/class-attestation-object.php', 'WPSEC_Vendor\\WPSEC\\Methods\\Passkeys\\Byte_Buffer' => $baseDir . '/classes/Controllers/Modules/passkeys/class-byte-buffer.php', 'WPSEC_Vendor\\WPSEC\\Methods\\Passkeys\\Cbor_Decoder' => $baseDir . '/classes/Controllers/Modules/passkeys/class-chor-decoder.php', 'WPSEC_Vendor\\WPSEC\\Methods\\Passkeys\\Web_Authn' => $baseDir . '/classes/Controllers/Modules/passkeys/class-web-authn.php', 'WPSEC_Vendor\\WPSEC\\Methods\\Passkeys\\Web_Authn_Exception' => $baseDir . '/classes/Controllers/Modules/passkeys/class-web-authn-exception.php', 'WPSEC_Vendor\\WPSEC\\Mosules\\Views\\Login_Forms' => $baseDir . '/classes/Controllers/Modules/Views/class-login-forms.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\API_Register' => $baseDir . '/classes/Controllers/Modules/passkeys/class-api-register.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\API_Signin' => $baseDir . '/classes/Controllers/Modules/passkeys/class-api-signin.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Ajax_Passkeys' => $baseDir . '/classes/Controllers/Modules/passkeys/class-ajax-passkeys.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Authentication_Server' => $baseDir . '/classes/Controllers/Modules/passkeys/class-authenticate-server.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\Android_Key' => $baseDir . '/classes/Controllers/Modules/passkeys/format/android-key.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\Android_Safety_Net' => $baseDir . '/classes/Controllers/Modules/passkeys/format/android-safety-net.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\Apple' => $baseDir . '/classes/Controllers/Modules/passkeys/format/apple.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\Format_Base' => $baseDir . '/classes/Controllers/Modules/passkeys/format/format-base.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\None' => $baseDir . '/classes/Controllers/Modules/passkeys/format/none.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\Packed' => $baseDir . '/classes/Controllers/Modules/passkeys/format/packed.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\Tpm' => $baseDir . '/classes/Controllers/Modules/passkeys/format/tpm.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\U2f' => $baseDir . '/classes/Controllers/Modules/passkeys/format/u2f.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Helpers\\Authenticators_Helper' => $baseDir . '/classes/Controllers/Modules/passkeys/helpers/class-authenticators-helper.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\PassKeys_Endpoints' => $baseDir . '/classes/Controllers/Modules/passkeys/class-passkeys-endpoints.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Passkeys_User_Profile' => $baseDir . '/classes/Controllers/Modules/passkeys/class-passkeys-user-profile.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Source_Repository' => $baseDir . '/classes/Controllers/Modules/passkeys/class-source-repository.php', 'WPSEC_Vendor\\WPSEC\\Secured' => $baseDir . '/classes/class-secured.php', 'WPSEC_Vendor\\WPSEC\\Settings\\Settings_Builder' => $baseDir . '/classes/settings/class-settings-builder.php', 'WPSEC_Vendor\\WPSEC\\Validators\\Validator' => $baseDir . '/classes/Validators/class-validator.php', 'WPSEC_Vendor\\WPSEC\\Views\\User_Profile' => $baseDir . '/classes/Views/class-user-prifile.php', 'WPSEC_Vendor\\WPSEC\\Views\\Users_List' => $baseDir . '/classes/Views/class-user-list.php'); -
secured-wp/trunk/third-party/vendor/vendor/composer/autoload_static.php
r3359234 r3377588 11 11 public static $prefixDirsPsr4 = array('WPSEC\\' => array(0 => __DIR__ . '/../..' . '/classes'), 'Tests\\' => array(0 => __DIR__ . '/../..' . '/tests'), 'Psr\\Clock\\' => array(0 => __DIR__ . '/..' . '/psr/clock/src'), 'ParagonIE\\ConstantTime\\' => array(0 => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src'), 'OTPHP\\' => array(0 => __DIR__ . '/..' . '/spomky-labs/otphp/src'), 'DASPRiD\\Enum\\' => array(0 => __DIR__ . '/..' . '/dasprid/enum/src'), 'BaconQrCode\\' => array(0 => __DIR__ . '/..' . '/bacon/bacon-qr-code/src')); 12 12 public static $prefixesPsr0 = array('D' => array('Detection' => array(0 => __DIR__ . '/..' . '/mobiledetect/mobiledetectlib/namespaced'))); 13 public static $classMap = array('WPSEC_Vendor\\Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 'Mobile_Detect' => __DIR__ . '/..' . '/mobiledetect/mobiledetectlib/Mobile_Detect.php', 'WPSEC_Vendor\\WPSEC\\ Controllers\\Login_Check' => __DIR__ . '/../..' . '/classes/Controllers/class-login-check.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Base_Module' => __DIR__ . '/../..' . '/classes/Controllers/Modules/class-base-module.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Login' => __DIR__ . '/../..' . '/classes/Controllers/Modules/class-login.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Login_Attempts' => __DIR__ . '/../..' . '/classes/Controllers/Modules/class-login-attempts.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Remember_Me' => __DIR__ . '/../..' . '/classes/Controllers/Modules/class-remember-me.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Two_FA_Settings' => __DIR__ . '/../..' . '/classes/Controllers/Modules/class-two-fa-settings.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\XML_RPC_Prevents' => __DIR__ . '/../..' . '/classes/Controllers/Modules/class-xml-rpc-prevents.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Settings' => __DIR__ . '/../..' . '/classes/Controllers/class-settings.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\User' => __DIR__ . '/../..' . '/classes/Controllers/class-user.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Users' => __DIR__ . '/../..' . '/classes/Controllers/class-users.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Ajax_Requests' => __DIR__ . '/../..' . '/classes/Helpers/class-ajax-requests.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Classes_Helper' => __DIR__ . '/../..' . '/classes/Helpers/class-classes-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Information\\Module_Information' => __DIR__ . '/../..' . '/classes/Helpers/Information/class-module-information.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\JIT_JS_Compiler' => __DIR__ . '/../..' . '/classes/Helpers/class-jit-js-compiler.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\JIT_SCSS_Compiler' => __DIR__ . '/../..' . '/classes/Helpers/class-jit-scss-compiler.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\List_Files' => __DIR__ . '/../..' . '/classes/Helpers/class-list-files.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Mail_Helper' => __DIR__ . '/../..' . '/classes/Helpers/class-mail-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Notify_Admin' => __DIR__ . '/../..' . '/classes/Helpers/class-notify-admin.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Out_Of_Band_Email' => __DIR__ . '/../..' . '/classes/Helpers/class-out-of-band-email.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\PHPHelpers\\Class_Helper' => __DIR__ . '/../..' . '/classes/Helpers/PHPHelpers/class-class-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Secrets_Generator' => __DIR__ . '/../..' . '/classes/Helpers/class-secrets-generator.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\TOTP_Helper' => __DIR__ . '/../..' . '/classes/Helpers/class-totp-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\ValidatePassword' => __DIR__ . '/../..' . '/classes/Validators/class-password-validator.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\WP_Helper' => __DIR__ . '/../..' . '/classes/Helpers/class-wp-helper.php', 'WPSEC_Vendor\\WPSEC\\Mosules\\Views\\Login_Forms' => __DIR__ . '/../..' . '/classes/Controllers/Modules/Views/class-login-forms.php', 'WPSEC_Vendor\\WPSEC\\Secured' => __DIR__ . '/../..' . '/classes/class-secured.php', 'WPSEC_Vendor\\WPSEC\\Settings\\Settings_Builder' => __DIR__ . '/../..' . '/classes/settings/class-settings-builder.php', 'WPSEC_Vendor\\WPSEC\\Validators\\Validator' => __DIR__ . '/../..' . '/classes/Validators/class-validator.php', 'WPSEC_Vendor\\WPSEC\\Views\\User_Profile' => __DIR__ . '/../..' . '/classes/Views/class-user-prifile.php', 'WPSEC_Vendor\\WPSEC\\Views\\Users_List' => __DIR__ . '/../..' . '/classes/Views/class-user-list.php');13 public static $classMap = array('WPSEC_Vendor\\Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 'Mobile_Detect' => __DIR__ . '/..' . '/mobiledetect/mobiledetectlib/Mobile_Detect.php', 'WPSEC_Vendor\\WPSEC\\Admin\\Methods\\Traits\\Providers' => __DIR__ . '/../..' . '/classes/Controllers/Modules/Traits/class-provider-trait.php', 'WPSEC_Vendor\\WPSEC\\Admin\\Methods\\passkeys\\Authenticator_Data' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-authenticator-data.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Endpoints' => __DIR__ . '/../..' . '/classes/Controllers/class-endpoints.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Login_Check' => __DIR__ . '/../..' . '/classes/Controllers/class-login-check.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Base_Module' => __DIR__ . '/../..' . '/classes/Controllers/Modules/class-base-module.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Login' => __DIR__ . '/../..' . '/classes/Controllers/Modules/class-login.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Login_Attempts' => __DIR__ . '/../..' . '/classes/Controllers/Modules/class-login-attempts.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Remember_Me' => __DIR__ . '/../..' . '/classes/Controllers/Modules/class-remember-me.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\Two_FA_Settings' => __DIR__ . '/../..' . '/classes/Controllers/Modules/class-two-fa-settings.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Modules\\XML_RPC_Prevents' => __DIR__ . '/../..' . '/classes/Controllers/Modules/class-xml-rpc-prevents.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Settings' => __DIR__ . '/../..' . '/classes/Controllers/class-settings.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\User' => __DIR__ . '/../..' . '/classes/Controllers/class-user.php', 'WPSEC_Vendor\\WPSEC\\Controllers\\Users' => __DIR__ . '/../..' . '/classes/Controllers/class-users.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Ajax_Requests' => __DIR__ . '/../..' . '/classes/Helpers/class-ajax-requests.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Classes_Helper' => __DIR__ . '/../..' . '/classes/Helpers/class-classes-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Information\\Module_Information' => __DIR__ . '/../..' . '/classes/Helpers/Information/class-module-information.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\JIT_JS_Compiler' => __DIR__ . '/../..' . '/classes/Helpers/class-jit-js-compiler.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\JIT_SCSS_Compiler' => __DIR__ . '/../..' . '/classes/Helpers/class-jit-scss-compiler.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\List_Files' => __DIR__ . '/../..' . '/classes/Helpers/class-list-files.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Mail_Helper' => __DIR__ . '/../..' . '/classes/Helpers/class-mail-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Notify_Admin' => __DIR__ . '/../..' . '/classes/Helpers/class-notify-admin.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Out_Of_Band_Email' => __DIR__ . '/../..' . '/classes/Helpers/class-out-of-band-email.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\PHPHelpers\\Class_Helper' => __DIR__ . '/../..' . '/classes/Helpers/PHPHelpers/class-class-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\Secrets_Generator' => __DIR__ . '/../..' . '/classes/Helpers/class-secrets-generator.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\TOTP_Helper' => __DIR__ . '/../..' . '/classes/Helpers/class-totp-helper.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\ValidatePassword' => __DIR__ . '/../..' . '/classes/Validators/class-password-validator.php', 'WPSEC_Vendor\\WPSEC\\Helpers\\WP_Helper' => __DIR__ . '/../..' . '/classes/Helpers/class-wp-helper.php', 'WPSEC_Vendor\\WPSEC\\Methods\\Passkeys' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-passkeys.php', 'WPSEC_Vendor\\WPSEC\\Methods\\Passkeys\\Attestation_Object' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-attestation-object.php', 'WPSEC_Vendor\\WPSEC\\Methods\\Passkeys\\Byte_Buffer' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-byte-buffer.php', 'WPSEC_Vendor\\WPSEC\\Methods\\Passkeys\\Cbor_Decoder' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-chor-decoder.php', 'WPSEC_Vendor\\WPSEC\\Methods\\Passkeys\\Web_Authn' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-web-authn.php', 'WPSEC_Vendor\\WPSEC\\Methods\\Passkeys\\Web_Authn_Exception' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-web-authn-exception.php', 'WPSEC_Vendor\\WPSEC\\Mosules\\Views\\Login_Forms' => __DIR__ . '/../..' . '/classes/Controllers/Modules/Views/class-login-forms.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\API_Register' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-api-register.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\API_Signin' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-api-signin.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Ajax_Passkeys' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-ajax-passkeys.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Authentication_Server' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-authenticate-server.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\Android_Key' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/format/android-key.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\Android_Safety_Net' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/format/android-safety-net.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\Apple' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/format/apple.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\Format_Base' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/format/format-base.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\None' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/format/none.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\Packed' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/format/packed.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\Tpm' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/format/tpm.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Format\\U2f' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/format/u2f.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Helpers\\Authenticators_Helper' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/helpers/class-authenticators-helper.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\PassKeys_Endpoints' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-passkeys-endpoints.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Passkeys_User_Profile' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-passkeys-user-profile.php', 'WPSEC_Vendor\\WPSEC\\Passkeys\\Source_Repository' => __DIR__ . '/../..' . '/classes/Controllers/Modules/passkeys/class-source-repository.php', 'WPSEC_Vendor\\WPSEC\\Secured' => __DIR__ . '/../..' . '/classes/class-secured.php', 'WPSEC_Vendor\\WPSEC\\Settings\\Settings_Builder' => __DIR__ . '/../..' . '/classes/settings/class-settings-builder.php', 'WPSEC_Vendor\\WPSEC\\Validators\\Validator' => __DIR__ . '/../..' . '/classes/Validators/class-validator.php', 'WPSEC_Vendor\\WPSEC\\Views\\User_Profile' => __DIR__ . '/../..' . '/classes/Views/class-user-prifile.php', 'WPSEC_Vendor\\WPSEC\\Views\\Users_List' => __DIR__ . '/../..' . '/classes/Views/class-user-list.php'); 14 14 public static function getInitializer(ClassLoader $loader) 15 15 { -
secured-wp/trunk/third-party/vendor/vendor/composer/installed.json
r3359234 r3377588 60 60 { 61 61 "name": "dasprid\/enum", 62 "version": "1.0. 6",63 "version_normalized": "1.0. 6.0",62 "version": "1.0.7", 63 "version_normalized": "1.0.7.0", 64 64 "source": { 65 65 "type": "git", 66 66 "url": "https:\/\/github.com\/DASPRiD\/Enum.git", 67 "reference": " 8dfd07c6d2cf31c8da90c53b83c026c7696dda90"68 }, 69 "dist": { 70 "type": "zip", 71 "url": "https:\/\/api.github.com\/repos\/DASPRiD\/Enum\/zipball\/ 8dfd07c6d2cf31c8da90c53b83c026c7696dda90",72 "reference": " 8dfd07c6d2cf31c8da90c53b83c026c7696dda90",67 "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce" 68 }, 69 "dist": { 70 "type": "zip", 71 "url": "https:\/\/api.github.com\/repos\/DASPRiD\/Enum\/zipball\/b5874fa9ed0043116c72162ec7f4fb50e02e7cce", 72 "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce", 73 73 "shasum": "" 74 74 }, … … 80 80 "squizlabs\/php_codesniffer": "*" 81 81 }, 82 "time": "202 4-08-09T14:30:48+00:00",82 "time": "2025-09-16T12:23:56+00:00", 83 83 "type": "library", 84 84 "installation-source": "dist", … … 107 107 "support": { 108 108 "issues": "https:\/\/github.com\/DASPRiD\/Enum\/issues", 109 "source": "https:\/\/github.com\/DASPRiD\/Enum\/tree\/1.0. 6"109 "source": "https:\/\/github.com\/DASPRiD\/Enum\/tree\/1.0.7" 110 110 }, 111 111 "install-path": "..\/dasprid\/enum" … … 178 178 { 179 179 "name": "paragonie\/constant_time_encoding", 180 "version": "v3. 0.0",181 "version_normalized": "3. 0.0.0",180 "version": "v3.1.3", 181 "version_normalized": "3.1.3.0", 182 182 "source": { 183 183 "type": "git", 184 184 "url": "https:\/\/github.com\/paragonie\/constant_time_encoding.git", 185 "reference": "d f1e7fde177501eee2037dd159cf04f5f301a512"186 }, 187 "dist": { 188 "type": "zip", 189 "url": "https:\/\/api.github.com\/repos\/paragonie\/constant_time_encoding\/zipball\/d f1e7fde177501eee2037dd159cf04f5f301a512",190 "reference": "d f1e7fde177501eee2037dd159cf04f5f301a512",185 "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77" 186 }, 187 "dist": { 188 "type": "zip", 189 "url": "https:\/\/api.github.com\/repos\/paragonie\/constant_time_encoding\/zipball\/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", 190 "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", 191 191 "shasum": "" 192 192 }, … … 195 195 }, 196 196 "require-dev": { 197 "phpunit\/phpunit": "^9", 198 "vimeo\/psalm": "^4|^5" 199 }, 200 "time": "2024-05-08T12:36:18+00:00", 197 "infection\/infection": "^0", 198 "nikic\/php-fuzzer": "^0", 199 "phpunit\/phpunit": "^9|^10|^11", 200 "vimeo\/psalm": "^4|^5|^6" 201 }, 202 "time": "2025-09-24T15:06:41+00:00", 201 203 "type": "library", 202 204 "installation-source": "dist", -
secured-wp/trunk/third-party/vendor/vendor/composer/installed.php
r3359234 r3377588 3 3 namespace WPSEC_Vendor; 4 4 5 return array('root' => array('name' => 'wps/secured', 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => ' 41984b980e33b7231d2dffa3c5f1e24ecba1df8a', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('bacon/bacon-qr-code' => array('pretty_version' => 'v3.0.1', 'version' => '3.0.1.0', 'reference' => 'f9cc1f52b5a463062251d666761178dbdb6b544f', 'type' => 'library', 'install_path' => __DIR__ . '/../bacon/bacon-qr-code', 'aliases' => array(), 'dev_requirement' => \false), 'dasprid/enum' => array('pretty_version' => '1.0.6', 'version' => '1.0.6.0', 'reference' => '8dfd07c6d2cf31c8da90c53b83c026c7696dda90', 'type' => 'library', 'install_path' => __DIR__ . '/../dasprid/enum', 'aliases' => array(), 'dev_requirement' => \false), 'mobiledetect/mobiledetectlib' => array('pretty_version' => '2.8.45', 'version' => '2.8.45.0', 'reference' => '96aaebcf4f50d3d2692ab81d2c5132e425bca266', 'type' => 'library', 'install_path' => __DIR__ . '/../mobiledetect/mobiledetectlib', 'aliases' => array(), 'dev_requirement' => \false), 'paragonie/constant_time_encoding' => array('pretty_version' => 'v3.0.0', 'version' => '3.0.0.0', 'reference' => 'df1e7fde177501eee2037dd159cf04f5f301a512', 'type' => 'library', 'install_path' => __DIR__ . '/../paragonie/constant_time_encoding', 'aliases' => array(), 'dev_requirement' => \false), 'psr/clock' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => 'e41a24703d4560fd0acb709162f73b8adfc3aa0d', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/clock', 'aliases' => array(), 'dev_requirement' => \false), 'spomky-labs/otphp' => array('pretty_version' => '11.3.0', 'version' => '11.3.0.0', 'reference' => '2d8ccb5fc992b9cc65ef321fa4f00fefdb3f4b33', 'type' => 'library', 'install_path' => __DIR__ . '/../spomky-labs/otphp', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.6.0', 'version' => '3.6.0.0', 'reference' => '63afe740e99a13ba87ec199bb07bbdee937a5b62', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'wps/secured' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '41984b980e33b7231d2dffa3c5f1e24ecba1df8a', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false)));5 return array('root' => array('name' => 'wps/secured', 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '84baf0d56d5642175050a31e2d8219f097cb44e4', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('bacon/bacon-qr-code' => array('pretty_version' => 'v3.0.1', 'version' => '3.0.1.0', 'reference' => 'f9cc1f52b5a463062251d666761178dbdb6b544f', 'type' => 'library', 'install_path' => __DIR__ . '/../bacon/bacon-qr-code', 'aliases' => array(), 'dev_requirement' => \false), 'dasprid/enum' => array('pretty_version' => '1.0.7', 'version' => '1.0.7.0', 'reference' => 'b5874fa9ed0043116c72162ec7f4fb50e02e7cce', 'type' => 'library', 'install_path' => __DIR__ . '/../dasprid/enum', 'aliases' => array(), 'dev_requirement' => \false), 'mobiledetect/mobiledetectlib' => array('pretty_version' => '2.8.45', 'version' => '2.8.45.0', 'reference' => '96aaebcf4f50d3d2692ab81d2c5132e425bca266', 'type' => 'library', 'install_path' => __DIR__ . '/../mobiledetect/mobiledetectlib', 'aliases' => array(), 'dev_requirement' => \false), 'paragonie/constant_time_encoding' => array('pretty_version' => 'v3.1.3', 'version' => '3.1.3.0', 'reference' => 'd5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77', 'type' => 'library', 'install_path' => __DIR__ . '/../paragonie/constant_time_encoding', 'aliases' => array(), 'dev_requirement' => \false), 'psr/clock' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => 'e41a24703d4560fd0acb709162f73b8adfc3aa0d', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/clock', 'aliases' => array(), 'dev_requirement' => \false), 'spomky-labs/otphp' => array('pretty_version' => '11.3.0', 'version' => '11.3.0.0', 'reference' => '2d8ccb5fc992b9cc65ef321fa4f00fefdb3f4b33', 'type' => 'library', 'install_path' => __DIR__ . '/../spomky-labs/otphp', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.6.0', 'version' => '3.6.0.0', 'reference' => '63afe740e99a13ba87ec199bb07bbdee937a5b62', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'wps/secured' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '84baf0d56d5642175050a31e2d8219f097cb44e4', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false))); -
secured-wp/trunk/third-party/vendor/vendor/composer/platform_check.php
r3359234 r3377588 19 19 } 20 20 } 21 \trigger_error('Composer detected issues in your platform: ' . \implode(' ', $issues), \E_USER_ERROR);21 throw new \RuntimeException('Composer detected issues in your platform: ' . \implode(' ', $issues)); 22 22 } -
secured-wp/trunk/third-party/vendor/vendor/dasprid/enum/src/AbstractEnum.php
r3359234 r3377588 184 184 } 185 185 /** 186 * Forbid serializing enums. 187 * 188 * @throws SerializeNotSupportedException 189 */ 190 public final function __serialize() : array 191 { 192 throw new SerializeNotSupportedException(); 193 } 194 /** 186 195 * Forbid unserializing enums. 187 196 * … … 193 202 } 194 203 /** 204 * Forbid unserializing enums. 205 * 206 * @throws UnserializeNotSupportedException 207 */ 208 public final function __unserialize($arg) : void 209 { 210 throw new UnserializeNotSupportedException(); 211 } 212 /** 195 213 * Turns the enum into a string representation. 196 214 * -
secured-wp/trunk/third-party/vendor/vendor/dasprid/enum/src/NullValue.php
r3359234 r3377588 40 40 } 41 41 /** 42 * Forbid serializing enums. 43 * 44 * @throws SerializeNotSupportedException 45 */ 46 public final function __serialize() : array 47 { 48 throw new SerializeNotSupportedException(); 49 } 50 /** 42 51 * Forbid unserializing enums. 43 52 * … … 48 57 throw new UnserializeNotSupportedException(); 49 58 } 59 /** 60 * Forbid unserializing enums. 61 * 62 * @throws UnserializeNotSupportedException 63 */ 64 public final function __unserialize($arg) : void 65 { 66 throw new UnserializeNotSupportedException(); 67 } 50 68 } -
secured-wp/trunk/third-party/vendor/vendor/paragonie/constant_time_encoding/src/Base32.php
r3359234 r3377588 5 5 6 6 use InvalidArgumentException; 7 use WPSEC_Vendor\Override; 7 8 use RangeException; 9 use SensitiveParameter; 8 10 use TypeError; 11 use function pack; 12 use function rtrim; 13 use function strlen; 14 use function substr; 15 use function unpack; 9 16 /** 10 17 * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. … … 45 52 * @return string 46 53 */ 47 public static function decode(#[\SensitiveParameter] string $encodedString, bool $strictPadding = \false) : string 54 #[Override] 55 public static function decode(#[SensitiveParameter] string $encodedString, bool $strictPadding = \false) : string 48 56 { 49 57 return static::doDecode($encodedString, \false, $strictPadding); … … 56 64 * @return string 57 65 */ 58 public static function decodeUpper(#[ \SensitiveParameter] string $src, bool $strictPadding = \false) : string66 public static function decodeUpper(#[SensitiveParameter] string $src, bool $strictPadding = \false) : string 59 67 { 60 68 return static::doDecode($src, \true, $strictPadding); … … 67 75 * @throws TypeError 68 76 */ 69 public static function encode(#[\SensitiveParameter] string $binString) : string 77 #[Override] 78 public static function encode(#[SensitiveParameter] string $binString) : string 70 79 { 71 80 return static::doEncode($binString, \false, \true); … … 77 86 * @return string 78 87 * @throws TypeError 79 */ 80 public static function encodeUnpadded(#[\SensitiveParameter] string $src) : string 88 * @api 89 */ 90 public static function encodeUnpadded(#[SensitiveParameter] string $src) : string 81 91 { 82 92 return static::doEncode($src, \false, \false); … … 88 98 * @return string 89 99 * @throws TypeError 90 */ 91 public static function encodeUpper(#[\SensitiveParameter] string $src) : string 100 * @api 101 */ 102 public static function encodeUpper(#[SensitiveParameter] string $src) : string 92 103 { 93 104 return static::doEncode($src, \true, \true); … … 99 110 * @return string 100 111 * @throws TypeError 101 */ 102 public static function encodeUpperUnpadded(#[\SensitiveParameter] string $src) : string 112 * @api 113 */ 114 public static function encodeUpperUnpadded(#[SensitiveParameter] string $src) : string 103 115 { 104 116 return static::doEncode($src, \true, \false); … … 110 122 * @param int $src 111 123 * @return int 124 * @api 112 125 */ 113 126 protected static function decode5Bits(int $src) : int … … 128 141 * @param int $src 129 142 * @return int 143 * @api 130 144 */ 131 145 protected static function decode5BitsUpper(int $src) : int … … 144 158 * @param int $src 145 159 * @return string 160 * @api 146 161 */ 147 162 protected static function encode5Bits(int $src) : string … … 150 165 // if ($src > 25) $ret -= 72; 151 166 $diff -= 25 - $src >> 8 & 73; 152 return \pack('C', $src + $diff);167 return pack('C', $src + $diff); 153 168 } 154 169 /** … … 160 175 * @param int $src 161 176 * @return string 177 * @api 162 178 */ 163 179 protected static function encode5BitsUpper(int $src) : string … … 166 182 // if ($src > 25) $ret -= 40; 167 183 $diff -= 25 - $src >> 8 & 41; 168 return \pack('C', $src + $diff);184 return pack('C', $src + $diff); 169 185 } 170 186 /** … … 172 188 * @param bool $upper 173 189 * @return string 174 */ 175 public static function decodeNoPadding(#[\SensitiveParameter] string $encodedString, bool $upper = \false) : string 176 { 177 $srcLen = Binary::safeStrlen($encodedString); 190 * @api 191 */ 192 public static function decodeNoPadding(#[SensitiveParameter] string $encodedString, bool $upper = \false) : string 193 { 194 $srcLen = strlen($encodedString); 178 195 if ($srcLen === 0) { 179 196 return ''; … … 198 215 * @throws TypeError 199 216 */ 200 protected static function doDecode(#[ \SensitiveParameter] string $src, bool $upper = \false, bool $strictPadding = \false) : string217 protected static function doDecode(#[SensitiveParameter] string $src, bool $upper = \false, bool $strictPadding = \false) : string 201 218 { 202 219 // We do this to reduce code duplication: 203 220 $method = $upper ? 'decode5BitsUpper' : 'decode5Bits'; 204 221 // Remove padding 205 $srcLen = Binary::safeStrlen($src);222 $srcLen = strlen($src); 206 223 if ($srcLen === 0) { 207 224 return ''; … … 221 238 } 222 239 } else { 223 $src = \rtrim($src, '=');224 $srcLen = Binary::safeStrlen($src);240 $src = rtrim($src, '='); 241 $srcLen = strlen($src); 225 242 } 226 243 $err = 0; … … 229 246 for ($i = 0; $i + 8 <= $srcLen; $i += 8) { 230 247 /** @var array<int, int> $chunk */ 231 $chunk = \unpack('C*', Binary::safeSubstr($src, $i, 8));248 $chunk = unpack('C*', substr($src, $i, 8)); 232 249 /** @var int $c0 */ 233 250 $c0 = static::$method($chunk[1]); … … 246 263 /** @var int $c7 */ 247 264 $c7 = static::$method($chunk[8]); 248 $dest .= \pack('CCCCC', ($c0 << 3 | $c1 >> 2) & 0xff, ($c1 << 6 | $c2 << 1 | $c3 >> 4) & 0xff, ($c3 << 4 | $c4 >> 1) & 0xff, ($c4 << 7 | $c5 << 2 | $c6 >> 3) & 0xff, ($c6 << 5 | $c7) & 0xff);265 $dest .= pack('CCCCC', ($c0 << 3 | $c1 >> 2) & 0xff, ($c1 << 6 | $c2 << 1 | $c3 >> 4) & 0xff, ($c3 << 4 | $c4 >> 1) & 0xff, ($c4 << 7 | $c5 << 2 | $c6 >> 3) & 0xff, ($c6 << 5 | $c7) & 0xff); 249 266 $err |= ($c0 | $c1 | $c2 | $c3 | $c4 | $c5 | $c6 | $c7) >> 8; 250 267 } … … 252 269 if ($i < $srcLen) { 253 270 /** @var array<int, int> $chunk */ 254 $chunk = \unpack('C*', Binary::safeSubstr($src, $i, $srcLen - $i));271 $chunk = unpack('C*', substr($src, $i, $srcLen - $i)); 255 272 /** @var int $c0 */ 256 273 $c0 = static::$method($chunk[1]); … … 268 285 /** @var int $c6 */ 269 286 $c6 = static::$method($chunk[7]); 270 $dest .= \pack('CCCC', ($c0 << 3 | $c1 >> 2) & 0xff, ($c1 << 6 | $c2 << 1 | $c3 >> 4) & 0xff, ($c3 << 4 | $c4 >> 1) & 0xff, ($c4 << 7 | $c5 << 2 | $c6 >> 3) & 0xff);287 $dest .= pack('CCCC', ($c0 << 3 | $c1 >> 2) & 0xff, ($c1 << 6 | $c2 << 1 | $c3 >> 4) & 0xff, ($c3 << 4 | $c4 >> 1) & 0xff, ($c4 << 7 | $c5 << 2 | $c6 >> 3) & 0xff); 271 288 $err |= ($c0 | $c1 | $c2 | $c3 | $c4 | $c5 | $c6) >> 8; 272 289 if ($strictPadding) { … … 284 301 /** @var int $c5 */ 285 302 $c5 = static::$method($chunk[6]); 286 $dest .= \pack('CCCC', ($c0 << 3 | $c1 >> 2) & 0xff, ($c1 << 6 | $c2 << 1 | $c3 >> 4) & 0xff, ($c3 << 4 | $c4 >> 1) & 0xff, ($c4 << 7 | $c5 << 2) & 0xff);303 $dest .= pack('CCCC', ($c0 << 3 | $c1 >> 2) & 0xff, ($c1 << 6 | $c2 << 1 | $c3 >> 4) & 0xff, ($c3 << 4 | $c4 >> 1) & 0xff, ($c4 << 7 | $c5 << 2) & 0xff); 287 304 $err |= ($c0 | $c1 | $c2 | $c3 | $c4 | $c5) >> 8; 288 305 } elseif ($i + 4 < $srcLen) { … … 295 312 /** @var int $c4 */ 296 313 $c4 = static::$method($chunk[5]); 297 $dest .= \pack('CCC', ($c0 << 3 | $c1 >> 2) & 0xff, ($c1 << 6 | $c2 << 1 | $c3 >> 4) & 0xff, ($c3 << 4 | $c4 >> 1) & 0xff);314 $dest .= pack('CCC', ($c0 << 3 | $c1 >> 2) & 0xff, ($c1 << 6 | $c2 << 1 | $c3 >> 4) & 0xff, ($c3 << 4 | $c4 >> 1) & 0xff); 298 315 $err |= ($c0 | $c1 | $c2 | $c3 | $c4) >> 8; 299 316 if ($strictPadding) { … … 307 324 /** @var int $c3 */ 308 325 $c3 = static::$method($chunk[4]); 309 $dest .= \pack('CC', ($c0 << 3 | $c1 >> 2) & 0xff, ($c1 << 6 | $c2 << 1 | $c3 >> 4) & 0xff);326 $dest .= pack('CC', ($c0 << 3 | $c1 >> 2) & 0xff, ($c1 << 6 | $c2 << 1 | $c3 >> 4) & 0xff); 310 327 $err |= ($c0 | $c1 | $c2 | $c3) >> 8; 311 328 if ($strictPadding) { … … 317 334 /** @var int $c2 */ 318 335 $c2 = static::$method($chunk[3]); 319 $dest .= \pack('CC', ($c0 << 3 | $c1 >> 2) & 0xff, ($c1 << 6 | $c2 << 1) & 0xff);336 $dest .= pack('CC', ($c0 << 3 | $c1 >> 2) & 0xff, ($c1 << 6 | $c2 << 1) & 0xff); 320 337 $err |= ($c0 | $c1 | $c2) >> 8; 321 338 if ($strictPadding) { … … 325 342 /** @var int $c1 */ 326 343 $c1 = static::$method($chunk[2]); 327 $dest .= \pack('C', ($c0 << 3 | $c1 >> 2) & 0xff);344 $dest .= pack('C', ($c0 << 3 | $c1 >> 2) & 0xff); 328 345 $err |= ($c0 | $c1) >> 8; 329 346 if ($strictPadding) { … … 331 348 } 332 349 } else { 333 $dest .= \pack('C', $c0 << 3 & 0xff);350 $dest .= pack('C', $c0 << 3 & 0xff); 334 351 $err |= $c0 >> 8; 335 352 } … … 350 367 * @throws TypeError 351 368 */ 352 protected static function doEncode(#[ \SensitiveParameter] string $src, bool $upper = \false,$pad = \true) : string369 protected static function doEncode(#[SensitiveParameter] string $src, bool $upper = \false, bool $pad = \true) : string 353 370 { 354 371 // We do this to reduce code duplication: 355 372 $method = $upper ? 'encode5BitsUpper' : 'encode5Bits'; 356 373 $dest = ''; 357 $srcLen = Binary::safeStrlen($src);374 $srcLen = strlen($src); 358 375 // Main loop (no padding): 359 376 for ($i = 0; $i + 5 <= $srcLen; $i += 5) { 360 377 /** @var array<int, int> $chunk */ 361 $chunk = \unpack('C*', Binary::safeSubstr($src, $i, 5));378 $chunk = unpack('C*', substr($src, $i, 5)); 362 379 $b0 = $chunk[1]; 363 380 $b1 = $chunk[2]; … … 370 387 if ($i < $srcLen) { 371 388 /** @var array<int, int> $chunk */ 372 $chunk = \unpack('C*', Binary::safeSubstr($src, $i, $srcLen - $i));389 $chunk = unpack('C*', substr($src, $i, $srcLen - $i)); 373 390 $b0 = $chunk[1]; 374 391 if ($i + 3 < $srcLen) { -
secured-wp/trunk/third-party/vendor/vendor/paragonie/constant_time_encoding/src/Base32Hex.php
r3359234 r3377588 4 4 namespace WPSEC_Vendor\ParagonIE\ConstantTime; 5 5 6 use WPSEC_Vendor\Override; 7 use function pack; 6 8 /** 7 9 * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. … … 42 44 * @return int 43 45 */ 46 #[Override] 44 47 protected static function decode5Bits(int $src) : int 45 48 { … … 58 61 * @return int 59 62 */ 63 #[Override] 60 64 protected static function decode5BitsUpper(int $src) : int 61 65 { … … 74 78 * @return string 75 79 */ 80 #[Override] 76 81 protected static function encode5Bits(int $src) : string 77 82 { … … 79 84 // if ($src > 0x39) $src += 0x61 - 0x3a; // 39 80 85 $src += 0x39 - $src >> 8 & 39; 81 return \pack('C', $src);86 return pack('C', $src); 82 87 } 83 88 /** … … 90 95 * @return string 91 96 */ 97 #[Override] 92 98 protected static function encode5BitsUpper(int $src) : string 93 99 { … … 95 101 // if ($src > 0x39) $src += 0x41 - 0x3a; // 7 96 102 $src += 0x39 - $src >> 8 & 7; 97 return \pack('C', $src);103 return pack('C', $src); 98 104 } 99 105 } -
secured-wp/trunk/third-party/vendor/vendor/paragonie/constant_time_encoding/src/Base64.php
r3359234 r3377588 5 5 6 6 use InvalidArgumentException; 7 use WPSEC_Vendor\Override; 7 8 use RangeException; 9 use SensitiveParameter; 10 use SodiumException; 8 11 use TypeError; 12 use function extension_loaded; 13 use function pack; 14 use function rtrim; 15 use function sodium_base642bin; 16 use function sodium_bin2base64; 17 use function strlen; 18 use function substr; 19 use function unpack; 20 use const SODIUM_BASE64_VARIANT_ORIGINAL; 21 use const SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING; 22 use const SODIUM_BASE64_VARIANT_URLSAFE; 23 use const SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING; 9 24 /** 10 25 * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. … … 48 63 * @throws TypeError 49 64 */ 50 public static function encode(#[\SensitiveParameter] string $binString) : string 51 { 65 #[Override] 66 public static function encode(#[SensitiveParameter] string $binString) : string 67 { 68 if (extension_loaded('sodium')) { 69 $variant = match (static::class) { 70 Base64::class => SODIUM_BASE64_VARIANT_ORIGINAL, 71 Base64UrlSafe::class => SODIUM_BASE64_VARIANT_URLSAFE, 72 default => 0, 73 }; 74 if ($variant > 0) { 75 try { 76 return sodium_bin2base64($binString, $variant); 77 } catch (SodiumException $ex) { 78 throw new RangeException($ex->getMessage(), $ex->getCode(), $ex); 79 } 80 } 81 } 52 82 return static::doEncode($binString, \true); 53 83 } … … 61 91 * 62 92 * @throws TypeError 63 */ 64 public static function encodeUnpadded(#[\SensitiveParameter] string $src) : string 65 { 93 * @api 94 */ 95 public static function encodeUnpadded(#[SensitiveParameter] string $src) : string 96 { 97 if (extension_loaded('sodium')) { 98 $variant = match (static::class) { 99 Base64::class => SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING, 100 Base64UrlSafe::class => SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING, 101 default => 0, 102 }; 103 if ($variant > 0) { 104 try { 105 return sodium_bin2base64($src, $variant); 106 } catch (SodiumException $ex) { 107 throw new RangeException($ex->getMessage(), $ex->getCode(), $ex); 108 } 109 } 110 } 66 111 return static::doEncode($src, \false); 67 112 } … … 73 118 * @throws TypeError 74 119 */ 75 protected static function doEncode(#[ \SensitiveParameter] string $src, bool $pad = \true) : string120 protected static function doEncode(#[SensitiveParameter] string $src, bool $pad = \true) : string 76 121 { 77 122 $dest = ''; 78 $srcLen = Binary::safeStrlen($src);123 $srcLen = strlen($src); 79 124 // Main loop (no padding): 80 125 for ($i = 0; $i + 3 <= $srcLen; $i += 3) { 81 126 /** @var array<int, int> $chunk */ 82 $chunk = \unpack('C*', Binary::safeSubstr($src, $i, 3));127 $chunk = unpack('C*', substr($src, $i, 3)); 83 128 $b0 = $chunk[1]; 84 129 $b1 = $chunk[2]; … … 89 134 if ($i < $srcLen) { 90 135 /** @var array<int, int> $chunk */ 91 $chunk = \unpack('C*', Binary::safeSubstr($src, $i, $srcLen - $i));136 $chunk = unpack('C*', substr($src, $i, $srcLen - $i)); 92 137 $b0 = $chunk[1]; 93 138 if ($i + 1 < $srcLen) { … … 118 163 * @throws TypeError 119 164 */ 120 public static function decode(#[\SensitiveParameter] string $encodedString, bool $strictPadding = \false) : string 165 #[Override] 166 public static function decode(#[SensitiveParameter] string $encodedString, bool $strictPadding = \false) : string 121 167 { 122 168 // Remove padding 123 $srcLen = Binary::safeStrlen($encodedString);169 $srcLen = strlen($encodedString); 124 170 if ($srcLen === 0) { 125 171 return ''; … … 140 186 throw new RangeException('Incorrect padding'); 141 187 } 188 if (extension_loaded('sodium')) { 189 $variant = match (static::class) { 190 Base64::class => SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING, 191 Base64UrlSafe::class => SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING, 192 default => 0, 193 }; 194 if ($variant > 0) { 195 try { 196 return sodium_base642bin(substr($encodedString, 0, $srcLen), $variant); 197 } catch (SodiumException $ex) { 198 throw new RangeException($ex->getMessage(), $ex->getCode(), $ex); 199 } 200 } 201 } 142 202 } else { 143 $encodedString = \rtrim($encodedString, '='); 144 $srcLen = Binary::safeStrlen($encodedString); 203 // Just remove all padding. 204 $encodedString = rtrim($encodedString, '='); 205 $srcLen = strlen($encodedString); 145 206 } 146 207 $err = 0; … … 149 210 for ($i = 0; $i + 4 <= $srcLen; $i += 4) { 150 211 /** @var array<int, int> $chunk */ 151 $chunk = \unpack('C*', Binary::safeSubstr($encodedString, $i, 4));212 $chunk = unpack('C*', substr($encodedString, $i, 4)); 152 213 $c0 = static::decode6Bits($chunk[1]); 153 214 $c1 = static::decode6Bits($chunk[2]); 154 215 $c2 = static::decode6Bits($chunk[3]); 155 216 $c3 = static::decode6Bits($chunk[4]); 156 $dest .= \pack('CCC', ($c0 << 2 | $c1 >> 4) & 0xff, ($c1 << 4 | $c2 >> 2) & 0xff, ($c2 << 6 | $c3) & 0xff);217 $dest .= pack('CCC', ($c0 << 2 | $c1 >> 4) & 0xff, ($c1 << 4 | $c2 >> 2) & 0xff, ($c2 << 6 | $c3) & 0xff); 157 218 $err |= ($c0 | $c1 | $c2 | $c3) >> 8; 158 219 } … … 160 221 if ($i < $srcLen) { 161 222 /** @var array<int, int> $chunk */ 162 $chunk = \unpack('C*', Binary::safeSubstr($encodedString, $i, $srcLen - $i));223 $chunk = unpack('C*', substr($encodedString, $i, $srcLen - $i)); 163 224 $c0 = static::decode6Bits($chunk[1]); 164 225 if ($i + 2 < $srcLen) { 165 226 $c1 = static::decode6Bits($chunk[2]); 166 227 $c2 = static::decode6Bits($chunk[3]); 167 $dest .= \pack('CC', ($c0 << 2 | $c1 >> 4) & 0xff, ($c1 << 4 | $c2 >> 2) & 0xff);228 $dest .= pack('CC', ($c0 << 2 | $c1 >> 4) & 0xff, ($c1 << 4 | $c2 >> 2) & 0xff); 168 229 $err |= ($c0 | $c1 | $c2) >> 8; 169 230 if ($strictPadding) { … … 172 233 } elseif ($i + 1 < $srcLen) { 173 234 $c1 = static::decode6Bits($chunk[2]); 174 $dest .= \pack('C', ($c0 << 2 | $c1 >> 4) & 0xff);235 $dest .= pack('C', ($c0 << 2 | $c1 >> 4) & 0xff); 175 236 $err |= ($c0 | $c1) >> 8; 176 237 if ($strictPadding) { … … 190 251 * @param string $encodedString 191 252 * @return string 192 */ 193 public static function decodeNoPadding(#[\SensitiveParameter] string $encodedString) : string 194 { 195 $srcLen = Binary::safeStrlen($encodedString); 253 * @api 254 */ 255 public static function decodeNoPadding(#[SensitiveParameter] string $encodedString) : string 256 { 257 $srcLen = strlen($encodedString); 196 258 if ($srcLen === 0) { 197 259 return ''; … … 249 311 // if ($src > 62) $diff += 0x2f - 0x2b - 1; // 3 250 312 $diff += 62 - $src >> 8 & 3; 251 return \pack('C', $src + $diff);313 return pack('C', $src + $diff); 252 314 } 253 315 } -
secured-wp/trunk/third-party/vendor/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php
r3359234 r3377588 4 4 namespace WPSEC_Vendor\ParagonIE\ConstantTime; 5 5 6 use WPSEC_Vendor\Override; 6 7 /** 7 8 * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. … … 46 47 * @return int 47 48 */ 49 #[Override] 48 50 protected static function decode6Bits(int $src) : int 49 51 { … … 66 68 * @return string 67 69 */ 70 #[Override] 68 71 protected static function encode6Bits(int $src) : string 69 72 { -
secured-wp/trunk/third-party/vendor/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php
r3359234 r3377588 4 4 namespace WPSEC_Vendor\ParagonIE\ConstantTime; 5 5 6 use WPSEC_Vendor\Override; 6 7 /** 7 8 * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. … … 46 47 * @return int 47 48 */ 49 #[Override] 48 50 protected static function decode6Bits(int $src) : int 49 51 { … … 64 66 * @return string 65 67 */ 68 #[Override] 66 69 protected static function encode6Bits(int $src) : string 67 70 { -
secured-wp/trunk/third-party/vendor/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php
r3359234 r3377588 4 4 namespace WPSEC_Vendor\ParagonIE\ConstantTime; 5 5 6 use WPSEC_Vendor\Override; 6 7 /** 7 8 * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. … … 46 47 * @return int 47 48 */ 49 #[Override] 48 50 protected static function decode6Bits(int $src) : int 49 51 { … … 68 70 * @return string 69 71 */ 72 #[Override] 70 73 protected static function encode6Bits(int $src) : string 71 74 { -
secured-wp/trunk/third-party/vendor/vendor/paragonie/constant_time_encoding/src/Binary.php
r3359234 r3377588 4 4 namespace WPSEC_Vendor\ParagonIE\ConstantTime; 5 5 6 use SensitiveParameter; 6 7 use TypeError; 8 use function strlen; 9 use function substr; 7 10 /** 8 11 * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. … … 46 49 * @return int 47 50 */ 48 public static function safeStrlen(#[ \SensitiveParameter] string $str) : int51 public static function safeStrlen(#[SensitiveParameter] string $str) : int 49 52 { 50 if (\function_exists('mb_strlen')) { 51 // mb_strlen in PHP 7.x can return false. 52 /** @psalm-suppress RedundantCast */ 53 return (int) \mb_strlen($str, '8bit'); 54 } else { 55 return \strlen($str); 56 } 53 return strlen($str); 57 54 } 58 55 /** … … 69 66 * @throws TypeError 70 67 */ 71 public static function safeSubstr(#[ \SensitiveParameter] string $str, int $start = 0, ?int $length = null) : string68 public static function safeSubstr(#[SensitiveParameter] string $str, int $start = 0, ?int $length = null) : string 72 69 { 73 70 if ($length === 0) { 74 71 return ''; 75 72 } 76 if (\function_exists('mb_substr')) {77 return \mb_substr($str, $start, $length, '8bit');78 }79 73 // Unlike mb_substr(), substr() doesn't accept NULL for length 80 74 if ($length !== null) { 81 return \substr($str, $start, $length);75 return substr($str, $start, $length); 82 76 } else { 83 return \substr($str, $start);77 return substr($str, $start); 84 78 } 85 79 } -
secured-wp/trunk/third-party/vendor/vendor/paragonie/constant_time_encoding/src/EncoderInterface.php
r3359234 r3377588 4 4 namespace WPSEC_Vendor\ParagonIE\ConstantTime; 5 5 6 use SensitiveParameter; 6 7 /** 7 8 * Copyright (c) 2016 - 2022 Paragon Initiative Enterprises. … … 40 41 * @return string 41 42 */ 42 public static function encode( string $binString) : string;43 public static function encode(#[SensitiveParameter] string $binString) : string; 43 44 /** 44 45 * Convert a binary string into a hexadecimal string without cache-timing … … 49 50 * @return string (raw binary) 50 51 */ 51 public static function decode( string $encodedString, bool $strictPadding = \false) : string;52 public static function decode(#[SensitiveParameter] string $encodedString, bool $strictPadding = \false) : string; 52 53 } -
secured-wp/trunk/third-party/vendor/vendor/paragonie/constant_time_encoding/src/Encoding.php
r3359234 r3377588 4 4 namespace WPSEC_Vendor\ParagonIE\ConstantTime; 5 5 6 use RangeException; 7 use SensitiveParameter; 6 8 use TypeError; 7 9 /** … … 30 32 * Class Encoding 31 33 * @package ParagonIE\ConstantTime 34 * @api 32 35 * @internal 33 36 */ … … 41 44 * @throws TypeError 42 45 */ 43 public static function base32Encode(#[ \SensitiveParameter] string $str) : string46 public static function base32Encode(#[SensitiveParameter] string $str) : string 44 47 { 45 48 return Base32::encode($str); … … 52 55 * @throws TypeError 53 56 */ 54 public static function base32EncodeUpper(#[ \SensitiveParameter] string $str) : string57 public static function base32EncodeUpper(#[SensitiveParameter] string $str) : string 55 58 { 56 59 return Base32::encodeUpper($str); … … 63 66 * @throws TypeError 64 67 */ 65 public static function base32Decode(#[ \SensitiveParameter] string $str) : string68 public static function base32Decode(#[SensitiveParameter] string $str) : string 66 69 { 67 70 return Base32::decode($str); … … 74 77 * @throws TypeError 75 78 */ 76 public static function base32DecodeUpper(#[ \SensitiveParameter] string $str) : string79 public static function base32DecodeUpper(#[SensitiveParameter] string $str) : string 77 80 { 78 81 return Base32::decodeUpper($str); … … 85 88 * @throws TypeError 86 89 */ 87 public static function base32HexEncode(#[ \SensitiveParameter] string $str) : string90 public static function base32HexEncode(#[SensitiveParameter] string $str) : string 88 91 { 89 92 return Base32Hex::encode($str); … … 96 99 * @throws TypeError 97 100 */ 98 public static function base32HexEncodeUpper(#[ \SensitiveParameter] string $str) : string101 public static function base32HexEncodeUpper(#[SensitiveParameter] string $str) : string 99 102 { 100 103 return Base32Hex::encodeUpper($str); … … 107 110 * @throws TypeError 108 111 */ 109 public static function base32HexDecode(#[ \SensitiveParameter] string $str) : string112 public static function base32HexDecode(#[SensitiveParameter] string $str) : string 110 113 { 111 114 return Base32Hex::decode($str); … … 118 121 * @throws TypeError 119 122 */ 120 public static function base32HexDecodeUpper(#[ \SensitiveParameter] string $str) : string123 public static function base32HexDecodeUpper(#[SensitiveParameter] string $str) : string 121 124 { 122 125 return Base32Hex::decodeUpper($str); … … 129 132 * @throws TypeError 130 133 */ 131 public static function base64Encode(#[ \SensitiveParameter] string $str) : string134 public static function base64Encode(#[SensitiveParameter] string $str) : string 132 135 { 133 136 return Base64::encode($str); … … 140 143 * @throws TypeError 141 144 */ 142 public static function base64Decode(#[ \SensitiveParameter] string $str) : string145 public static function base64Decode(#[SensitiveParameter] string $str) : string 143 146 { 144 147 return Base64::decode($str); … … 152 155 * @throws TypeError 153 156 */ 154 public static function base64EncodeDotSlash(#[ \SensitiveParameter] string $str) : string157 public static function base64EncodeDotSlash(#[SensitiveParameter] string $str) : string 155 158 { 156 159 return Base64DotSlash::encode($str); … … 163 166 * @param string $str 164 167 * @return string 165 * @throws \RangeException166 * @throws TypeError 167 */ 168 public static function base64DecodeDotSlash(#[ \SensitiveParameter] string $str) : string168 * @throws RangeException 169 * @throws TypeError 170 */ 171 public static function base64DecodeDotSlash(#[SensitiveParameter] string $str) : string 169 172 { 170 173 return Base64DotSlash::decode($str); … … 178 181 * @throws TypeError 179 182 */ 180 public static function base64EncodeDotSlashOrdered(#[ \SensitiveParameter] string $str) : string183 public static function base64EncodeDotSlashOrdered(#[SensitiveParameter] string $str) : string 181 184 { 182 185 return Base64DotSlashOrdered::encode($str); … … 189 192 * @param string $str 190 193 * @return string 191 * @throws \RangeException192 * @throws TypeError 193 */ 194 public static function base64DecodeDotSlashOrdered(#[ \SensitiveParameter] string $str) : string194 * @throws RangeException 195 * @throws TypeError 196 */ 197 public static function base64DecodeDotSlashOrdered(#[SensitiveParameter] string $str) : string 195 198 { 196 199 return Base64DotSlashOrdered::decode($str); … … 204 207 * @throws TypeError 205 208 */ 206 public static function hexEncode(#[ \SensitiveParameter] string $bin_string) : string209 public static function hexEncode(#[SensitiveParameter] string $bin_string) : string 207 210 { 208 211 return Hex::encode($bin_string); … … 214 217 * @param string $hex_string 215 218 * @return string (raw binary) 216 * @throws \RangeException217 */ 218 public static function hexDecode(#[ \SensitiveParameter] string $hex_string) : string219 * @throws RangeException 220 */ 221 public static function hexDecode(#[SensitiveParameter] string $hex_string) : string 219 222 { 220 223 return Hex::decode($hex_string); … … 228 231 * @throws TypeError 229 232 */ 230 public static function hexEncodeUpper(#[ \SensitiveParameter] string $bin_string) : string233 public static function hexEncodeUpper(#[SensitiveParameter] string $bin_string) : string 231 234 { 232 235 return Hex::encodeUpper($bin_string); … … 239 242 * @return string 240 243 */ 241 public static function hexDecodeUpper(#[ \SensitiveParameter] string $bin_string) : string244 public static function hexDecodeUpper(#[SensitiveParameter] string $bin_string) : string 242 245 { 243 246 return Hex::decode($bin_string); -
secured-wp/trunk/third-party/vendor/vendor/paragonie/constant_time_encoding/src/Hex.php
r3359234 r3377588 4 4 namespace WPSEC_Vendor\ParagonIE\ConstantTime; 5 5 6 use WPSEC_Vendor\Override; 6 7 use RangeException; 8 use SensitiveParameter; 9 use SodiumException; 7 10 use TypeError; 11 use function extension_loaded; 12 use function pack; 13 use function sodium_bin2hex; 14 use function sodium_hex2bin; 15 use function strlen; 16 use function unpack; 8 17 /** 9 * Copyright (c) 2016 - 202 2Paragon Initiative Enterprises.18 * Copyright (c) 2016 - 2025 Paragon Initiative Enterprises. 10 19 * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) 11 20 * … … 43 52 * @throws TypeError 44 53 */ 45 public static function encode(#[\SensitiveParameter] string $binString) : string 54 #[Override] 55 public static function encode(#[SensitiveParameter] string $binString) : string 46 56 { 57 if (extension_loaded('sodium')) { 58 try { 59 return sodium_bin2hex($binString); 60 } catch (SodiumException $ex) { 61 throw new RangeException($ex->getMessage(), $ex->getCode(), $ex); 62 } 63 } 47 64 $hex = ''; 48 $len = Binary::safeStrlen($binString);65 $len = strlen($binString); 49 66 for ($i = 0; $i < $len; ++$i) { 50 67 /** @var array<int, int> $chunk */ 51 $chunk = \unpack('C', $binString[$i]);68 $chunk = unpack('C', $binString[$i]); 52 69 $c = $chunk[1] & 0xf; 53 70 $b = $chunk[1] >> 4; 54 $hex .= \pack('CC', 87 + $b + ($b - 10 >> 8 & ~38), 87 + $c + ($c - 10 >> 8 & ~38));71 $hex .= pack('CC', 87 + $b + ($b - 10 >> 8 & ~38), 87 + $c + ($c - 10 >> 8 & ~38)); 55 72 } 56 73 return $hex; … … 64 81 * @throws TypeError 65 82 */ 66 public static function encodeUpper(#[ \SensitiveParameter] string $binString) : string83 public static function encodeUpper(#[SensitiveParameter] string $binString) : string 67 84 { 68 85 $hex = ''; 69 $len = Binary::safeStrlen($binString);86 $len = strlen($binString); 70 87 for ($i = 0; $i < $len; ++$i) { 71 88 /** @var array<int, int> $chunk */ 72 $chunk = \unpack('C', $binString[$i]);89 $chunk = unpack('C', $binString[$i]); 73 90 $c = $chunk[1] & 0xf; 74 91 $b = $chunk[1] >> 4; 75 $hex .= \pack('CC', 55 + $b + ($b - 10 >> 8 & ~6), 55 + $c + ($c - 10 >> 8 & ~6));92 $hex .= pack('CC', 55 + $b + ($b - 10 >> 8 & ~6), 55 + $c + ($c - 10 >> 8 & ~6)); 76 93 } 77 94 return $hex; … … 86 103 * @throws RangeException 87 104 */ 88 public static function decode(#[\SensitiveParameter] string $encodedString, bool $strictPadding = \false) : string 105 #[Override] 106 public static function decode(#[SensitiveParameter] string $encodedString, bool $strictPadding = \false) : string 89 107 { 108 if (extension_loaded('sodium') && $strictPadding) { 109 try { 110 return sodium_hex2bin($encodedString); 111 } catch (SodiumException $ex) { 112 throw new RangeException($ex->getMessage(), $ex->getCode(), $ex); 113 } 114 } 90 115 $hex_pos = 0; 91 116 $bin = ''; 92 117 $c_acc = 0; 93 $hex_len = Binary::safeStrlen($encodedString);118 $hex_len = strlen($encodedString); 94 119 $state = 0; 95 120 if (($hex_len & 1) !== 0) { … … 102 127 } 103 128 /** @var array<int, int> $chunk */ 104 $chunk = \unpack('C*', $encodedString);129 $chunk = unpack('C*', $encodedString); 105 130 while ($hex_pos < $hex_len) { 106 131 ++$hex_pos; … … 117 142 $c_acc = $c_val * 16; 118 143 } else { 119 $bin .= \pack('C', $c_acc | $c_val);144 $bin .= pack('C', $c_acc | $c_val); 120 145 } 121 146 $state ^= 1; -
secured-wp/trunk/third-party/vendor/vendor/paragonie/constant_time_encoding/src/RFC4648.php
r3359234 r3377588 4 4 namespace WPSEC_Vendor\ParagonIE\ConstantTime; 5 5 6 use SensitiveParameter; 6 7 use TypeError; 7 8 /** … … 33 34 * 34 35 * @package ParagonIE\ConstantTime 36 * @api 35 37 * @internal 36 38 */ … … 47 49 * @throws TypeError 48 50 */ 49 public static function base64Encode(#[ \SensitiveParameter] string $str) : string51 public static function base64Encode(#[SensitiveParameter] string $str) : string 50 52 { 51 53 return Base64::encode($str); … … 61 63 * @throws TypeError 62 64 */ 63 public static function base64Decode(#[ \SensitiveParameter] string $str) : string65 public static function base64Decode(#[SensitiveParameter] string $str) : string 64 66 { 65 67 return Base64::decode($str, \true); … … 75 77 * @throws TypeError 76 78 */ 77 public static function base64UrlSafeEncode(#[ \SensitiveParameter] string $str) : string79 public static function base64UrlSafeEncode(#[SensitiveParameter] string $str) : string 78 80 { 79 81 return Base64UrlSafe::encode($str); … … 89 91 * @throws TypeError 90 92 */ 91 public static function base64UrlSafeDecode(#[ \SensitiveParameter] string $str) : string93 public static function base64UrlSafeDecode(#[SensitiveParameter] string $str) : string 92 94 { 93 95 return Base64UrlSafe::decode($str, \true); … … 103 105 * @throws TypeError 104 106 */ 105 public static function base32Encode(#[ \SensitiveParameter] string $str) : string107 public static function base32Encode(#[SensitiveParameter] string $str) : string 106 108 { 107 109 return Base32::encodeUpper($str); … … 117 119 * @throws TypeError 118 120 */ 119 public static function base32Decode(#[ \SensitiveParameter] string $str) : string121 public static function base32Decode(#[SensitiveParameter] string $str) : string 120 122 { 121 123 return Base32::decodeUpper($str, \true); … … 131 133 * @throws TypeError 132 134 */ 133 public static function base32HexEncode(#[ \SensitiveParameter] string $str) : string135 public static function base32HexEncode(#[SensitiveParameter] string $str) : string 134 136 { 135 137 return Base32::encodeUpper($str); … … 145 147 * @throws TypeError 146 148 */ 147 public static function base32HexDecode(#[ \SensitiveParameter] string $str) : string149 public static function base32HexDecode(#[SensitiveParameter] string $str) : string 148 150 { 149 151 return Base32::decodeUpper($str, \true); … … 159 161 * @throws TypeError 160 162 */ 161 public static function base16Encode(#[ \SensitiveParameter] string $str) : string163 public static function base16Encode(#[SensitiveParameter] string $str) : string 162 164 { 163 165 return Hex::encodeUpper($str); … … 171 173 * @return string 172 174 */ 173 public static function base16Decode(#[ \SensitiveParameter] string $str) : string175 public static function base16Decode(#[SensitiveParameter] string $str) : string 174 176 { 175 177 return Hex::decode($str, \true); -
secured-wp/trunk/third-party/vendor/vendor/spomky-labs/otphp/src/Factory.php
r3359244 r3377588 26 26 } 27 27 if ($clock === null) { 28 trigger_deprecation('spomky-labs/otphp', '11.3.0', 'The parameter "$clock" will become mandatory in 12.0.0. Please set a valid PSR Clock implementation instead of "null".'); 28 29 $clock = new InternalClock(); 29 30 } -
secured-wp/trunk/third-party/vendor/vendor/spomky-labs/otphp/src/TOTP.php
r3359244 r3377588 19 19 parent::__construct($secret); 20 20 if ($clock === null) { 21 trigger_deprecation('spomky-labs/otphp', '11.3.0', 'The parameter "$clock" will become mandatory in 12.0.0. Please set a valid PSR Clock implementation instead of "null".'); 21 22 $clock = new InternalClock(); 22 23 }
Note: See TracChangeset
for help on using the changeset viewer.