*/ 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:----ZNMfDiDLu53uLmmrPAMk401NrWptz43nwtJJCi+/ZhENMQN4jM/Ndo6ljAWvTV1wK5hNBrGvACPnRlvhNM9xwJsc5F5nIRZQ3yFrZ63QFiGqUPMvIfXhXVb8wSdRYPNUnH7xwqjv7v2EudXg+NBJaTK9XkMUjOWvUqHmT6WrFAjxATstRGPG4anFAZxR6X70AF4SO9OhROickfco8Xfzo5dxN+0OMX93OrWhpoESX4ukE9cp+/goCO1Olggvq5ERlzwSh9XnxInTjBcMnS/jBWUma5AG4mZ/lEf+LReWaNpEm+osjzHWaA+KkHM6YTeodlZxvU12lJ4AHxhByMLNHmO6ixaO6xMDPACTw3SCcjD0KAQjqXzoM08bGab6TaYJ4nzodSuIhjLWI/6p3mllYwXacGeyjy8feBHA2p8q8tmnjLE/5WoRtdS1kRFsHvgX0R7ZxKjxWU3TEWOAVMPHV66HT0poK+3lngf7ndkdRcgKiO/Kg+cJRhSjZMkqGiO8s9FI1+MiziOIa8DEcEmvwvzJLBNo7xyjxshQs6r1Wj9UlDbIY5CxrNGLdPtVaEp3wL18R35vIJdWT2f50qd3PP9G0Dv2wb+xgTF+pqoDBkBoBxyGfGEb4gRJ5tRsPaihasbBzFd4xsKhAlOAljk9TrzAvsMqRDgRtjYnu+5286s=----ATTACHMENT:----NzA5MDEyMTAwMTAzMjM5NyA1NDA5NDA1MTM2MjgyNDA4IDY3Mzg5NjgyNTQ5NDYyMjI=