GoLang openssl_pkey_get_details

request it (316)
GoLang replacement for PHP's openssl_pkey_get_details [edit | history]



Do you know a GoLang replacement for PHP's openssl_pkey_get_details? Write it!

PHP openssl_pkey_get_details

PHP original manual for openssl_pkey_get_details [ show | php.net ]

openssl_pkey_get_details

(PHP 5 >= 5.2.0, PHP 7)

openssl_pkey_get_detailsReturns an array with the key details

Description

array openssl_pkey_get_details ( resource $key )

This function returns the key details (bits, key, type).

Parameters

key

Resource holding the key.

Return Values

Returns an array with the key details in success or FALSE in failure. Returned array has indexes bits (number of bits), key (string representation of the public key) and type (type of the key which is one of OPENSSL_KEYTYPE_RSA, OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_EC or -1 meaning unknown).

Depending on the key type used, additional details may be returned. Note that some elements may not always be available.

  • OPENSSL_KEYTYPE_RSA, an additional array key named "rsa", containing the key data is returned.
    Key Description
    "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, an additional array key named "dsa", containing the key data is returned.
    Key Description
    "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, an additional array key named "dh", containing the key data is returned.
    Key Description
    "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, an additional array key named "ec", containing the key data is returned.
    Key Description
    "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