Class PublicKey
A public part of a key pair involved in ECDSA, the digital signature algorithm on which the Libplanet is based. It can be used to verify signatures created with the corresponding PrivateKey and to encrypt messages for someone possessing the corresponding PrivateKey. This can be distributed publicly, hence the name.
Note that it uses secp256k1 as the parameters of the elliptic curve, which is same to Bitcoin and Ethereum. It means public keys generated for Bitcoin/Ethereum can be used by Libplanet-backed games/apps too.
Namespace: Libplanet.Crypto
Assembly: Libplanet.dll
Syntax
public class PublicKey : object
Remarks
Every PublicKey object is immutable.
Constructors
| Improve this Doc View SourcePublicKey(IReadOnlyList<Byte>)
Creates a PublicKey instance from the given
publicKey),
which encodes a valid
ECDSA public key.
Declaration
public PublicKey(IReadOnlyList<byte> publicKey)
Parameters
| Type | Name | Description |
|---|---|---|
| IReadOnlyList<Byte> | publicKey | A valid |
Remarks
A valid
See Also
Methods
| Improve this Doc View SourceEncrypt(ImmutableArray<Byte>)
Encrypts a plaintext message to a ciphertext, which can be decrypted
with the corresponding PrivateKey.
Declaration
public ImmutableArray<byte> Encrypt(ImmutableArray<byte> message)
Parameters
| Type | Name | Description |
|---|---|---|
| ImmutableArray<Byte> | message | A binary data to encrypt. |
Returns
| Type | Description |
|---|---|
| ImmutableArray<Byte> | A ciphertext that was encrypted from the original |
Remarks
Although the word “ciphertext” has the word “text”,
a returned ciphertext is not a Unicode
See Also
| Improve this Doc View SourceEncrypt(Byte[])
Encrypts a plaintext message to a ciphertext, which can be decrypted
with the corresponding PrivateKey.
Declaration
public byte[] Encrypt(byte[] message)
Parameters
| Type | Name | Description |
|---|---|---|
| Byte[] | message | A binary data to encrypt. |
Returns
| Type | Description |
|---|---|
| Byte[] | A ciphertext that was encrypted from the original |
Remarks
Although the word “ciphertext” has the word “text”,
a returned ciphertext is not a Unicode
See Also
| Improve this Doc View SourceFormat(Boolean)
Encodes this public key into a mutable
To get an immutable one, use ToImmutableArray(Boolean) method instead.
Declaration
public byte[] Format(bool compress)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | compress | Returns a short length representation if it is |
Returns
| Type | Description |
|---|---|
| Byte[] | An encoded mutable |
See Also
| Improve this Doc View SourceToImmutableArray(Boolean)
Encodes this public key into a immutable
To get an mutable one, use Format(Boolean) method instead.
Declaration
public ImmutableArray<byte> ToImmutableArray(bool compress)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | compress | Returns a short length representation if it is |
Returns
| Type | Description |
|---|---|
| ImmutableArray<Byte> | An encoded immutable |
See Also
| Improve this Doc View SourceToString()
Gets the public key's hexadecimal representation in compressed form.
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| String | The hexadecimal string of the public key's compressed bytes. |
Verify(IReadOnlyList<Byte>, IReadOnlyList<Byte>)
Verifies whether a signature proves authenticity of
message with the corresponding PrivateKey.
Declaration
public bool Verify(IReadOnlyList<byte> message, IReadOnlyList<byte> signature)
Parameters
| Type | Name | Description |
|---|---|---|
| IReadOnlyList<Byte> | message | A original plaintext message that the |
| IReadOnlyList<Byte> | signature | A signature which tries to authenticity of
|
Returns
| Type | Description |
|---|---|
| Boolean |
|
Operators
| Improve this Doc View SourceEquality(PublicKey, PublicKey)
Declaration
public static bool operator ==(PublicKey left, PublicKey right)
Parameters
| Type | Name | Description |
|---|---|---|
| PublicKey | left | |
| PublicKey | right |
Returns
| Type | Description |
|---|---|
| Boolean |
Inequality(PublicKey, PublicKey)
Declaration
public static bool operator !=(PublicKey left, PublicKey right)
Parameters
| Type | Name | Description |
|---|---|---|
| PublicKey | left | |
| PublicKey | right |
Returns
| Type | Description |
|---|---|
| Boolean |