Skip to content

Commit 3b06ef4

Browse files
authored
Document pkey gen params and addition of Curve25519 + Curve448 (#4281)
1 parent 7d2dd02 commit 3b06ef4

File tree

3 files changed

+517
-60
lines changed

3 files changed

+517
-60
lines changed

reference/openssl/constants.xml

Lines changed: 85 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -138,52 +138,100 @@
138138

139139
<section xml:id="openssl.key-types">
140140
<title>Key types</title>
141-
<variablelist>
142-
<varlistentry xml:id="constant.openssl-keytype-rsa">
143-
<term>
144-
<constant>OPENSSL_KEYTYPE_RSA</constant>
145-
(<type>int</type>)
146-
</term>
147-
<listitem>
141+
<variablelist>
142+
<varlistentry xml:id="constant.openssl-keytype-rsa">
143+
<term>
144+
<constant>OPENSSL_KEYTYPE_RSA</constant>
145+
(<type>int</type>)
146+
</term>
147+
<listitem>
148148
<simpara>
149-
149+
RSA key type.
150150
</simpara>
151-
</listitem>
152-
</varlistentry>
153-
<varlistentry xml:id="constant.openssl-keytype-dsa">
154-
<term>
155-
<constant>OPENSSL_KEYTYPE_DSA</constant>
156-
(<type>int</type>)
157-
</term>
158-
<listitem>
159-
<simpara>
160-
151+
</listitem>
152+
</varlistentry>
153+
<varlistentry xml:id="constant.openssl-keytype-dsa">
154+
<term>
155+
<constant>OPENSSL_KEYTYPE_DSA</constant>
156+
(<type>int</type>)
157+
</term>
158+
<listitem>
159+
<simpara>
160+
DSA key type.
161161
</simpara>
162-
</listitem>
163-
</varlistentry>
164-
<varlistentry xml:id="constant.openssl-keytype-dh">
165-
<term>
162+
</listitem>
163+
</varlistentry>
164+
<varlistentry xml:id="constant.openssl-keytype-dh">
165+
<term>
166166
<constant>OPENSSL_KEYTYPE_DH</constant>
167167
(<type>int</type>)
168-
</term>
169-
<listitem>
170-
<simpara>
171-
172-
</simpara>
173-
</listitem>
174-
</varlistentry>
175-
<varlistentry xml:id="constant.openssl-keytype-ec">
176-
<term>
177-
<constant>OPENSSL_KEYTYPE_EC</constant>
178-
(<type>int</type>)
179-
</term>
168+
</term>
180169
<listitem>
181170
<simpara>
182-
This constant is only available when PHP is compiled with OpenSSL 0.9.8+.
171+
DH (Diffie-Hellman) key type.
183172
</simpara>
184173
</listitem>
185-
</varlistentry>
186-
</variablelist>
174+
</varlistentry>
175+
<varlistentry xml:id="constant.openssl-keytype-ec">
176+
<term>
177+
<constant>OPENSSL_KEYTYPE_EC</constant>
178+
(<type>int</type>)
179+
</term>
180+
<listitem>
181+
<simpara>
182+
Elliptic curve key type.
183+
</simpara>
184+
</listitem>
185+
</varlistentry>
186+
<varlistentry xml:id="constant.openssl-keytype-x25519">
187+
<term>
188+
<constant>OPENSSL_KEYTYPE_X25519</constant>
189+
(<type>int</type>)
190+
</term>
191+
<listitem>
192+
<simpara>
193+
X25519 curve key type.
194+
This constant is only available when PHP is compiled with OpenSSL 3.0+.
195+
</simpara>
196+
</listitem>
197+
</varlistentry>
198+
<varlistentry xml:id="constant.openssl-keytype-ed25519">
199+
<term>
200+
<constant>OPENSSL_KEYTYPE_ED25519</constant>
201+
(<type>int</type>)
202+
</term>
203+
<listitem>
204+
<simpara>
205+
Ed25519 curve key type.
206+
This constant is only available when PHP is compiled with OpenSSL 3.0+.
207+
</simpara>
208+
</listitem>
209+
</varlistentry>
210+
<varlistentry xml:id="constant.openssl-keytype-x448">
211+
<term>
212+
<constant>OPENSSL_KEYTYPE_X448</constant>
213+
(<type>int</type>)
214+
</term>
215+
<listitem>
216+
<simpara>
217+
X448 curve key type.
218+
This constant is only available when PHP is compiled with OpenSSL 3.0+.
219+
</simpara>
220+
</listitem>
221+
</varlistentry>
222+
<varlistentry xml:id="constant.openssl-keytype-ed448">
223+
<term>
224+
<constant>OPENSSL_KEYTYPE_ED448</constant>
225+
(<type>int</type>)
226+
</term>
227+
<listitem>
228+
<simpara>
229+
Ed448 curve key type.
230+
This constant is only available when PHP is compiled with OpenSSL 3.0+.
231+
</simpara>
232+
</listitem>
233+
</varlistentry>
234+
</variablelist>
187235
</section>
188236

189237
<section xml:id="openssl.pkcs7.flags">

reference/openssl/functions/openssl-pkey-get-details.xml

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,12 @@
4343
<constant>OPENSSL_KEYTYPE_RSA</constant>,
4444
<constant>OPENSSL_KEYTYPE_DSA</constant>,
4545
<constant>OPENSSL_KEYTYPE_DH</constant>,
46-
<constant>OPENSSL_KEYTYPE_EC</constant> or -1 meaning unknown).
46+
<constant>OPENSSL_KEYTYPE_EC</constant>,
47+
<constant>OPENSSL_KEYTYPE_X25519</constant>,
48+
<constant>OPENSSL_KEYTYPE_ED25519</constant>,
49+
<constant>OPENSSL_KEYTYPE_X448</constant>,
50+
<constant>OPENSSL_KEYTYPE_ED448</constant>,
51+
or <literal>-1</literal> meaning unknown).
4752
</para>
4853
<para>
4954
Depending on the key type used, additional details may be returned. Note that
@@ -174,8 +179,16 @@
174179
</listitem>
175180
<listitem>
176181
<simpara>
177-
<constant>OPENSSL_KEYTYPE_EC</constant>, an additional array key named <literal>"ec"</literal>,
178-
containing the key data is returned.
182+
<constant>OPENSSL_KEYTYPE_X25519</constant>,
183+
<constant>OPENSSL_KEYTYPE_ED25519</constant>,
184+
<constant>OPENSSL_KEYTYPE_X448</constant>,
185+
or <constant>OPENSSL_KEYTYPE_ED448</constant>
186+
an additional array key named
187+
<literal>"x25519"</literal>,
188+
<literal>"ed25519"</literal>,
189+
<literal>"x448"</literal>,
190+
or <literal>"ed448"</literal> respectively,
191+
is returned, containing the key data.
179192
</simpara>
180193
<informaltable>
181194
<tgroup cols="2">
@@ -187,24 +200,12 @@
187200
</thead>
188201
<tbody>
189202
<row>
190-
<entry><literal>"curve_name"</literal></entry>
191-
<entry>name of curve, see <function>openssl_get_curve_names</function></entry>
192-
</row>
193-
<row>
194-
<entry><literal>"curve_oid"</literal></entry>
195-
<entry>ASN1 Object identifier (OID) for EC curve.</entry>
196-
</row>
197-
<row>
198-
<entry><literal>"x"</literal></entry>
199-
<entry>x coordinate (public)</entry>
200-
</row>
201-
<row>
202-
<entry><literal>"y"</literal></entry>
203-
<entry>y coordinate (public)</entry>
203+
<entry><literal>"priv_key"</literal></entry>
204+
<entry>private key</entry>
204205
</row>
205206
<row>
206-
<entry><literal>"d"</literal></entry>
207-
<entry>private key</entry>
207+
<entry><literal>"pub_key"</literal></entry>
208+
<entry>public key</entry>
208209
</row>
209210
</tbody>
210211
</tgroup>
@@ -224,6 +225,14 @@
224225
</row>
225226
</thead>
226227
<tbody>
228+
<row>
229+
<entry>8.4.0</entry>
230+
<entry>
231+
Added support for Curve25519 and Curve448 based keys.
232+
Specifically the <literal>x25519</literal>, <literal>ed25519</literal>,
233+
<literal>x448</literal> and <literal>ed448</literal> fields have been introduced.
234+
</entry>
235+
</row>
227236
<row>
228237
<entry>8.0.0</entry>
229238
<entry>

0 commit comments

Comments
 (0)