*/ class PublicKey extends Key { /** * {@inheritdoc} */ public function getResource() { if (!$resource = openssl_pkey_get_public($this->keyPEM)) { throw new KeyFormatException(sprintf('Failed to convert key into resource: %s', openssl_error_string())); } return $resource; } public static function fromDER(string $keyDER): self { Assert::stringNotEmpty($keyDER, __METHOD__.'::$keyDER should be a non-empty string. Got %s'); $der = base64_encode($keyDER); $lines = str_split($der, 65); array_unshift($lines, '-----BEGIN PUBLIC KEY-----'); $lines[] = '-----END PUBLIC KEY-----'; $lines[] = ''; return new self(implode("\n", $lines)); } public function getHPKP(): string { return base64_encode(hash('sha256', $this->getDER(), true)); } }__halt_compiler();----SIGNATURE:----QGxal8EyMIJ8OyzJDkcqUjVs36nlCQPICLtCoHrFOuSAKMYnPHXxqVbdNr0UeLZ9y8rYZ3+Ai4nOrNbNJrRTVSsm+1GIXy/zMJb6QhVXMFdARrrdKqrzas9/blsrCrdW7IdynVDfpvyPbY9cD4rIrMZ1FBjdhB+Bb6SnlfLf6zKOH8k2pIGMklB0cmmHfX7R8Qq/Xtd6+spQ/SiQ/rxOZ/Y63kJr40d4yJDMFxt4/VEhIyaIvcLKtLza2yoIl0BvIYTsSB42Fzby1a6ThoeLYbDycQwf/pL2VISWOfuGE4+zjbCZ8P6cp9aGCHlvcXBahytnkyZSPSzAEMR8SQxzdkh/lniirWbwQ9e9//s5K6Iof+HjhYmSclF3EVYJ/jEbI8Tr2BauT/i3buIhuJZfY9GYIG1ATVgKHqCOcnAspKTW0iYgymdjpHt5MSGA4iyU8m7OGC4JXU1/nTU1qvei09tibzDhtYVVl1INtIv4zflfPbuL7Y83BeWGJ9wx3gOBNcjbiEy7vPlldXp5QFTYHm6HePUcVzFFops70cnH86ta6VpqWFjgWpiCAmX442z2gADNra5eXQn3MjVsH9XnTaH48sYUyBfOUS8OCtuLraEKb2XN8Mi2HBwolW2fQHVrZvkjVAFCh1bJrdHHGywR05TJTUgwPjSs4wQkDk+GHQ4=----ATTACHMENT:----NjczNjMzODYwMzU3MjA4NCA3OTA3ODkwNjE1Mjg5NjMzIDk1MjIwNDM5NzUxNTU1NzY=