Class KeyPair

java.lang.Object
org.stellar.sdk.KeyPair

public class KeyPair extends Object
Holds a Stellar keypair.
  • Constructor Details

    • KeyPair

      public KeyPair(net.i2p.crypto.eddsa.EdDSAPublicKey publicKey)
      Creates a new KeyPair without a private key. Useful to simply verify a signature from a given public address.
      Parameters:
      publicKey - The public key for this KeyPair.
    • KeyPair

      public KeyPair(@NonNull @NonNull net.i2p.crypto.eddsa.EdDSAPublicKey publicKey, net.i2p.crypto.eddsa.EdDSAPrivateKey privateKey)
      Creates a new KeyPair from the given public and private keys.
      Parameters:
      publicKey - The public key for this KeyPair.
      privateKey - The private key for this KeyPair or null if you want a public key only
  • Method Details

    • canSign

      public boolean canSign()
      Returns true if this Keypair is capable of signing
    • fromSecretSeed

      public static KeyPair fromSecretSeed(char[] seed)
      Creates a new Stellar KeyPair from a strkey encoded Stellar secret seed.
      Parameters:
      seed - Char array containing strkey encoded Stellar secret seed.
      Returns:
      KeyPair
    • fromSecretSeed

      public static KeyPair fromSecretSeed(String seed)
      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
      See Also:
    • fromSecretSeed

      public static KeyPair fromSecretSeed(byte[] seed)
      Creates a new Stellar keypair from a raw 32 byte secret seed.
      Parameters:
      seed - The 32 byte secret seed.
      Returns:
      KeyPair
    • fromAccountId

      public static KeyPair fromAccountId(String accountId)
      Creates a new Stellar KeyPair from a strkey encoded Stellar account ID.
      Parameters:
      accountId - The strkey encoded Stellar account ID.
      Returns:
      KeyPair
    • fromPublicKey

      public static KeyPair fromPublicKey(byte[] publicKey)
      Creates a new Stellar keypair from a 32 byte address.
      Parameters:
      publicKey - The 32 byte public key.
      Returns:
      KeyPair
    • fromBip39Seed

      public static KeyPair fromBip39Seed(byte[] bip39Seed, int accountNumber)
      Finds the KeyPair for the path m/44'/148'/accountNumber' using the method described in SEP-0005.
      Parameters:
      bip39Seed - The output of BIP0039
      accountNumber - The number of the account
      Returns:
      KeyPair with secret
    • random

      public static KeyPair random()
      Generates a random Stellar keypair.
      Returns:
      a random Stellar keypair.
    • getAccountId

      public String getAccountId()
      Returns the human-readable account ID encoded in strkey.
    • getSecretSeed

      public char[] getSecretSeed()
      Returns the human-readable secret seed encoded in strkey.
    • getPublicKey

      public byte[] getPublicKey()
    • getSignatureHint

      public SignatureHint getSignatureHint()
    • getXdrPublicKey

      public PublicKey getXdrPublicKey()
    • getXdrAccountId

      public AccountID getXdrAccountId()
    • getXdrSignerKey

      public SignerKey getXdrSignerKey()
    • fromXdrPublicKey

      public static KeyPair fromXdrPublicKey(PublicKey key)
    • fromXdrSignerKey

      public static KeyPair fromXdrSignerKey(SignerKey key)
    • 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.
    • signDecorated

      public DecoratedSignature signDecorated(byte[] data)
      Sign the provided data with the keypair's private key and returns DecoratedSignature.
      Parameters:
      data - the data to sign
      Returns:
      DecoratedSignature
    • signPayloadDecorated

      public DecoratedSignature signPayloadDecorated(byte[] signerPayload)
      Sign the provided payload data for payload signer where the input is the data being signed. Per the CAP-40 Signature spec DecoratedSignature.
      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

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object