Package org.bitcoinj.wallet
Interface EncryptableKeyChain
- All Superinterfaces:
KeyChain
- All Known Implementing Classes:
BasicKeyChain
,DeterministicKeyChain
,MarriedKeyChain
An encryptable key chain is a key-chain that can be encrypted with a user-provided password or AES key.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.bitcoinj.wallet.KeyChain
KeyChain.KeyPurpose
-
Method Summary
Modifier and TypeMethodDescriptionboolean
checkAESKey
(org.bouncycastle.crypto.params.KeyParameter aesKey) boolean
checkPassword
(CharSequence password) Returns the key crypter used by this key chain, or null if it's not encrypted.toDecrypted
(CharSequence password) Decrypts the key chain with the given password.toDecrypted
(org.bouncycastle.crypto.params.KeyParameter aesKey) Decrypt the key chain with the given AES key and whateverKeyCrypter
is already set.toEncrypted
(CharSequence password) Takes the given password, which should be strong, derives a key from it and then invokestoEncrypted(KeyCrypter, KeyParameter)
withKeyCrypterScrypt
as the crypter.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.Methods inherited from interface org.bitcoinj.wallet.KeyChain
addEventListener, addEventListener, getEarliestKeyCreationTime, getFilter, getKey, getKeys, hasKey, numBloomFilterEntries, numKeys, removeEventListener, serializeToProtobuf
-
Method Details
-
toEncrypted
Takes the given password, which should be strong, derives a key from it and then invokestoEncrypted(KeyCrypter, KeyParameter)
withKeyCrypterScrypt
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
Decrypts the key chain with the given password. SeetoDecrypted(KeyParameter)
for details. -
toDecrypted
Decrypt the key chain with the given AES key and whateverKeyCrypter
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 theSendRequest.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
-
checkAESKey
boolean checkAESKey(org.bouncycastle.crypto.params.KeyParameter aesKey) -
getKeyCrypter
Returns the key crypter used by this key chain, or null if it's not encrypted.
-