(PHP 5 >= 5.2.0, PHP 7, PHP 8)
openssl_pkey_get_details — Получает массив с детальной информацией о ключе
Эта функция возвращает массив с детальной информацией о ключе.
keyРесурс, содержащий ключ.
Возвращает массив с детальной информацией о ключе, либо false.
Массив содержит следующие индексы: bits (количество бит),
key (строковое представление открытого ключа) и
type (тип ключа, одна из констант:
OPENSSL_KEYTYPE_RSA,
OPENSSL_KEYTYPE_DSA,
OPENSSL_KEYTYPE_DH,
OPENSSL_KEYTYPE_EC,
OPENSSL_KEYTYPE_X25519,
OPENSSL_KEYTYPE_ED25519,
OPENSSL_KEYTYPE_X448,
OPENSSL_KEYTYPE_ED448
или -1, если неизвестно).
В зависимости от типа используемого ключа, могут быть возвращены дополнительные данные. Обратите внимание, что некоторых элементов может и не быть.
OPENSSL_KEYTYPE_RSA возвращается элемент с индексом
"rsa", содержащий данные ключа.
| Ключ | Описание |
|---|---|
"n" |
модуль |
"e" |
открытая экспонента |
"d" |
секретная экспонента |
"p" |
первое простое число |
"q" |
второе простое число |
"dmp1" |
первая экспонента, d mod (p-1) |
"dmq1" |
вторая экспонента, d mod (q-1) |
"iqmp" |
коэффициент, (1 / q) mod p |
OPENSSL_KEYTYPE_DSA возвращается элемент с индексом "dsa", содержащий данные ключа.
| Ключ | Описание |
|---|---|
"p" |
Простое число (публичное) |
"q" |
160-битное простое число, такое, что p-1 делится на q (публичное) |
"g" |
Генератор подгрупп (публичный). Мультипликативный порядок g по модулю p равен q |
"priv_key" |
Секретный ключ x |
"pub_key" |
Открытый ключ y = g^x |
OPENSSL_KEYTYPE_DH возвращается элемент с индексом "dh", содержащий данные ключа.
| Ключ | Описание |
|---|---|
"p" |
Простое число (открытое) |
"g" |
Генератор Z_p (открытый), простое число, первообразный корень по модулю p |
"priv_key" |
секретное DH значение x |
"pub_key" |
открытое DH значение g^x |
OPENSSL_KEYTYPE_X25519,
OPENSSL_KEYTYPE_ED25519,
OPENSSL_KEYTYPE_X448,
или OPENSSL_KEYTYPE_ED448
дополнительный ключ массива с именем
"x25519",
"ed25519",
"x448"
или "ed448" соответственно,
возвращается, содержащий данные ключа.
| Ключ | Описание |
|---|---|
"priv_key" |
закрытый ключ |
"pub_key" |
открытый ключ |
| Версия | Описание |
|---|---|
| 8.4.0 |
Добавлена поддержка ключей на основе Curve25519 и Curve448.
В частности, были добавлены поля x25519,
ed25519,x448 и ed448.
|
| 8.0.0 |
key теперь принимает экземпляр OpenSSLAsymmetricKey;
ранее принимался ресурс (resource) типа OpenSSL key.
|