@Test(expected = IllegalStateException.class) public void notEncrypted() { chain.toDecrypted("fail"); }
@Override public DeterministicKeyChain toDecrypted(CharSequence password) { checkNotNull(password); checkArgument(password.length() > 0); KeyCrypter crypter = getKeyCrypter(); checkState(crypter != null, "Chain not encrypted"); KeyParameter derivedKey = crypter.deriveKey(password); return toDecrypted(derivedKey); }
DeterministicKeyChain implements EncryptableKeyChain { @Override public DeterministicKeyChain toDecrypted(CharSequence password) { checkNotNull(password); checkArgument(password.length() > 0); KeyCrypter crypter = getKeyCrypter(); checkState(crypter != null, "Chain not encrypted"); KeyParameter derivedKey = crypter.deriveKey(password); return toDecrypted(derivedKey); } }
DeterministicKeyChain implements EncryptableKeyChain { @Override public DeterministicKeyChain toDecrypted(CharSequence password) { checkNotNull(password); checkArgument(password.length() > 0); KeyCrypter crypter = getKeyCrypter(); checkState(crypter != null, "Chain not encrypted"); KeyParameter derivedKey = crypter.deriveKey(password); return toDecrypted(derivedKey); } DeterministicKeyChain(DeterministicKey key, boolean isFollowing, boolean isWatching,
            Script.ScriptType outputScriptType);  DeterministicKeyChain(DeterministicKey key, boolean isFollowing, boolean isWatching,
                                 Script.ScriptType outputScriptType, ImmutableList<ChildNumber> accountPath); protected  DeterministicKeyChain(DeterministicSeed seed, @Nullable KeyCrypter crypter,
            Script.ScriptType outputScriptType, ImmutableList<ChildNumber> accountPath); protected  DeterministicKeyChain(KeyCrypter crypter, KeyParameter aesKey, DeterministicKeyChain chain); }
DeterministicKeyChain implements EncryptableKeyChain { @Override public DeterministicKeyChain toDecrypted(CharSequence password) { checkNotNull(password); checkArgument(password.length() > 0); KeyCrypter crypter = getKeyCrypter(); checkState(crypter != null, "Chain not encrypted"); KeyParameter derivedKey = crypter.deriveKey(password); return toDecrypted(derivedKey); } DeterministicKeyChain(DeterministicKey key, boolean isFollowing, boolean isWatching,
            Script.ScriptType outputScriptType);  DeterministicKeyChain(DeterministicKey key, boolean isFollowing, boolean isWatching,
                                 Script.ScriptType outputScriptType, ImmutableList<ChildNumber> accountPath); protected  DeterministicKeyChain(DeterministicSeed seed, @Nullable KeyCrypter crypter,
            Script.ScriptType outputScriptType, ImmutableList<ChildNumber> accountPath); protected  DeterministicKeyChain(KeyCrypter crypter, KeyParameter aesKey, DeterministicKeyChain chain); static Builder<?> builder(); ImmutableList<ChildNumber> getAccountPath(); Script.ScriptType getOutputScriptType(); @Override DeterministicKey getKey(KeyPurpose purpose); @Override List<DeterministicKey> getKeys(KeyPurpose purpose, int numberOfKeys); DeterministicKey markKeyAsUsed(DeterministicKey k); DeterministicKey findKeyFromPubHash(byte[] pubkeyHash); DeterministicKey findKeyFromPubKey(byte[] pubkey); @Nullable DeterministicKey markPubHashAsUsed(byte[] pubkeyHash); @Nullable DeterministicKey markPubKeyAsUsed(byte[] pubkey); @Override boolean hasKey(ECKey key); DeterministicKey getKeyByPath(List<ChildNumber> path, boolean create); DeterministicKey getWatchingKey(); boolean isWatching(); @Override int numKeys(); int numLeafKeysIssued(); @Override long getEarliestKeyCreationTime(); @Override void addEventListener(KeyChainEventListener listener); @Override void addEventListener(KeyChainEventListener listener, Executor executor); @Override boolean removeEventListener(KeyChainEventListener listener); @Nullable List<String> getMnemonicCode(); boolean isFollowing(); @Override List<Protos.Key> serializeToProtobuf(); static List<DeterministicKeyChain> fromProtobuf(List<Protos.Key> keys, @Nullable KeyCrypter crypter, KeyChainFactory factory); @Override DeterministicKeyChain toEncrypted(CharSequence password); @Override DeterministicKeyChain toEncrypted(KeyCrypter keyCrypter, KeyParameter aesKey); @Override DeterministicKeyChain toDecrypted(CharSequence password); @Override DeterministicKeyChain toDecrypted(KeyParameter aesKey); @Override boolean checkPassword(CharSequence password); @Override boolean checkAESKey(KeyParameter aesKey); @Nullable @Override KeyCrypter getKeyCrypter(); @Override int numBloomFilterEntries(); @Override BloomFilter getFilter(int size, double falsePositiveRate, long tweak); int getLookaheadSize(); void setLookaheadSize(int lookaheadSize); void setLookaheadThreshold(int num); int getLookaheadThreshold(); void maybeLookAhead(); void maybeLookAheadScripts(); int getIssuedExternalKeys(); int getIssuedInternalKeys(); @Nullable DeterministicSeed getSeed(); List<DeterministicKey> getIssuedReceiveKeys(); List<DeterministicKey> getLeafKeys(); int getKeyLookaheadEpoch(); boolean isMarried(); RedeemData getRedeemData(DeterministicKey followedKey); Script freshOutputScript(KeyPurpose purpose); @Override String toString(); String toString(boolean includeLookahead, boolean includePrivateKeys, @Nullable KeyParameter aesKey, NetworkParameters params); void setSigsRequiredToSpend(int sigsRequiredToSpend); int getSigsRequiredToSpend(); @Nullable RedeemData findRedeemDataByScriptHash(ByteString bytes); }
DeterministicKeyChain implements EncryptableKeyChain { @Override public DeterministicKeyChain toDecrypted(CharSequence password) { checkNotNull(password); checkArgument(password.length() > 0); KeyCrypter crypter = getKeyCrypter(); checkState(crypter != null, "Chain not encrypted"); KeyParameter derivedKey = crypter.deriveKey(password); return toDecrypted(derivedKey); } DeterministicKeyChain(DeterministicKey key, boolean isFollowing, boolean isWatching,
            Script.ScriptType outputScriptType);  DeterministicKeyChain(DeterministicKey key, boolean isFollowing, boolean isWatching,
                                 Script.ScriptType outputScriptType, ImmutableList<ChildNumber> accountPath); protected  DeterministicKeyChain(DeterministicSeed seed, @Nullable KeyCrypter crypter,
            Script.ScriptType outputScriptType, ImmutableList<ChildNumber> accountPath); protected  DeterministicKeyChain(KeyCrypter crypter, KeyParameter aesKey, DeterministicKeyChain chain); static Builder<?> builder(); ImmutableList<ChildNumber> getAccountPath(); Script.ScriptType getOutputScriptType(); @Override DeterministicKey getKey(KeyPurpose purpose); @Override List<DeterministicKey> getKeys(KeyPurpose purpose, int numberOfKeys); DeterministicKey markKeyAsUsed(DeterministicKey k); DeterministicKey findKeyFromPubHash(byte[] pubkeyHash); DeterministicKey findKeyFromPubKey(byte[] pubkey); @Nullable DeterministicKey markPubHashAsUsed(byte[] pubkeyHash); @Nullable DeterministicKey markPubKeyAsUsed(byte[] pubkey); @Override boolean hasKey(ECKey key); DeterministicKey getKeyByPath(List<ChildNumber> path, boolean create); DeterministicKey getWatchingKey(); boolean isWatching(); @Override int numKeys(); int numLeafKeysIssued(); @Override long getEarliestKeyCreationTime(); @Override void addEventListener(KeyChainEventListener listener); @Override void addEventListener(KeyChainEventListener listener, Executor executor); @Override boolean removeEventListener(KeyChainEventListener listener); @Nullable List<String> getMnemonicCode(); boolean isFollowing(); @Override List<Protos.Key> serializeToProtobuf(); static List<DeterministicKeyChain> fromProtobuf(List<Protos.Key> keys, @Nullable KeyCrypter crypter, KeyChainFactory factory); @Override DeterministicKeyChain toEncrypted(CharSequence password); @Override DeterministicKeyChain toEncrypted(KeyCrypter keyCrypter, KeyParameter aesKey); @Override DeterministicKeyChain toDecrypted(CharSequence password); @Override DeterministicKeyChain toDecrypted(KeyParameter aesKey); @Override boolean checkPassword(CharSequence password); @Override boolean checkAESKey(KeyParameter aesKey); @Nullable @Override KeyCrypter getKeyCrypter(); @Override int numBloomFilterEntries(); @Override BloomFilter getFilter(int size, double falsePositiveRate, long tweak); int getLookaheadSize(); void setLookaheadSize(int lookaheadSize); void setLookaheadThreshold(int num); int getLookaheadThreshold(); void maybeLookAhead(); void maybeLookAheadScripts(); int getIssuedExternalKeys(); int getIssuedInternalKeys(); @Nullable DeterministicSeed getSeed(); List<DeterministicKey> getIssuedReceiveKeys(); List<DeterministicKey> getLeafKeys(); int getKeyLookaheadEpoch(); boolean isMarried(); RedeemData getRedeemData(DeterministicKey followedKey); Script freshOutputScript(KeyPurpose purpose); @Override String toString(); String toString(boolean includeLookahead, boolean includePrivateKeys, @Nullable KeyParameter aesKey, NetworkParameters params); void setSigsRequiredToSpend(int sigsRequiredToSpend); int getSigsRequiredToSpend(); @Nullable RedeemData findRedeemDataByScriptHash(ByteString bytes); static final String DEFAULT_PASSPHRASE_FOR_MNEMONIC; static final ImmutableList<ChildNumber> ACCOUNT_ZERO_PATH; static final ImmutableList<ChildNumber> ACCOUNT_ONE_PATH; static final ImmutableList<ChildNumber> BIP44_ACCOUNT_ZERO_PATH; static final ImmutableList<ChildNumber> BIP44_ACCOUNT_ZERO_PATH_TESTNET; static final ImmutableList<ChildNumber> MASTERNODE_HOLDINGS_PATH; static final ImmutableList<ChildNumber> MASTERNODE_HOLDINGS_PATH_TESTNET; static final ImmutableList<ChildNumber> PROVIDER_VOTING_PATH; static final ImmutableList<ChildNumber> PROVIDER_VOTING_PATH_TESTNET; static final ImmutableList<ChildNumber> PROVIDER_OWNER_PATH; static final ImmutableList<ChildNumber> PROVIDER_OWNER_PATH_TESTNET; static final ImmutableList<ChildNumber> PROVIDER_OPERATOR_PATH; static final ImmutableList<ChildNumber> PROVIDER_OPERATOR_PATH_TESTNET; static final ImmutableList<ChildNumber> BLOCKCHAIN_USER_PATH; static final ImmutableList<ChildNumber> BLOCKCHAIN_USER_PATH_TESTNET; static final ImmutableList<ChildNumber> EXTERNAL_SUBPATH; static final ImmutableList<ChildNumber> INTERNAL_SUBPATH; }