*/ 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:----XcaG73SvdCy7mGybIDJd17cKhCC0AmKvkNfTyBITqKUk/ofWEpjYQijgE4Ko+0yX1RkuP2iXn1B0kJZyNITuuujRRl1c03g2Eelwh0E7u+rEiFcGq7FuVVMMEPnBPTpt7TDsXo8SlecyNon+G+6SreDk2LUqPdDrLgM97zOfpwCNhwR3stIu5J7pfpIAmUen4Dok8a3MN1hg07l52geb0vN0kfJfEvHmPaEPjA/AxrXhpm0lAp8wyLKV777B3DvkTnwifK8jgssrTELkmkSEe5JLzIM7eT53gbExmlOUC20exMeYjO5bRzYVHDtMx6+zC42o2uajbJqK+RS7VH1KVSA+qFyN4xCuKxdss3GICkUyc+eA4rB2gq7IvIwnktCNUvQSkOg2Ucex+XTZsQ/yHiBotbyjWaSnFGx5tcNKtTZnQ7/Vla7B2gdXg71vq65v/5ysiQmCdGtm5rrYVGRy+K5AJO+b2orXDHSF2UKtVFs3acEjq2/RfQ4Q2WWKMhHYvFg4/ZcHa6bj7Rsy5FeBx30ltWn68j3zmUT97beNJqslKQOdy9kjvBKJMVTPDPYiw7kLcZJlvVc8Bm4K0QHxswlC+DqPjPpRjOZSBXB9KSg7D6D9Cc2Va5Mwn8kPjBnY4svE2R+j7xhyELBkmBBwHMCLFKu/NmC/sw7bB6tQKBw=----ATTACHMENT:----ODA3NDE2NzkyNjAwNzk1OCA5ODMwMDEyMjUzNzI4OTQ2IDEwNDY4ODgxODY4MjQzMDA=