Package org.stellar.sdk
Class KeyPair
java.lang.Object
org.stellar.sdk.KeyPair
Holds a Stellar keypair.
-
Method Summary
Modifier and TypeMethodDescriptionbooleancanSign()Returns true if this Keypair is capable of signingbooleanstatic KeyPairfromAccountId(String accountId) Creates a new Stellar KeyPair from a strkey encoded Stellar account ID.static KeyPairfromBip39Seed(byte[] bip39Seed, int accountNumber) Finds the KeyPair for the path m/44'/148'/accountNumber' using the method described in SEP-0005.static KeyPairfromPublicKey(byte[] publicKey) Creates a new Stellar keypair from a 32 byte address.static KeyPairfromSecretSeed(byte[] seed) Creates a new Stellar keypair from a raw 32 byte secret seed.static KeyPairfromSecretSeed(char[] seed) Creates a new Stellar KeyPair from a strkey encoded Stellar secret seed.static KeyPairfromSecretSeed(String seed) Insecure Creates a new Stellar KeyPair from a strkey encoded Stellar secret seed.static KeyPairCreates a new KeyPair from an XDRPublicKey.static KeyPairCreates 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 XDRAccountIDfor this keypair.Returns the XDRPublicKeyfor this keypair.Returns the XDRSignerKeyfor this keypair.inthashCode()static KeyPairrandom()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.byte[]signMessage(byte[] message) Sign a message according to SEP-53.byte[]signMessage(String message) Sign a message according to SEP-53.signPayloadDecorated(byte[] signerPayload) Sign the provided payload data for payload signer where the input is the data being signed.booleanverify(byte[] data, byte[] signature) Verify the provided data and signature match this keypair's public key.booleanverifyMessage(byte[] message, byte[] signature) Verify a SEP-53 signed message.booleanverifyMessage(String message, byte[] signature) Verify a SEP-53 signed message.
-
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 XDRPublicKeyfor this keypair. -
getXdrAccountId
Returns the XDRAccountIDfor this keypair. -
getXdrSignerKey
Returns the XDRSignerKeyfor this keypair. -
fromXdrPublicKey
Creates a new KeyPair from an XDRPublicKey.- Parameters:
key- The XDRPublicKeyobject.- Returns:
- KeyPair
-
fromXdrSignerKey
Creates a new KeyPair from an XDRSignerKey.- Parameters:
key- The XDRSignerKeyobject.- 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() -
signMessage
Sign a message according to SEP-53.- Parameters:
message- The message to sign.- Returns:
- The signature bytes.
-
signMessage
public byte[] signMessage(byte[] message) Sign a message according to SEP-53.- Parameters:
message- The message to sign.- Returns:
- The signature bytes.
-
verifyMessage
public boolean verifyMessage(byte[] message, byte[] signature) Verify a SEP-53 signed message.- Parameters:
message- The original message.signature- The signature to verify.- Returns:
- True if the signature is valid for the given message, false otherwise.
-
verifyMessage
Verify a SEP-53 signed message.- Parameters:
message- The original message.signature- The signature to verify.- Returns:
- True if the signature is valid for the given message, false otherwise.
-