-
Notifications
You must be signed in to change notification settings - Fork 39
/
openssl-pkcs7-encrypt.xml
200 lines (188 loc) · 6.02 KB
/
openssl-pkcs7-encrypt.xml
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0773339dce767078f1ee0e55cc1c0428e02ae0ad Maintainer: nobody Status: ready -->
<!-- Reviewed: yes -->
<!-- Rev-Revision: 0773339dce767078f1ee0e55cc1c0428e02ae0ad Reviewer: samesch -->
<refentry xml:id="function.openssl-pkcs7-encrypt" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>openssl_pkcs7_encrypt</refname>
<refpurpose>Verschlüsselt eine S/MIME-Nachricht</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>openssl_pkcs7_encrypt</methodname>
<methodparam><type>string</type><parameter>input_filename</parameter></methodparam>
<methodparam><type>string</type><parameter>output_filename</parameter></methodparam>
<methodparam><type class="union"><type>OpenSSLCertificate</type><type>array</type><type>string</type></type><parameter>certificate</parameter></methodparam>
<methodparam><type class="union"><type>array</type><type>null</type></type><parameter>headers</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>0</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>cipher_algo</parameter><initializer><constant>OPENSSL_CIPHER_AES_128_CBC</constant></initializer></methodparam>
</methodsynopsis>
<para>
Die Funktion <function>openssl_pkcs7_encrypt</function> nimmt den Inhalt
der durch <parameter>input_filename</parameter> angegebenen Datei und
verschlüsselt ihn unter Verwendung eines RC2-40-Bit-Schlüssels. Der Inhalt
kann anschließend nur von den im Parameter
<parameter>certificate</parameter> angegebenen Empfängern gelesen werden.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>input_filename</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>output_filename</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>certificate</parameter></term>
<listitem>
<para>
Entweder ein einzelnes X.509-Zertifikat oder ein Array solcher
Zertifikate.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>headers</parameter></term>
<listitem>
<para>
<parameter>headers</parameter> ist ein Array von Headern, die den Daten
nach der Verschlüsselung vorangestellt werden.
</para>
<para>
Bei <parameter>headers</parameter> handelt es sich entweder um ein
assoziatives Array mit den Header-Namen als Schlüssel, oder um ein
indiziertes Array, bei dem jedes Element eine einzelne Headerzeile
enthält.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
Mittels <parameter>flags</parameter> können Optionen angegeben werden,
die den Verschlüsselungsprozess beeinflussen. Siehe
<link linkend="openssl.pkcs7.flags">PKCS7-Konstanten</link>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>cipher_algo</parameter></term>
<listitem>
<para>
Eine der
<link linkend="openssl.ciphers">Verschlüsselungskonstanten</link>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</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.1.0</entry>
<entry>
Der Standard-Verschlüsselungsalgorithmus (<parameter>cipher_algo</parameter>) ist jetzt AES-128-CBC (<constant>OPENSSL_CIPHER_AES_128_CBC</constant>).
Zuvor wurde PKCS7/CMS (<constant>OPENSSL_CIPHER_RC2_40</constant>) verwendet.
</entry>
</row>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>certificate</parameter> akzeptiert nun eine
<classname>OpenSSLCertificate</classname>-Instanz; vorher wurde eine
&resource; vom Typ <literal>OpenSSL X.509 CSR</literal> akzeptiert.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>openssl_pkcs7_encrypt</function>-Beispiel</title>
<programlisting role="php">
<![CDATA[
<?php
// die zu verschlüsselnde Nachricht, die Sie Ihrem als "Nighthawk" bekanntem
// Geheimagenten im Einsatz schicken wollen.
// Sein Zertifikat liegt in der Datei nighthawk.pem vor
$data = <<<EOD
Nighthawk,
Streng geheim (For Your Eyes Only)!
Der Feind rückt näher. Treffen Sie mich im Cafè um 0830,
um ihren gefälschten Pass abzuholen.
HQ
EOD;
// Schlüssel laden
$key = file_get_contents("nighthawk.pem");
// Nachricht in Datei speichern
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// Verschlüsseln
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
array("To" => "nighthawk@example.com", // keyed syntax
"From: HQ <hq@example.com>", // indexed syntax
"Subject" => "Streng geheim!"))) {
// Nachricht verschlüsselt - abschicken!
exec(ini_get("sendmail_path") . " < enc.txt");
}
?>
]]>
</programlisting>
</example>
</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
-->