Package org.stellar.sdk
Class KeyPair
java.lang.Object
org.stellar.sdk.KeyPair
Holds a Stellar keypair.
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canSign()
Returns true if this Keypair is capable of signingboolean
static KeyPair
fromAccountId
(String accountId) Creates a new Stellar KeyPair from a strkey encoded Stellar account ID.static KeyPair
fromBip39Seed
(byte[] bip39Seed, int accountNumber) Finds the KeyPair for the path m/44'/148'/accountNumber' using the method described in SEP-0005.static KeyPair
fromPublicKey
(byte[] publicKey) Creates a new Stellar keypair from a 32 byte address.static KeyPair
fromSecretSeed
(byte[] seed) Creates a new Stellar keypair from a raw 32 byte secret seed.static KeyPair
fromSecretSeed
(char[] seed) Creates a new Stellar KeyPair from a strkey encoded Stellar secret seed.static KeyPair
fromSecretSeed
(String seed) Insecure Creates a new Stellar KeyPair from a strkey encoded Stellar secret seed.static KeyPair
Creates a new KeyPair from an XDRPublicKey
.static KeyPair
Creates a new KeyPair from an XDRSignerKey
.Returns the human-readable account ID encoded in strkey.byte[]
Returns the raw 32 byte public key.char[]
Returns the human-readable secret seed encoded in strkey.Returns the signature hint for this keypair.Returns the XDRAccountID
for this keypair.Returns the XDRPublicKey
for this keypair.Returns the XDRSignerKey
for this keypair.int
hashCode()
static KeyPair
random()
Generates a random Stellar keypair.byte[]
sign
(byte[] data) Sign the provided data with the keypair's private key.signDecorated
(byte[] data) Sign the provided data with the keypair's private key and returnsDecoratedSignature
.signPayloadDecorated
(byte[] signerPayload) Sign the provided payload data for payload signer where the input is the data being signed.boolean
verify
(byte[] data, byte[] signature) Verify the provided data and signature match this keypair's public key.
-
Method Details
-
canSign
public boolean canSign()Returns true if this Keypair is capable of signing -
fromSecretSeed
Creates a new Stellar KeyPair from a strkey encoded Stellar secret seed.- Parameters:
seed
- Char array containing strkey encoded Stellar secret seed.- Returns:
KeyPair
- Throws:
IllegalArgumentException
- if the provided seed is invalid
-
fromSecretSeed
Insecure Creates a new Stellar KeyPair from a strkey encoded Stellar secret seed. This method is insecure. Use only if you are aware of security implications.- Parameters:
seed
- The strkey encoded Stellar secret seed.- Returns:
KeyPair
- Throws:
IllegalArgumentException
- if the provided seed is invalid- See Also:
-
fromSecretSeed
Creates a new Stellar keypair from a raw 32 byte secret seed.- Parameters:
seed
- The 32 byte secret seed.- Returns:
KeyPair
- Throws:
IllegalArgumentException
- if the provided seed is invalid
-
fromAccountId
Creates a new Stellar KeyPair from a strkey encoded Stellar account ID.- Parameters:
accountId
- The strkey encoded Stellar account ID.- Returns:
KeyPair
- Throws:
IllegalArgumentException
- if the provided account ID is invalid
-
fromPublicKey
Creates a new Stellar keypair from a 32 byte address.- Parameters:
publicKey
- The 32 byte public key.- Returns:
KeyPair
- Throws:
IllegalArgumentException
- if the provided public key is invalid
-
fromBip39Seed
Finds the KeyPair for the path m/44'/148'/accountNumber' using the method described in SEP-0005.You can generate a BIP39 seed using a library like mnemonic4j.
- Parameters:
bip39Seed
- The output of BIP0039accountNumber
- The number of the account- Returns:
- KeyPair with secret
- Throws:
IllegalArgumentException
- if the provided bip39Seed is invalid
-
random
Generates a random Stellar keypair.- Returns:
- a random Stellar keypair.
-
getAccountId
Returns the human-readable account ID encoded in strkey. -
getSecretSeed
public char[] getSecretSeed()Returns the human-readable secret seed encoded in strkey.WARNING: This method returns the secret seed of the keypair. The secret seed should be handled with care and not be exposed to anyone else. Exposing the secret seed can lead to the theft of the account.
- Returns:
- char[] The secret seed of the keypair. If the keypair was created without a secret seed, this method will return null.
-
getPublicKey
public byte[] getPublicKey()Returns the raw 32 byte public key. -
getSignatureHint
Returns the signature hint for this keypair. -
getXdrPublicKey
Returns the XDRPublicKey
for this keypair. -
getXdrAccountId
Returns the XDRAccountID
for this keypair. -
getXdrSignerKey
Returns the XDRSignerKey
for this keypair. -
fromXdrPublicKey
Creates a new KeyPair from an XDRPublicKey
.- Parameters:
key
- The XDRPublicKey
object.- Returns:
- KeyPair
-
fromXdrSignerKey
Creates a new KeyPair from an XDRSignerKey
.- Parameters:
key
- The XDRSignerKey
object.- Returns:
- KeyPair
-
sign
public byte[] sign(byte[] data) Sign the provided data with the keypair's private key.- Parameters:
data
- The data to sign.- Returns:
- signed bytes, null if the private key for this keypair is null.
- Throws:
IllegalStateException
- if the private key for this keypair is null.
-
signDecorated
Sign the provided data with the keypair's private key and returnsDecoratedSignature
.- Parameters:
data
- the data to sign- Returns:
- DecoratedSignature
-
signPayloadDecorated
Sign the provided payload data for payload signer where the input is the data being signed. Per the CAP-40 Signature specDecoratedSignature
.- Parameters:
signerPayload
- the payload signers raw data to sign- Returns:
- DecoratedSignature
-
verify
public boolean verify(byte[] data, byte[] signature) Verify the provided data and signature match this keypair's public key.- Parameters:
data
- The data that was signed.signature
- The signature.- Returns:
- True if they match, false otherwise.
-
equals
-
hashCode
public int hashCode()
-