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:
-
"CurveName" name of elliptic curve (e.g. "sec256k1") "PublicCurvePoint" public curve point "Compressed" whether the public key is in compressed form - Possible settings for "CurveName" are listed in $CryptographicEllipticCurveNames.
- PublicKey[…]["Parameters"] gives all the information contained in the object, as an association.
- PublicKey[…]["Properties"] gives a list of available properties.
Examples
open allclose allBasic Examples (2)
Scope (2)
You can use PublicKey as a constructor for a valid public key object.
Generate public and private keys:
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.
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:
Text
Wolfram Research (2015), PublicKey, Wolfram Language function, https://reference.wolfram.com/language/ref/PublicKey.html (updated 2020).
CMS
Wolfram Language. 2015. "PublicKey." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/PublicKey.html.
APA
Wolfram Language. (2015). PublicKey. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/PublicKey.html