ConFoo 2025

PharData::setSignatureAlgorithm

(No version information available, might only be in Git)

PharData::setSignatureAlgorithmУстановить алгоритм подписания phar-архива и применение его

Описание

public PharData::setSignatureAlgorithm(int $algo, ?string $privateKey = null): void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Устанавливает алгоритм подписания phar-архива и применяет его. Доступны следующие алгоритмы подписания: Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512 и Phar::OPENSSL. (pgp пока не поддерживается, вместо него используется SHA-1).

Список параметров

algo

Одна из констант: Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512 или Phar::OPENSSL

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение UnexpectedValueException для большинства ошибок. Для архивов на основе zip или tar выбрасывает исключение BadMethodCallException. При ошибках записи на диск выбрасывает исключение PharException.

Список изменений

Версия Описание
8.0.0 privateKey теперь допускает значение null.

Смотрите также

Добавить

Примечания пользователей 1 note

up
3
obsidian[at-nospam]codebite[dot]net
13 years ago
As a note, the docs don't show the (optional) second parameter nor mention the existence of the Phar::OPENSSL class constant also available for use with this method.

To sign a phar with OpenSSL, for example...

<?php

$phar
= new Phar('somephar.phar');
// ... add your files and such
$phar->setSignatureAlgorithm(Phar::OPENSSL, file_get_contents('private_key_here.pem'));
// ... do whatever else you want afterwards here ...
?>

Hope this proves useful to someone.
To Top