PharData::setSignatureAlgorithm

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

PharData::setSignatureAlgorithm β€” Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ подписания phar-Π°Ρ€Ρ…ΠΈΠ²Π° ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ

ОписаниС

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

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Phar потрСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ для Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ phar.readonly Π² Ρ„Π°ΠΉΠ»Π΅ php.ini Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 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.

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

  • Phar::getSupportedSignatures() - ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ массив ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² подписи Π°Ρ€Ρ…ΠΈΠ²Π°
  • Phar::getSignature() - ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-Π°Ρ€Ρ…ΠΈΠ²Π°
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1 note

up
3
obsidian[at-nospam]codebite[dot]net ΒΆ
14 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.