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.PharData::setSignatureAlgorithm
(No version information available, might only be in Git)
PharData::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it
Description
Note: This method requires the php.ini setting
phar.readonlyto be set to0in order to work for Phar objects. Otherwise, a PharException will be thrown.
Set the signature algorithm for a phar and apply it. The
signature algorithm must be one of Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512, or Phar::OPENSSL.
Parameters
algo-
One of
Phar::MD5,Phar::SHA1,Phar::SHA256,Phar::SHA512, orPhar::OPENSSL
Return Values
No value is returned.
Errors/Exceptions
Throws UnexpectedValueException for many errors, BadMethodCallException if called for a zip- or a tar-based phar archive, and a PharException if any problems occur flushing changes to disk.
Changelog
| Version | Description |
|---|---|
| 8.0.0 |
privateKey is now nullable.
|
See Also
- Phar::getSupportedSignatures() - Return array of supported signature types
- Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive