Yoast\WP\SEO\MyYoast_Client\Infrastructure\Crypto

Key_Pair_Manager::get_or_create_key_pairpublicYoast 1.0

Gets an existing key pair or creates a new one for the given purpose. Creates a new key pair if none exists or if decryption of the stored private key fails (e.g. due to corruption or missing/rotated key).

Метод класса: Key_Pair_Manager{}

Хуков нет.

Возвращает

Key_Pair. The key pair value object.

Использование

$Key_Pair_Manager = new Key_Pair_Manager();
$Key_Pair_Manager->get_or_create_key_pair( $purpose ): Key_Pair;
$purpose(строка) (обязательный)
One of the PURPOSE_* constants.

Код Key_Pair_Manager::get_or_create_key_pair() Yoast 28.3

public function get_or_create_key_pair( string $purpose ): Key_Pair {
	$option_key = $this->get_option_key( $purpose );
	if ( \array_key_exists( $option_key, $this->cached_key_pairs ) ) {
		$cached = $this->cached_key_pairs[ $option_key ];
		if ( $cached !== null ) {
			return $cached;
		}

		return $this->generate_and_store_key_pair( $purpose );
	}

	try {
		$stored = $this->get_stored_key_pair( $purpose );
	} catch ( Encryption_Exception $e ) {
		$this->logger->warning(
			'Failed to decrypt {purpose} key pair, auto-rotating: {error}',
			[
				'purpose' => $purpose,
				'error'   => $e->getMessage(),
			],
		);
		return $this->rotate_key_pair( $purpose );
	}

	return ( $stored ?? $this->generate_and_store_key_pair( $purpose ) );
}