Phar::setSignatureAlgorithm
phar のシグネチャのアルゴリズムを設定して適用する
説明
public void Phar::setSignatureAlgorithm(int $algo, stringnull $privateKey = null)
注意:
このメソッドは、php.ini の phar.readonly
が 0 でないと Phar
オブジェクトで動作しません。それ以外の場合は
PharException がスローされます。
phar のシグネチャのアルゴリズムを設定します。
シグネチャのアルゴリズムは Phar::MD5、
Phar::SHA1、Phar::SHA256、
Phar::SHA512 あるいは Phar::OPENSSL
のいずれかでなければなりません。
実行可能な phar アーカイブについては、
SHA1 形式のシグネチャが
デフォルトで自動的に作成されることに注意しましょう。
データ tar 形式あるいは zip 形式のアーカイブ
(PharData クラスで作成したアーカイブ)
の場合は、
Phar::setSignatureAlgorithm
で明示的にシグネチャを作成して設定する必要があります。
パラメータ
-
algo
-
Phar::MD5、
Phar::SHA1、Phar::SHA256、
Phar::SHA512 あるいは Phar::OPENSSL
のいずれか。
-
privateKey
-
OpenSSL 秘密鍵の中身。証明書あるいは OpenSSL 鍵ファイルから取り出したもの。
<?php
$private = openssl_get_privatekey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($private, $pkey);
$p->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
?>
公開鍵ファイルの名前や置き場所については
phar の導入 を参照ください。
エラー / 例外
さまざまなエラーが発生した場合に
UnexpectedValueException をスローします。
変更内容をディスクに書き込むときにエラーが発生した場合は
PharException をスローします。
参考
- Phar::getSupportedSignatures
- Phar::getSignature