Interface EncryptableKeyChain

All Superinterfaces:
KeyChain
All Known Implementing Classes:
BasicKeyChain, DeterministicKeyChain, MarriedKeyChain

public interface EncryptableKeyChain extends KeyChain
An encryptable key chain is a key-chain that can be encrypted with a user-provided password or AES key.
  • Method Details

    • toEncrypted

      EncryptableKeyChain toEncrypted(CharSequence password)
      Takes the given password, which should be strong, derives a key from it and then invokes toEncrypted(KeyCrypter, KeyParameter) with KeyCrypterScrypt as the crypter.
      Returns:
      The derived key, in case you wish to cache it for future use.
    • toEncrypted

      EncryptableKeyChain toEncrypted(KeyCrypter keyCrypter, org.bouncycastle.crypto.params.KeyParameter aesKey)
      Returns a new keychain holding identical/cloned keys to this chain, but encrypted under the given key. Old keys and keychains remain valid and so you should ensure you don't accidentally hold references to them.
    • toDecrypted

      EncryptableKeyChain toDecrypted(CharSequence password)
      Decrypts the key chain with the given password. See toDecrypted(KeyParameter) for details.
    • toDecrypted

      EncryptableKeyChain toDecrypted(org.bouncycastle.crypto.params.KeyParameter aesKey)
      Decrypt the key chain with the given AES key and whatever KeyCrypter is already set. Note that if you just want to spend money from an encrypted wallet, don't decrypt the whole thing first. Instead, set the SendRequest.aesKey field before asking the wallet to build the send.
      Parameters:
      aesKey - AES key to use (normally created using KeyCrypter#deriveKey and cached as it is time consuming to create from a password)
      Throws:
      KeyCrypterException - Thrown if the wallet decryption fails. If so, the wallet state is unchanged.
    • checkPassword

      boolean checkPassword(CharSequence password)
    • checkAESKey

      boolean checkAESKey(org.bouncycastle.crypto.params.KeyParameter aesKey)
    • getKeyCrypter

      @Nullable KeyCrypter getKeyCrypter()
      Returns the key crypter used by this key chain, or null if it's not encrypted.