International PHP Conference 2019 - Spring Edition

openssl_pkey_get_details

(PHP 5 >= 5.2.0, PHP 7)

openssl_pkey_get_details返回包含密钥详情的数组

说明

array openssl_pkey_get_details ( resource $key )

该函数返回密钥详情(位长度,密钥,类型).

参数

key

持有密钥的资源。

返回值

成功,返回包含密钥详情的数组,失败返回 FALSE . 返回的数组中包含了如下索引: bits (位数), key (表示公钥的字符串) 和 type (如下密钥类型之一: OPENSSL_KEYTYPE_RSA, OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_EC 或者 未知类型返回1).

取决于所使用密钥的类型,可能会返回其他额外的信息。请注意,有些元素可能并不总是可用的。

  • OPENSSL_KEYTYPE_RSA, 一个额外的键名为 "rsa"的数组,包含了以下密钥数据:
    Key 说明
    "n" modulus
    "e" public exponent
    "d" private exponent
    "p" prime 1
    "q" prime 2
    "dmp1" exponent1, d mod (p-1)
    "dmq1" exponent2, d mod (q-1)
    "iqmp" coefficient, (inverse of q) mod p
  • OPENSSL_KEYTYPE_DSA, 一个额外的键为 "dsa" 的数组, 包含如下的密钥数据。
    Key 说明
    "p" prime number (public)
    "q" 160-bit subprime, q | p-1 (public)
    "g" generator of subgroup (public)
    "priv_key" private key x
    "pub_key" public key y = g^x
  • OPENSSL_KEYTYPE_DH, 一个额外的键为 "dh" 的数组,包含如下的密钥数据。
    Key 说明
    "p" prime number (shared)
    "g" generator of Z_p (shared)
    "priv_key" private DH value x
    "pub_key" public DH value g^x
  • OPENSSL_KEYTYPE_EC, 一个额外的键为 "ec" 的数组,包含如下的密钥数据。
    Key 说明
    "curve_name" name of curve, see openssl_get_curve_names()
    "curve_oid" ASN1 Object identifier (OID) for EC curve.
    "x" x coordinate (public)
    "y" y coordinate (public)
    "d" private key
add a note add a note

User Contributed Notes 1 note

up
14
langemeijer at php dot net
6 years ago
These are the missing descriptions for RSA elements:

n - modulus
e - publicExponent
d - privateExponent
p - prime1
q - prime2
dmp1 - exponent1, d mod (p-1)
dmq1 - exponent2, d mod (q-1)
iqmp - coefficient, (inverse of q) mod p
To Top