toDER(); } /** * Get the private key as a PrivateKeyInfo type. */ public function privateKeyInfo(): PrivateKeyInfo { return PrivateKeyInfo::fromPrivateKey($this); } /** * Initialize private key from PEM. * * @return PrivateKey */ public static function fromPEM(PEM $pem) { return match ($pem->type()) { PEM::TYPE_RSA_PRIVATE_KEY => RSAPrivateKey::fromDER($pem->data()), PEM::TYPE_EC_PRIVATE_KEY => ECPrivateKey::fromDER($pem->data()), PEM::TYPE_PRIVATE_KEY => PrivateKeyInfo::fromDER($pem->data())->privateKey(), default => throw new UnexpectedValueException('PEM type ' . $pem->type() . ' is not a valid private key.'), }; } }