Yoast\WP\SEO\MyYoast_Client\Infrastructure\Crypto
Key_Pair_Manager::get_or_create_key_pair
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() 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 ) );
}