Package org.bitcoinj.wallet
Interface EncryptableKeyChain
-
- All Superinterfaces:
KeyChain
- All Known Implementing Classes:
BasicKeyChain
,DeterministicKeyChain
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.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.bitcoinj.wallet.KeyChain
KeyChain.KeyPurpose
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
checkAESKey(AesKey aesKey)
boolean
checkPassword(java.lang.CharSequence password)
KeyCrypter
getKeyCrypter()
Returns the key crypter used by this key chain, or null if it's not encrypted.EncryptableKeyChain
toDecrypted(java.lang.CharSequence password)
Decrypts the key chain with the given password.EncryptableKeyChain
toDecrypted(AesKey aesKey)
Decrypt the key chain with the given AES key and whateverKeyCrypter
is already set.EncryptableKeyChain
toEncrypted(java.lang.CharSequence password)
Takes the given password, which should be strong, derives a key from it and then invokestoEncrypted(KeyCrypter, AesKey)
withKeyCrypterScrypt
as the crypter.EncryptableKeyChain
toEncrypted(KeyCrypter keyCrypter, AesKey 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, earliestKeyCreationTime, getEarliestKeyCreationTime, getFilter, getKey, getKeys, hasKey, numBloomFilterEntries, numKeys, removeEventListener, serializeToProtobuf
-
-
-
-
Method Detail
-
toEncrypted
EncryptableKeyChain toEncrypted(java.lang.CharSequence password)
Takes the given password, which should be strong, derives a key from it and then invokestoEncrypted(KeyCrypter, AesKey)
withKeyCrypterScrypt
as the crypter.- Returns:
- The derived key, in case you wish to cache it for future use.
-
toEncrypted
EncryptableKeyChain toEncrypted(KeyCrypter keyCrypter, AesKey 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(java.lang.CharSequence password)
Decrypts the key chain with the given password. SeetoDecrypted(AesKey)
for details.
-
toDecrypted
EncryptableKeyChain toDecrypted(AesKey aesKey)
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
boolean checkPassword(java.lang.CharSequence password)
-
checkAESKey
boolean checkAESKey(AesKey aesKey)
-
getKeyCrypter
@Nullable KeyCrypter getKeyCrypter()
Returns the key crypter used by this key chain, or null if it's not encrypted.
-
-