@@ -968,6 +968,35 @@ function openssl_pkey_export($key, ?string &$output, ?string $passphrase = null,
968
968
}
969
969
970
970
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
+
971
1000
/**
972
1001
* openssl_pkey_get_private parses
973
1002
* 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
1007
1036
* public_key and prepares it for use by other
1008
1037
* functions.
1009
1038
*
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:
1011
1040
*
1012
1041
* an OpenSSLAsymmetricKey instance
1013
1042
* a string having the format
@@ -1017,11 +1046,11 @@ function openssl_pkey_get_private($private_key, ?string $passphrase = null): \Op
1017
1046
*
1018
1047
* A PEM formatted public key.
1019
1048
*
1020
- * @return resource Returns an OpenSSLAsymmetricKey instance on success.
1049
+ * @return \OpenSSLAsymmetricKey Returns an OpenSSLAsymmetricKey instance on success.
1021
1050
* @throws OpensslException
1022
1051
*
1023
1052
*/
1024
- function openssl_pkey_get_public ($ public_key )
1053
+ function openssl_pkey_get_public ($ public_key ): \ OpenSSLAsymmetricKey
1025
1054
{
1026
1055
error_clear_last ();
1027
1056
$ safeResult = \openssl_pkey_get_public ($ public_key );
@@ -1453,3 +1482,4 @@ function openssl_x509_read($certificate): \OpenSSLCertificate
1453
1482
}
1454
1483
return $ safeResult ;
1455
1484
}
1485
+
0 commit comments