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