@@ -968,6 +968,35 @@ function openssl_pkey_export($key, ?string &$output, ?string $passphrase = null,
968968}
969969
970970
971+ /**
972+ * This function returns the key details (bits, key, type).
973+ *
974+ * @param \OpenSSLAsymmetricKey $key Resource holding the key.
975+ * @return array Returns an array with the key details on success.
976+ * Returned array has indexes bits (number of bits),
977+ * key (string representation of the public key) and
978+ * type (type of the key which is one of
979+ * OPENSSL_KEYTYPE_RSA,
980+ * OPENSSL_KEYTYPE_DSA,
981+ * OPENSSL_KEYTYPE_DH,
982+ * OPENSSL_KEYTYPE_EC or -1 meaning unknown).
983+ *
984+ * Depending on the key type used, additional details may be returned. Note that
985+ * some elements may not always be available.
986+ * @throws OpensslException
987+ *
988+ */
989+ function openssl_pkey_get_details (\OpenSSLAsymmetricKey $ key ): array
990+ {
991+ error_clear_last ();
992+ $ safeResult = \openssl_pkey_get_details ($ key );
993+ if ($ safeResult === false ) {
994+ throw OpensslException::createFromPhpError ();
995+ }
996+ return $ safeResult ;
997+ }
998+
999+
9711000/**
9721001 * openssl_pkey_get_private parses
9731002 * private_key and prepares it for use by other functions.
@@ -1007,7 +1036,7 @@ function openssl_pkey_get_private($private_key, ?string $passphrase = null): \Op
10071036 * public_key and prepares it for use by other
10081037 * functions.
10091038 *
1010- * @param resource |string $public_key public_key can be one of the following:
1039+ * @param \OpenSSLAsymmetricKey|\OpenSSLCertificate|array |string $public_key public_key can be one of the following:
10111040 *
10121041 * an OpenSSLAsymmetricKey instance
10131042 * a string having the format
@@ -1017,11 +1046,11 @@ function openssl_pkey_get_private($private_key, ?string $passphrase = null): \Op
10171046 *
10181047 * A PEM formatted public key.
10191048 *
1020- * @return resource Returns an OpenSSLAsymmetricKey instance on success.
1049+ * @return \OpenSSLAsymmetricKey Returns an OpenSSLAsymmetricKey instance on success.
10211050 * @throws OpensslException
10221051 *
10231052 */
1024- function openssl_pkey_get_public ($ public_key )
1053+ function openssl_pkey_get_public ($ public_key ): \ OpenSSLAsymmetricKey
10251054{
10261055 error_clear_last ();
10271056 $ safeResult = \openssl_pkey_get_public ($ public_key );
@@ -1453,3 +1482,4 @@ function openssl_x509_read($certificate): \OpenSSLCertificate
14531482 }
14541483 return $ safeResult ;
14551484}
1485+
0 commit comments