PublicKey

PublicKey[assoc]

represents the public part of a key pair for a public-key cryptographic system.

PublicKey[PrivateKey[]]

creates a matching public key for the given private key.

Details

  • PublicKey objects can be used with functions such as Encrypt, Decrypt and VerifyDigitalSignature.
  • Data encrypted with a particular PublicKey object must be decrypted with a corresponding PrivateKey object.
  • Corresponding pairs of PrivateKey and PublicKey objects can be generated with GenerateAsymmetricKeyPair.
  • PublicKey[]["prop"] can be used to extract properties of the public key.
  • Basic properties for PublicKey include:
  • "Type"type of cryptography
    "PublicByteArray"public key as a byte array
    "PublicHexString"public key as a hex string
    "PublicKeySize"size of public key in bits
  • Possible types of cryptography include "RSA" and "EllipticCurve".
  • Additional properties for "RSA" include:
  • "PublicExponent"public exponent
    "PublicModulus"public modulus
    "Padding"padding mode
  • Additional properties for "EllipticCurve" include:
  • "EllipticCurve"name of elliptic curve (e.g. "sec256k1")
    "PublicCurvePoint"public curve point
    "Compressed"whether the public key is in compressed form
  • PublicKey[]["Properties"] gives a list of available properties.

Examples

open allclose all

Basic Examples  (2)

Generate public and private keys:

Encrypt using the public key:

Decrypt using the private key:

Generate an elliptic curvebased public key:

Check the elliptic curve used to create the key pair:

Check if the public key was compressed:

Discover all available properties of the public key:

Scope  (2)

You can use PublicKey as a constructor for a valid public key object.

Generate public and private keys:

Obtain the public key:

Construct a valid public key object from the pre-generated values:

Test whether it matches the original key:

You can construct a public key from a private key.

Generate a private key:

Use PublicKey to construct a corresponding public key object:

Properties & Relations  (2)

PublicKey objects created by GenerateAsymmetricKeyPair contain a complete set of properties for the key:

It is not necessary to provide all properties to reconstruct a valid public key object. For an elliptic curve, it is sufficient to specify only the public curve point:

Verify that the keys are identical:

Alternatively, use a hex string representation of the public curve point:

Verify that all keys are identical:

Use a ByteArray representation:

Verify that all keys are identical:

To reconstruct a PublicKey object for RSA, provide the public modulus in integer, hex or ByteArray representations:

Recreate the same object as initially obtained from GenerateAsymmetricKeyPair:

Verify that both keys are identical:

Introduced in 2015
 (10.1)
 |
Updated in 2020
 (12.1)