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.
Phar::setSignatureAlgorithm
(PHP >= 5.3.0, PECL phar >= 1.1.0)
Phar::setSignatureAlgorithm — phar のシグネチャのアルゴリズムを設定する
説明
void Phar::setSignatureAlgorithm
( int
$sigtype
)注意:
このメソッドは、php.ini の phar.readonly が 0 でないと Phar オブジェクトで動作しません。それ以外の場合は PharException がスローされます。
phar のシグネチャのアルゴリズムを設定します。 シグネチャのアルゴリズムは Phar::MD5、 Phar::SHA1、Phar::SHA256、 Phar::SHA512 あるいは Phar::PGP のいずれかでなければなりません (pgp は現時点ではまだサポートされておらず、自動的に SHA-1 に読みかえられます)。
パラメータ
-
sigtype -
Phar::MD5、 Phar::SHA1、Phar::SHA256、 Phar::SHA512 あるいは Phar::PGP のいずれか。
返り値
値を返しません。
エラー / 例外
さまざまなエラーが発生した場合に UnexpectedValueException をスローします。 zip 形式や tar 形式の phar アーカイブに対してコールした場合は BadMethodCallException をスローします。 変更内容をディスクに書き込むときにエラーが発生した場合は PharException をスローします。
参考
- Phar::getSupportedSignatures() - サポートするシグネチャ型の配列を返す
- Phar::getSignature() - Phar アーカイブの MD5/SHA1/SHA256/SHA512/OpenSSL シグネチャを返す
obsidian[at-nospam]codebite[dot]net
14-Jun-2011 11:06
