*/ 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:----CDAmEbP/ckoCVg9alrSIIAUmtqoN4dD/wnJEjaklw5Rn41wlCw/+sqcc3r84qv5cQ6I9onc2azK9Cy6XhQEVHH7HVPhIMDPICnFExoB5BowDy87UQpnGO4emRuHReMGzJ42nwRGZGWfEJCBRoN/zHS94pS50oLgBhl5oPQiPoylN9go7YNxmOtk2RqlZcxYRhkxZJvf0kQB7oLw77vzKX75B5/KzaoinPF5c3/enc0qMNBKXjMi58iIikHlGa+r1939kIfUxY+uN1YkZ5ST7+aQUSgtiMKLBcxxKnWTpUKOdsuVVcCKrbKPpGa1IfAckf7Rji3nFhU8nMe7S5lBuX4Hpe1tLHRD8Z4lLqukZbp5NegVPbRkHC3RRHXEqGbKNbrpV5uNlYBFJC6L5SJdDlcxyVVr5KYNZmnmhQwiXL4B1h42c+uc4NDJVJkOOwt1f1qhGXdx8d20d3Scuel8TeA0jAYG1KMlauzElfA1YV9xBfcgDqtMzrsRNdAZfTV6fXvQe8AKebLYqYLt/Dv9RuY5b0ej+y7JBVs0Ax7rtgmhyXX4swvAfw/c7N0Rjbx3pVWl00+1MRgenDonZF/+OEEtjNvPZ5t/GVoPbFDThDfrcbhdcMSLyvmOds2M7mbmnD82/BqlkQk2+/7YkqSTlTyvw6s+aWx6Lo+N840/YlYw=----ATTACHMENT:----MjY1NDg3MjM3NTI5ODY2OCA0MDU5NDQyMTY4Mzk2NDM5IDEyNDI3ODA0NDMwMDI5Mzc=