Class KeyPair

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

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

    Constructors
    Constructor
    Description
    KeyPair(@NonNull net.i2p.crypto.eddsa.EdDSAPublicKey publicKey, net.i2p.crypto.eddsa.EdDSAPrivateKey privateKey)
    Creates a new KeyPair from the given public and private keys.
    KeyPair(net.i2p.crypto.eddsa.EdDSAPublicKey publicKey)
    Creates a new KeyPair without a private key.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Returns true if this Keypair is capable of signing
    boolean
     
    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
    Insecure Creates a new Stellar KeyPair from a strkey encoded Stellar secret seed.
    static KeyPair
    fromXdrPublicKey(org.stellar.sdk.xdr.PublicKey key)
     
    static KeyPair
    fromXdrSignerKey(org.stellar.sdk.xdr.SignerKey key)
     
    Returns the human-readable account ID encoded in strkey.
    byte[]
     
    char[]
    Returns the human-readable secret seed encoded in strkey.
    org.stellar.sdk.xdr.SignatureHint
     
    org.stellar.sdk.xdr.AccountID
     
    org.stellar.sdk.xdr.PublicKey
     
    org.stellar.sdk.xdr.SignerKey
     
    int
     
    static KeyPair
    Generates a random Stellar keypair.
    byte[]
    sign(byte[] data)
    Sign the provided data with the keypair's private key.
    org.stellar.sdk.xdr.DecoratedSignature
    signDecorated(byte[] data)
    Sign the provided data with the keypair's private key and returns DecoratedSignature.
    org.stellar.sdk.xdr.DecoratedSignature
    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.

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, toString, wait, wait, wait
  • 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 org.stellar.sdk.xdr.SignatureHint getSignatureHint()
    • getXdrPublicKey

      public org.stellar.sdk.xdr.PublicKey getXdrPublicKey()
    • getXdrAccountId

      public org.stellar.sdk.xdr.AccountID getXdrAccountId()
    • getXdrSignerKey

      public org.stellar.sdk.xdr.SignerKey getXdrSignerKey()
    • fromXdrPublicKey

      public static KeyPair fromXdrPublicKey(org.stellar.sdk.xdr.PublicKey key)
    • fromXdrSignerKey

      public static KeyPair fromXdrSignerKey(org.stellar.sdk.xdr.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 org.stellar.sdk.xdr.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 org.stellar.sdk.xdr.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