Server : Apache System : Linux webd348.cluster026.gra.hosting.ovh.net 5.15.148-ovh-vps-grsec-zfs-classid #1 SMP Thu Feb 8 09:41:04 UTC 2024 x86_64 User : hednacluml ( 122243) PHP Version : 8.3.9 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl Directory : /home/hednacluml/liberlog/ecrire/src/Chiffrer/ |
<?php /***************************************************************************\ * SPIP, Système de publication pour l'internet * * * * Copyright © avec tendresse depuis 2001 * * Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribué sous licence GNU/GPL. * \***************************************************************************/ namespace Spip\Chiffrer; /** Conteneur de clés (chiffrement, authentification) */ class Cles implements \Countable /* , ContainerInterface */ { private array $keys; public function __construct(array $keys) { $this->keys = $keys; } public function has(string $name): bool { return array_key_exists($name, $this->keys); } public function get(string $name): ?string { return $this->keys[$name] ?? null; } public function generate(string $name): string { $key = Chiffrement::keygen(); $this->keys[$name] = $key; spip_log("Création de la cle $name", 'chiffrer' . _LOG_INFO_IMPORTANTE); return $key; } public function set( string $name, #[\SensitiveParameter] string $key ): void { $this->keys[$name] = $key; } public function delete(string $name): bool { if (isset($this->keys[$name])) { unset($this->keys[$name]); return true; }; return false; } public function count(): int { return count($this->keys); } public function toJson(): string { $json = array_map('base64_encode', $this->keys); return \json_encode($json); } }