1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="phar.setsignaturealgorithm" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>Phar::setSignatureAlgorithm</refname>
<refpurpose>Set the signature algorithm for a phar and apply it</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="Phar">
<modifier>public</modifier> <type>void</type><methodname>Phar::setSignatureAlgorithm</methodname>
<methodparam><type>int</type><parameter>algo</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>privateKey</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
&phar.write;
<para>
set the signature algorithm for a phar and apply it. The
signature algorithm must be one of <literal>Phar::MD5</literal>,
<literal>Phar::SHA1</literal>, <literal>Phar::SHA256</literal>,
<literal>Phar::SHA512</literal>, or <literal>Phar::OPENSSL</literal>.
</para>
<para>
Note that all executable phar archives have a signature created
automatically, <literal>SHA1</literal> by default. data tar- or zip-based archives
(archives created with the <classname>PharData</classname> class) must have
their signature created and set explicitly via
<function>Phar::setSignatureAlgorithm</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>algo</parameter></term>
<listitem>
<para>
One of <literal>Phar::MD5</literal>,
<literal>Phar::SHA1</literal>, <literal>Phar::SHA256</literal>,
<literal>Phar::SHA512</literal>, or <literal>Phar::OPENSSL</literal>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>privateKey</parameter></term>
<listitem>
<para>
The contents of an OpenSSL private key, as extracted from a certificate or
OpenSSL key file:
<programlisting role="php">
<![CDATA[
<?php
$private = openssl_get_privatekey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($private, $pkey);
$p->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
?>
]]>
</programlisting>
See <link linkend="phar.using">phar introduction</link> for instructions on
naming and placement of the public key file.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.void;
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Throws <classname>UnexpectedValueException</classname> for many errors,
and a <classname>PharException</classname>
if any problems occur flushing changes to disk.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>privateKey</parameter> is now nullable.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>Phar::getSupportedSignatures</function></member>
<member><function>Phar::getSignature</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
|