Uses of Class
net.i2p.data.Hash

Packages that use Hash
net.i2p.client Interfaces and factories for the base I2P SDK used to develop applications that communicate through I2P. 
net.i2p.client.datagram Provides a standard way for reading and writing messages transferred over I2P so that the recipient has an authenticated mechanism to reply to it. 
net.i2p.client.impl Implements the base I2P SDK for developing applications that communicate through I2P. 
net.i2p.client.naming Provides a standard way for querying the local naming service to resolve a name into a Destination (without the complexity of JNDI). 
net.i2p.client.streaming.impl Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages. 
net.i2p.crypto These classes provide a number of low-level cryptographic routines. 
net.i2p.data These classes define the common data structures used by the various I2P protocols. 
net.i2p.data.i2cp The Invisible Internet Client Protocol (I2CP) allows applications simplified access to the I2P network without requiring them to deal with the issues involved with the Invisible Internet Network Protocol (I2NP). 
net.i2p.data.i2np This package defines the low-level messages sent between routers, called the Invisible Internet Network Protocol (I2NP). 
net.i2p.data.router Classes formerly in net.i2p.data but moved here as they are only used by the router. 
net.i2p.i2ptunnel Implementation of preconfigured tunnels, both for clients and servers, and a UI for adding more and editing the configuration. 
net.i2p.router The I2P router application handles the I2P network communication. 
net.i2p.router.client Implements the router side of the I2CP interface, which is the API for applications to send and receive data through the router. 
net.i2p.router.dummy Dummy versions of things for testing. 
net.i2p.router.message Creates and parses garlic messages. 
net.i2p.router.networkdb A couple of classes, but most things are in kademlia. 
net.i2p.router.networkdb.kademlia The network database, including implementation of floodfills. 
net.i2p.router.peermanager The peer manager logs information about the history and quality of network peers. 
net.i2p.router.transport The transport system allows the usage of communication layers that are below I2P in the stack, on which I2P messages are sent. 
net.i2p.router.transport.ntcp The NTCP transport allows passing I2P messages on top of TCP. 
net.i2p.router.transport.udp The UDP transport (also known as 'SSU transport') allows passing I2P messages on top of UDP. 
net.i2p.router.tunnel All the work of managing locally created and participating tunnels, creating and handling tunnel messages, and their encryption. 
net.i2p.router.tunnel.pool Tunnel creation, tunnel build message handling. 
net.i2p.router.util These classes define the several useful utilities used throughout the router. 
net.i2p.util These classes define the several useful utilities used throughout the router and applications. 
org.klomp.snark.dht   
 

Uses of Hash in net.i2p.client
 

Methods in net.i2p.client with parameters of type Hash
 Destination I2PSession.lookupDest(Hash h)
          Lookup a Destination by Hash.
 Destination I2PSession.lookupDest(Hash h, long maxWait)
          Lookup a Destination by Hash.
 

Uses of Hash in net.i2p.client.datagram
 

Methods in net.i2p.client.datagram that return Hash
 Hash I2PDatagramDissector.extractHash()
          Extract the hash of the payload of an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), without verifying the datagram signature.
 Hash I2PDatagramDissector.getHash()
          Extract the hash of the payload of an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), verifying the datagram signature.
 

Uses of Hash in net.i2p.client.impl
 

Methods in net.i2p.client.impl with parameters of type Hash
(package private)  void SubSession.destLookupFailed(Hash h)
          Called by the message handler on reception of DestReplyMessage This will never happen, as the dest reply message does not contain a session ID.
(package private)  void I2PSessionImpl.destLookupFailed(Hash h)
          Called by the message handler on reception of DestReplyMessage
 Destination SubSession.lookupDest(Hash h)
          Blocking.
 Destination I2PSessionImpl.lookupDest(Hash h)
          Blocking.
 Destination SubSession.lookupDest(Hash h, long maxWait)
          Blocking.
 Destination I2PSessionImpl.lookupDest(Hash h, long maxWait)
          Blocking.
 

Uses of Hash in net.i2p.client.naming
 

Methods in net.i2p.client.naming with parameters of type Hash
 Destination NamingService.lookup(Hash hash, int timeout)
          Same as lookupB32 but with the SHA256 Hash precalculated
 String NamingService.reverseLookup(Hash h)
          Reverse lookup a hash
 String BlockfileNamingService.reverseLookup(Hash h)
           
 

Uses of Hash in net.i2p.client.streaming.impl
 

Methods in net.i2p.client.streaming.impl that return types with arguments of type Hash
 Set<Hash> ConnectionOptions.getAccessList()
           
 Set<Hash> ConnectionOptions.getBlacklist()
           
 

Methods in net.i2p.client.streaming.impl with parameters of type Hash
(package private)  boolean ConnThrottler.isThrottled(Hash h)
          Checks individual count only.
(package private)  boolean ConnThrottler.shouldThrottle(Hash h)
          Checks both individual and total.
 

Uses of Hash in net.i2p.crypto
 

Methods in net.i2p.crypto that return Hash
 Hash HMACGenerator.calculate(SessionKey key, byte[] data)
          Deprecated. unused (not even by Syndie)
 Hash HMAC256Generator.calculate(SessionKey key, byte[] data)
          Deprecated. unused (not even by Syndie)
 Hash SHA256Generator.calculateHash(byte[] source)
          Calculate the SHA-256 hash of the source and cache the result.
 Hash SHA256Generator.calculateHash(byte[] source, int start, int len)
          Calculate the hash and cache the result.
 

Methods in net.i2p.crypto with parameters of type Hash
 Signature DSAEngine.sign(Hash hash, SigningPrivateKey signingKey)
          Nonstandard.
 boolean DSAEngine.verifySignature(Signature signature, Hash hash, SigningPublicKey verifyingKey)
          Nonstandard.
 

Uses of Hash in net.i2p.data
 

Fields in net.i2p.data declared as Hash
protected  Hash DatabaseEntry._currentRoutingKey
           
static Hash Hash.FAKE_HASH
           
 

Methods in net.i2p.data that return Hash
 Hash DataStructureImpl.calculateHash()
           
 Hash DataStructure.calculateHash()
          Calculate the SHA256 value of this object (useful for a few scenarios)
 Hash SimpleDataStructure.calculateHash()
           
 Hash KeysAndCert.calculateHash()
          Throws IllegalStateException if keys and cert are not initialized, as of 0.9.12.
static Hash Hash.create(byte[] data)
          Pull from cache or return new WARNING - If the SDS is found in the cache, the passed-in byte array will be returned to the SimpleByteCache for reuse.
static Hash Hash.create(byte[] data, int off)
          Pull from cache or return new
static Hash Hash.create(InputStream in)
          Pull from cache or return new
 Hash Lease.getGateway()
          Retrieve the router at which the destination can be contacted
 Hash DatabaseEntry.getHash()
          A common interface to the Hash of the two subclasses.
 Hash KeysAndCert.getHash()
          Throws IllegalStateException if keys and cert are not initialized, as of 0.9.12.
 Hash DatabaseEntry.getRoutingKey()
          Get the routing key for the structure using the current modifier in the RoutingKeyGenerator.
abstract  Hash RoutingKeyGenerator.getRoutingKey(Hash origKey)
          Get the routing key for a key.
 

Methods in net.i2p.data with parameters of type Hash
abstract  Hash RoutingKeyGenerator.getRoutingKey(Hash origKey)
          Get the routing key for a key.
 void Lease.setGateway(Hash ident)
          Configure the router at which the destination can be contacted
 void DatabaseEntry.setRoutingKey(Hash key)
          Deprecated. unused
 

Uses of Hash in net.i2p.data.i2cp
 

Methods in net.i2p.data.i2cp that return Hash
 Hash DestReplyMessage.getHash()
           
 Hash HostLookupMessage.getHash()
           
 Hash DestLookupMessage.getHash()
           
 Hash RequestLeaseSetMessage.getRouter(int endpoint)
           
 

Methods in net.i2p.data.i2cp with parameters of type Hash
 void RequestLeaseSetMessage.addEndpoint(Hash router, TunnelId tunnel)
           
 

Constructors in net.i2p.data.i2cp with parameters of type Hash
DestLookupMessage(Hash h)
           
DestReplyMessage(Hash h)
           
HostLookupMessage(SessionId id, Hash h, long reqID, long timeout)
           
 

Uses of Hash in net.i2p.data.i2np
 

Methods in net.i2p.data.i2np that return Hash
 Hash DeliveryInstructions.getDestination()
          default null
 Hash DatabaseLookupMessage.getFrom()
          Contains the router who requested this lookup
 Hash DatabaseSearchReplyMessage.getFromHash()
           
 Hash DatabaseStoreMessage.getKey()
          Defines the key in the network database being stored
 Hash DatabaseSearchReplyMessage.getReply(int index)
           
 Hash DatabaseStoreMessage.getReplyGateway()
           
 Hash DeliveryInstructions.getRouter()
          default null
 Hash DatabaseLookupMessage.getSearchKey()
          Defines the key being searched for
 Hash DatabaseSearchReplyMessage.getSearchKey()
          Defines the key being searched for
 Hash BuildRequestRecord.readNextIdentity()
          Read the next hop from the record.
 

Methods in net.i2p.data.i2np that return types with arguments of type Hash
 Set<Hash> DatabaseLookupMessage.getDontIncludePeers()
          Set of peers that a lookup reply should NOT include.
 

Methods in net.i2p.data.i2np with parameters of type Hash
 void DatabaseLookupMessage.addDontIncludePeer(Hash peer)
          Add to the set.
 void DatabaseSearchReplyMessage.addReply(Hash peer)
           
 EncryptedBuildRecord BuildRequestRecord.encryptRecord(I2PAppContext ctx, PublicKey toKey, Hash toPeer)
          Encrypt the record to the specified peer.
 void DeliveryInstructions.setDestination(Hash dest)
          required for DESTINATION
 void DatabaseLookupMessage.setFrom(Hash from)
           
 void DatabaseSearchReplyMessage.setFromHash(Hash from)
           
 void DatabaseStoreMessage.setReplyGateway(Hash peer)
           
 void DeliveryInstructions.setRouter(Hash router)
          required for ROUTER or TUNNEL
 void DatabaseLookupMessage.setSearchKey(Hash key)
           
 void DatabaseSearchReplyMessage.setSearchKey(Hash key)
           
 

Method parameters in net.i2p.data.i2np with type arguments of type Hash
 void DatabaseLookupMessage.addDontIncludePeers(Collection<Hash> peers)
          Add to the set.
 void DatabaseLookupMessage.setDontIncludePeers(Collection<Hash> peers)
          Replace the dontInclude set with this set.
 

Constructors in net.i2p.data.i2np with parameters of type Hash
BuildRequestRecord(I2PAppContext ctx, long receiveTunnelId, Hash peer, long nextTunnelId, Hash nextHop, long nextMsgId, SessionKey layerKey, SessionKey ivKey, SessionKey replyKey, byte[] iv, boolean isInGateway, boolean isOutEndpoint)
          Populate this instance with data.
 

Uses of Hash in net.i2p.data.router
 

Methods in net.i2p.data.router that return Hash
 Hash RouterKeyGenerator.getNextRoutingKey(Hash origKey)
          Get the routing key using tomorrow's modData, not today's
 Hash RouterKeyGenerator.getRoutingKey(Hash origKey)
          Generate a modified (yet consistent) hash from the origKey by generating the SHA256 of the targetKey with the current modData appended to it This makes Sybil's job a lot harder, as she needs to essentially take over the whole keyspace.
 

Methods in net.i2p.data.router that return types with arguments of type Hash
 Set<Hash> RouterInfo.getPeers()
          Deprecated. Implemented here but unused elsewhere
 

Methods in net.i2p.data.router with parameters of type Hash
 Hash RouterKeyGenerator.getNextRoutingKey(Hash origKey)
          Get the routing key using tomorrow's modData, not today's
 Hash RouterKeyGenerator.getRoutingKey(Hash origKey)
          Generate a modified (yet consistent) hash from the origKey by generating the SHA256 of the targetKey with the current modData appended to it This makes Sybil's job a lot harder, as she needs to essentially take over the whole keyspace.
 

Method parameters in net.i2p.data.router with type arguments of type Hash
 void RouterInfo.setPeers(Set<Hash> peers)
          Deprecated. Implemented here but unused elsewhere
 

Uses of Hash in net.i2p.i2ptunnel
 

Methods in net.i2p.i2ptunnel with parameters of type Hash
protected  Socket I2PTunnelServer.getSocket(Hash from, InetAddress remoteHost, int remotePort)
          Get a regular or SSL socket depending on config.
protected  Socket I2PTunnelServer.getSocket(Hash from, int incomingPort)
          Get a regular or SSL socket depending on config and the incoming port.
 boolean ConnThrottler.shouldThrottle(Hash h)
          Checks both individual and total.
 

Uses of Hash in net.i2p.router
 

Methods in net.i2p.router that return Hash
 Hash TunnelPoolSettings.getAliasOf()
          Other destination that this is an alias of (or null).
 Hash TunnelInfo.getDestination()
          if this is a client tunnel, what destination is it for?
 Hash TunnelPoolSettings.getDestination()
          what destination is this a client tunnel for (or null if exploratory)
 Hash ClientMessage.getDestinationHash()
          Retrieve the destination to which this message is directed.
 Hash TunnelInfo.getEndpoint()
          For convenience
 Hash TunnelInfo.getFarEnd()
          For convenience
 Hash TunnelInfo.getGateway()
          For convenience
 Hash TunnelInfo.getPeer(int hop)
          retrieve the peer at the given hop.
 Hash TunnelPoolSettings.getRandomKey()
          random key used for peer ordering
 Hash RouterContext.routerHash()
          Convenience method for getting the router hash.
 Hash PeerManagerFacade.selectRandomByCapability(char capability)
           
 

Methods in net.i2p.router that return types with arguments of type Hash
abstract  Set<Hash> NetworkDatabaseFacade.findNearestRouters(Hash key, int maxNumRouters, Set<Hash> peersToIgnore)
          Return the RouterInfo structures for the routers closest to the given key.
 Set<Hash> TunnelPoolSettings.getAliases()
          Other destinations that use the same tunnel (or null if exploratory) Modifiable, concurrent, not a copy
abstract  Set<Hash> NetworkDatabaseFacade.getAllRouters()
           
 Map<Hash,Banlist.Entry> Banlist.getEntries()
          For BanlistRenderer in router console.
 Map<Hash,TunnelPool> TunnelManagerFacade.getInboundClientPools()
          for TunnelRenderer in router console
 Map<Hash,TunnelPool> TunnelManagerFacade.getOutboundClientPools()
          for TunnelRenderer in router console
 Set<Hash> PeerManagerFacade.getPeersByCapability(char capability)
           
 List<Hash> PeerManagerFacade.selectPeers(PeerSelectionCriteria criteria)
          Select peers from the manager's existing routing tables according to the specified criteria.
 Set<Hash> TunnelManagerFacade.selectPeersInTooManyTunnels()
           
 

Methods in net.i2p.router with parameters of type Hash
 boolean RouterDoSThrottle.acceptNetDbLookupRequest(Hash key)
          Deprecated.  
 boolean RouterThrottleImpl.acceptNetDbLookupRequest(Hash key)
          Deprecated. unused, function moved to netdb
 boolean RouterThrottle.acceptNetDbLookupRequest(Hash key)
          Should we accept the netDb lookup message, replying either with the value or some closer peers, or should we simply drop it due to overload?
 int InNetMessagePool.add(I2NPMessage messageBody, RouterIdentity fromRouter, Hash fromRouterHash)
          Add a new message to the pool.
 void MessageHistory.banlist(Hash peer, String reason)
          We banlisted the peer
 boolean Banlist.banlistRouter(Hash peer)
           
 boolean Banlist.banlistRouter(Hash peer, String reason)
           
 boolean Banlist.banlistRouter(Hash peer, String reason, String transport)
           
 boolean Banlist.banlistRouter(Hash peer, String reason, String transport, boolean forever)
           
 boolean Banlist.banlistRouter(Hash peer, String reason, String reasonCode, String transport, long expireOn)
          So that we may specify an expiration
 boolean Banlist.banlistRouter(String reasonCode, Hash peer, String reason)
          ick have to put the reasonCode in the front to avoid ambiguity
 boolean Banlist.banlistRouterForever(Hash peer, String reason)
           
 boolean Banlist.banlistRouterForever(Hash peer, String reason, String reasonCode)
           
 void ProfileManager.commErrorOccurred(Hash peer)
          Note that there was some sort of communication error talking with the peer
 Job HandlerJobBuilder.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash)
          Create a new job to handle the received message.
 void ProfileManager.dbLookupFailed(Hash peer)
          Note that the peer was unable to reply to a db lookup - either with data or with a lookupReply redirecting the user elsewhere
 void ProfileManager.dbLookupReceived(Hash peer)
          Note that the local router received a db lookup from the given peer
 void ProfileManager.dbLookupReply(Hash peer, int newPeers, int oldPeers, int invalid, int duplicate, long responseTimeMs)
          Note that the peer replied to a db lookup with a redirect to other routers, where the list of redirected users included newPeers routers that the local router didn't know about, oldPeers routers that the local router already knew about, the given invalid routers that were invalid in some way, and the duplicate number of routers that we explicitly asked them not to send us, but they did anyway
 void ProfileManager.dbLookupSuccessful(Hash peer, long responseTimeMs)
          Note that the peer was able to return the valid data for a db lookup
 void ProfileManager.dbStoreFailed(Hash peer)
          Note that we were unable to confirm a successful send of db data to the peer, at least not within our timeout period
 void ProfileManager.dbStoreReceived(Hash peer, boolean wasNewKey)
          Note that the local router received an unprompted db store from the given peer
 void ProfileManager.dbStoreSent(Hash peer, long responseTimeMs)
          Note that we've confirmed a successful send of db data to the peer (though we haven't necessarily requested it again from them, so they /might/ be lying)
 void ProfileManager.dbStoreSuccessful(Hash peer)
          Note that we confirmed a successful send of db data to the peer.
 void MessageHistory.droppedInboundMessage(long messageId, Hash from, String info)
           
 void MessageHistory.droppedOtherMessage(I2NPMessage message, Hash from)
          We received another message we weren't waiting for and don't know how to handle
 void MessageHistory.droppedTunnelMessage(TunnelId id, long msgId, Date expiration, Hash from)
          We don't know about the given tunnel, so we are dropping a message sent to us by the given router
abstract  void NetworkDatabaseFacade.fail(Hash dbEntry)
           
 void TunnelManagerFacade.fail(Hash peer)
           
abstract  Set<Hash> NetworkDatabaseFacade.findNearestRouters(Hash key, int maxNumRouters, Set<Hash> peersToIgnore)
          Return the RouterInfo structures for the routers closest to the given key.
abstract  SessionKeyManager ClientManagerFacade.getClientSessionKeyManager(Hash dest)
           
 String CommSystemFacade.getCountry(Hash peer)
           
 TunnelPoolSettings TunnelManagerFacade.getInboundSettings(Hash client)
           
 byte[] CommSystemFacade.getIP(Hash dest)
           
 LeaseSetKeys KeyManager.getKeys(Hash dest)
          client
 int TunnelManagerFacade.getOutboundClientTunnelCount(Hash destination)
          how many outbound client tunnels in this pool?
 TunnelPoolSettings TunnelManagerFacade.getOutboundSettings(Hash client)
           
 void ProfileManager.heardAbout(Hash peer)
          Note that the local router received a reference to the given peer, either through an explicit dbStore or in a dbLookupReply
 void ProfileManager.heardAbout(Hash peer, long when)
           
 boolean CommSystemFacade.isBacklogged(Hash dest)
           
 boolean Banlist.isBanlisted(Hash peer)
           
 boolean Banlist.isBanlisted(Hash peer, String transport)
           
 boolean Banlist.isBanlistedForever(Hash peer)
           
 boolean Blocklist.isBlocklisted(Hash peer)
          Does the peer's IP address appear in the blocklist? If so, and it isn't banlisted, banlist it forever...
 boolean CommSystemFacade.isEstablished(Hash dest)
           
 boolean CommSystemFacade.isInBadCountry(Hash peer)
           
abstract  boolean ClientManagerFacade.isLocal(Hash destHash)
          Determine if the destination hash specified is managed locally.
 boolean NetworkDatabaseFacade.isNegativeCachedForever(Hash key)
          Is it permanently negative cached?
 boolean TunnelManagerFacade.isValidTunnel(Hash client, TunnelInfo tunnel)
          Is a tunnel a valid member of the pool?
abstract  void NetworkDatabaseFacade.lookupDestination(Hash key, Job onFinishedJob, long timeoutMs, Hash fromLocalDest)
          Lookup using the client's tunnels Succeeds even if LS validation fails due to unsupported sig type
abstract  Destination NetworkDatabaseFacade.lookupDestinationLocally(Hash key)
          Lookup locally in netDB and in badDest cache Succeeds even if LS validation failed due to unsupported sig type
abstract  void NetworkDatabaseFacade.lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs)
           
abstract  void NetworkDatabaseFacade.lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, Hash fromLocalDest)
          Lookup using the client's tunnels
abstract  LeaseSet NetworkDatabaseFacade.lookupLeaseSetLocally(Hash key)
           
abstract  DatabaseEntry NetworkDatabaseFacade.lookupLocally(Hash key)
           
abstract  void NetworkDatabaseFacade.lookupRouterInfo(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs)
           
abstract  RouterInfo NetworkDatabaseFacade.lookupRouterInfoLocally(Hash key)
           
 void ProfileManager.messageFailed(Hash peer)
          Note that the router failed to send a message to the peer over any transport
 void ProfileManager.messageFailed(Hash peer, String transport)
          Note that the router failed to send a message to the peer over the transport specified
 void ProfileManager.messageReceived(Hash peer, String style, long msToReceive, int bytesRead)
          Note that the router received a message from the given peer on the specified transport.
 void ProfileManager.messageSent(Hash peer, String transport, long msToSend, long bytesSent)
          Note that it took msToSend to send a message of size bytesSent to the peer over the transport.
 SessionKey PersistentKeyRing.put(Hash h, SessionKey sk)
           
 void MessageHistory.receiveMessage(String messageType, long messageId, long expiration, Hash from, boolean isValid)
          We just received a message from the peer
 SessionKey PersistentKeyRing.remove(Hash h)
           
 void PeerManagerFacade.removeCapabilities(Hash peer)
           
 String CommSystemFacade.renderPeerHTML(Hash peer)
           
abstract  void ClientManagerFacade.requestLeaseSet(Hash dest, LeaseSet set)
           
 TunnelInfo TunnelManagerFacade.selectInboundExploratoryTunnel(Hash closestTo)
          Pick the inbound exploratory tunnel with the gateway closest to the given hash.
 TunnelInfo TunnelManagerFacade.selectInboundTunnel(Hash destination)
          Pick a random inbound tunnel from the given destination's pool
 TunnelInfo TunnelManagerFacade.selectInboundTunnel(Hash destination, Hash closestTo)
          Pick the inbound tunnel with the gateway closest to the given hash from the given destination's pool.
 TunnelInfo TunnelManagerFacade.selectOutboundExploratoryTunnel(Hash closestTo)
          Pick the outbound exploratory tunnel with the endpoint closest to the given hash.
 TunnelInfo TunnelManagerFacade.selectOutboundTunnel(Hash destination)
          Pick a random outbound tunnel from the given destination's pool
 TunnelInfo TunnelManagerFacade.selectOutboundTunnel(Hash destination, Hash closestTo)
          Pick the outbound tunnel with the endpoint closest to the given hash from the given destination's pool.
 void MessageHistory.sendMessage(String messageType, long messageId, long expiration, Hash peer, boolean sentOk, String info)
          We just sent a message to the peer
 void TunnelPoolSettings.setAliasOf(Hash h)
          Set other destination that this is an alias of (or null).
 void PeerManagerFacade.setCapabilities(Hash peer, String caps)
           
 void TunnelManagerFacade.setInboundSettings(Hash client, TunnelPoolSettings settings)
           
 void TunnelManagerFacade.setOutboundSettings(Hash client, TunnelPoolSettings settings)
           
 boolean ClientManagerFacade.shouldPublishLeaseSet(Hash destinationHash)
          Does the client specified want their leaseSet published?
 DatabaseEntry NetworkDatabaseFacade.store(Hash key, DatabaseEntry entry)
           
abstract  LeaseSet NetworkDatabaseFacade.store(Hash key, LeaseSet leaseSet)
           
abstract  RouterInfo NetworkDatabaseFacade.store(Hash key, RouterInfo routerInfo)
           
 void ProfileManager.tunnelDataPushed(Hash peer, long rtt, int size)
          Note that we were able to push some data through a tunnel that the peer is participating in (detected after rtt).
 void ProfileManager.tunnelDataPushed1m(Hash peer, int size)
          Note that the peer is participating in a tunnel that pushed the given amount of data over the last minute.
 void MessageHistory.tunnelDispatched(long messageId, long tunnelId, long toTunnel, Hash toPeer, String type)
           
 void ProfileManager.tunnelFailed(Hash peer, int pct)
          Note that the peer participated in a tunnel that failed.
 void ProfileManager.tunnelJoined(Hash peer, long responseTimeMs)
          Note that the router agreed to participate in a tunnel
 void ProfileManager.tunnelLifetimePushed(Hash peer, long lifetime, long size)
          Note that we were able to push the given amount of data through a tunnel that the peer is participating in
 void MessageHistory.tunnelParticipantRejected(Hash peer, String msg)
           
 void ProfileManager.tunnelRejected(Hash peer, long responseTimeMs, int severity)
          Note that a router explicitly rejected joining a tunnel
 void MessageHistory.tunnelRejected(Hash peer, TunnelId tunnel, Hash replyThrough, String reason)
          The peer did not accept the tunnel join for the given reason
 void MessageHistory.tunnelRequestTimedOut(Hash peer, TunnelId tunnel)
          The peer did not accept the tunnel join for the given reason (this may be because of a timeout or an explicit refusal).
 void ProfileManager.tunnelTestSucceeded(Hash peer, long responseTimeMs)
          Note that a tunnel that the router is participating in was successfully tested with the given round trip latency
 void ProfileManager.tunnelTimedOut(Hash peer)
          Note that a router timed out joining a tunnel
 void MessageHistory.unbanlist(Hash peer)
          We unbanlisted the peer
 void Banlist.unbanlistRouter(Hash peer)
           
 void Banlist.unbanlistRouter(Hash peer, String transport)
           
 boolean CommSystemFacade.wasUnreachable(Hash dest)
           
 

Method parameters in net.i2p.router with type arguments of type Hash
abstract  Set<Hash> NetworkDatabaseFacade.findNearestRouters(Hash key, int maxNumRouters, Set<Hash> peersToIgnore)
          Return the RouterInfo structures for the routers closest to the given key.
 

Constructors in net.i2p.router with parameters of type Hash
ClientMessage(Hash toDestHash, Payload payload)
          For inbound (from remote dest)
ClientTunnelSettings(Hash dest)
           
TunnelPoolSettings(Hash dest, boolean isInbound)
          Client tunnel unless dest == null
 

Uses of Hash in net.i2p.router.client
 

Methods in net.i2p.router.client that return Hash
 Hash ClientConnectionRunner.getDestHash()
          Equivalent to getConfig().getDestination().calculateHash(); will be null before session is established Not subsession aware.
 Hash ClientConnectionRunner.getDestHash(SessionId id)
          Return the hash for the given ID
 

Methods in net.i2p.router.client with parameters of type Hash
 SessionKeyManager ClientManagerFacadeImpl.getClientSessionKeyManager(Hash dest)
          Return the client's current manager or null if not connected
 SessionKeyManager ClientManager.getClientSessionKeyManager(Hash dest)
          Return the client's SessionKeyManager Use this instead of the RouterContext.sessionKeyManager() to prevent correlation attacks across destinations
 SessionConfig ClientConnectionRunner.getConfig(Hash h)
          Current client's config, will be null if session not found IS subsession aware.
(package private)  LeaseRequestState ClientConnectionRunner.getLeaseRequest(Hash h)
          Data for the current leaseRequest, or null if there is no active leaseSet request.
 LeaseSet ClientConnectionRunner.getLeaseSet(Hash h)
          Currently allocated leaseSet.
(package private)  SessionId ClientConnectionRunner.getSessionId(Hash h)
          Subsession aware.
 boolean ClientManagerFacadeImpl.isLocal(Hash destHash)
          Determine if the destination specified is managed locally.
 boolean ClientManager.isLocal(Hash destHash)
          Unsynchronized
(package private)  void ClientConnectionRunner.receiveMessage(Hash toHash, Destination fromDest, Payload payload)
          Asynchronously deliver the message to the current runner Note that no failure indication is available.
 void ClientManagerFacadeImpl.requestLeaseSet(Hash dest, LeaseSet set)
          Request that a particular client authorize the Leases contained in the LeaseSet.
 void ClientManager.requestLeaseSet(Hash dest, LeaseSet ls)
          Request that a particular client authorize the Leases contained in the LeaseSet.
(package private)  void ClientConnectionRunner.requestLeaseSet(Hash h, LeaseSet set, long expirationTime, Job onCreateJob, Job onFailedJob)
          Request that a particular client authorize the Leases contained in the LeaseSet, after which the onCreateJob is queued up.
(package private)  void ClientConnectionRunner.setSessionId(Hash hash, SessionId id)
          To be called only by ClientManager.
 boolean ClientManagerFacadeImpl.shouldPublishLeaseSet(Hash destinationHash)
           
 boolean ClientManager.shouldPublishLeaseSet(Hash destHash)
           
 

Constructors in net.i2p.router.client with parameters of type Hash
LookupDestJob(RouterContext context, ClientConnectionRunner runner, Hash h, Hash fromLocalDest)
           
LookupDestJob(RouterContext context, ClientConnectionRunner runner, long reqID, long timeout, SessionId sessID, Hash h, String name, Hash fromLocalDest)
          One of h or name non-null.
 

Uses of Hash in net.i2p.router.dummy
 

Methods in net.i2p.router.dummy that return Hash
 Hash DummyPeerManagerFacade.selectRandomByCapability(char capability)
           
 

Methods in net.i2p.router.dummy that return types with arguments of type Hash
 Set<Hash> DummyNetworkDatabaseFacade.findNearestRouters(Hash key, int maxNumRouters, Set<Hash> peersToIgnore)
           
 Set<Hash> DummyNetworkDatabaseFacade.getAllRouters()
           
 Map<Hash,TunnelPool> DummyTunnelManagerFacade.getInboundClientPools()
           
 Map<Hash,TunnelPool> DummyTunnelManagerFacade.getOutboundClientPools()
           
 Set<Hash> DummyPeerManagerFacade.getPeersByCapability(char capability)
           
 List<Hash> DummyPeerManagerFacade.selectPeers(PeerSelectionCriteria criteria)
           
 Set<Hash> DummyTunnelManagerFacade.selectPeersInTooManyTunnels()
           
 

Methods in net.i2p.router.dummy with parameters of type Hash
 void DummyTunnelManagerFacade.fail(Hash peer)
           
 void DummyNetworkDatabaseFacade.fail(Hash dbEntry)
           
 Set<Hash> DummyNetworkDatabaseFacade.findNearestRouters(Hash key, int maxNumRouters, Set<Hash> peersToIgnore)
           
 SessionKeyManager DummyClientManagerFacade.getClientSessionKeyManager(Hash _dest)
           
 TunnelPoolSettings DummyTunnelManagerFacade.getInboundSettings(Hash client)
           
 int DummyTunnelManagerFacade.getOutboundClientTunnelCount(Hash destination)
           
 TunnelPoolSettings DummyTunnelManagerFacade.getOutboundSettings(Hash client)
           
 boolean DummyClientManagerFacade.isLocal(Hash destHash)
           
 boolean DummyTunnelManagerFacade.isValidTunnel(Hash client, TunnelInfo tunnel)
           
 void DummyNetworkDatabaseFacade.lookupDestination(Hash key, Job onFinishedJob, long timeoutMs, Hash fromLocalDest)
           
 Destination DummyNetworkDatabaseFacade.lookupDestinationLocally(Hash key)
           
 void DummyNetworkDatabaseFacade.lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs)
           
 void DummyNetworkDatabaseFacade.lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, Hash fromLocalDest)
           
 LeaseSet DummyNetworkDatabaseFacade.lookupLeaseSetLocally(Hash key)
           
 DatabaseEntry DummyNetworkDatabaseFacade.lookupLocally(Hash key)
           
 void DummyNetworkDatabaseFacade.lookupRouterInfo(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs)
           
 RouterInfo DummyNetworkDatabaseFacade.lookupRouterInfoLocally(Hash key)
           
 void VMCommSystem.receive(byte[] message, Hash fromPeer)
          We send messages between comms as bytes so that we strip any router-local info.
 void DummyPeerManagerFacade.removeCapabilities(Hash peer)
           
 void DummyClientManagerFacade.requestLeaseSet(Hash dest, LeaseSet set)
           
 TunnelInfo DummyTunnelManagerFacade.selectInboundExploratoryTunnel(Hash closestTo)
           
 TunnelInfo DummyTunnelManagerFacade.selectInboundTunnel(Hash destination)
           
 TunnelInfo DummyTunnelManagerFacade.selectInboundTunnel(Hash destination, Hash closestTo)
           
 TunnelInfo DummyTunnelManagerFacade.selectOutboundExploratoryTunnel(Hash closestTo)
           
 TunnelInfo DummyTunnelManagerFacade.selectOutboundTunnel(Hash destination)
           
 TunnelInfo DummyTunnelManagerFacade.selectOutboundTunnel(Hash destination, Hash closestTo)
           
 void DummyPeerManagerFacade.setCapabilities(Hash peer, String caps)
           
 void DummyTunnelManagerFacade.setInboundSettings(Hash client, TunnelPoolSettings settings)
           
 void DummyTunnelManagerFacade.setOutboundSettings(Hash client, TunnelPoolSettings settings)
           
 LeaseSet DummyNetworkDatabaseFacade.store(Hash key, LeaseSet leaseSet)
           
 RouterInfo DummyNetworkDatabaseFacade.store(Hash key, RouterInfo routerInfo)
           
 

Method parameters in net.i2p.router.dummy with type arguments of type Hash
 Set<Hash> DummyNetworkDatabaseFacade.findNearestRouters(Hash key, int maxNumRouters, Set<Hash> peersToIgnore)
           
 

Uses of Hash in net.i2p.router.message
 

Methods in net.i2p.router.message with parameters of type Hash
(package private) static GarlicMessage OutboundClientMessageJobHelper.createGarlicMessage(RouterContext ctx, long replyToken, long expiration, PublicKey recipientPK, PayloadGarlicConfig dataClove, Hash from, Destination dest, TunnelInfo replyTunnel, int tagsToSendOverride, int lowTagsOverride, SessionKey wrappedKey, Set<SessionTag> wrappedTags, boolean requireAck, LeaseSet bundledReplyLeaseSet)
          Allow the app to specify the data clove directly, which enables OutboundClientMessage to resend the same payload (including expiration and unique id) in different garlics (down different tunnels) This is called from OCMOSJ
 Job GarlicMessageHandler.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash)
           
(package private) static boolean GarlicMessageBuilder.needsTags(RouterContext ctx, PublicKey key, Hash local, int minTagOverride)
           
 

Constructors in net.i2p.router.message with parameters of type Hash
GarlicMessageReceiver(RouterContext context, GarlicMessageReceiver.CloveReceiver receiver, Hash clientDestination)
           
HandleGarlicMessageJob(RouterContext context, GarlicMessage msg, RouterIdentity from, Hash fromHash)
           
OutboundCache.HashPair(Hash s, Hash d)
           
SendMessageDirectJob(RouterContext ctx, I2NPMessage message, Hash toPeer, int timeoutMs, int priority)
           
SendMessageDirectJob(RouterContext ctx, I2NPMessage message, Hash toPeer, Job onSend, ReplyJob onSuccess, Job onFail, MessageSelector selector, int timeoutMs, int priority)
           
SendMessageDirectJob(RouterContext ctx, I2NPMessage message, Hash toPeer, ReplyJob onSuccess, Job onFail, MessageSelector selector, int timeoutMs, int priority)
           
 

Uses of Hash in net.i2p.router.networkdb
 

Methods in net.i2p.router.networkdb with parameters of type Hash
protected  void HandleDatabaseLookupMessageJob.sendClosest(Hash key, Set<Hash> routerHashes, Hash toPeer, TunnelId replyTunnel)
           
protected  void HandleDatabaseLookupMessageJob.sendMessage(I2NPMessage message, Hash toPeer, TunnelId replyTunnel)
           
 

Method parameters in net.i2p.router.networkdb with type arguments of type Hash
protected  void HandleDatabaseLookupMessageJob.sendClosest(Hash key, Set<Hash> routerHashes, Hash toPeer, TunnelId replyTunnel)
           
 

Constructors in net.i2p.router.networkdb with parameters of type Hash
HandleDatabaseLookupMessageJob(RouterContext ctx, DatabaseLookupMessage receivedMessage, RouterIdentity from, Hash fromHash)
           
 

Uses of Hash in net.i2p.router.networkdb.kademlia
 

Subclasses of Hash in net.i2p.router.networkdb.kademlia
(package private)  class LocalHash
          Pull the caching used only by KBucketImpl out of Hash and put it here.
 

Fields in net.i2p.router.networkdb.kademlia declared as Hash
protected  Hash FloodSearchJob._key
           
 

Methods in net.i2p.router.networkdb.kademlia that return Hash
 Hash IterativeSearchJob.getFromHash()
          Hash of the dest this query is from
protected  Hash FloodSearchJob.getKey()
           
(package private) static Hash PersistentDataStore.getRouterInfoHash(String filename)
          Package private for installer BundleRouterInfos
 Hash StoreState.getTarget()
           
 Hash SearchState.getTarget()
           
 

Methods in net.i2p.router.networkdb.kademlia that return types with arguments of type Hash
 Set<Hash> KademliaNetworkDatabaseFacade.findNearestRouters(Hash key, int maxNumRouters, Set<Hash> peersToIgnore)
          Get the routers closest to that key in response to a remote lookup Only used by ../HDLMJ Set MAY INCLUDE our own router - add to peersToIgnore if you don't want
 Set<Hash> KademliaNetworkDatabaseFacade.getAllRouters()
          get the hashes for all known routers
 Set<Hash> StoreState.getAttempted()
           
 Set<Hash> SearchState.getAttempted()
           
 Set<Hash> SearchState.getClosestAttempted(int max)
           
 Set<Hash> KademliaNetworkDatabaseFacade.getExploreKeys()
           
 Set<Hash> StoreState.getFailed()
          public Set getSuccessfulExploratory() { synchronized (_successfulExploratoryPeers) { return (Set)_successfulExploratoryPeers.clone(); } }
 Set<Hash> SearchState.getFailed()
           
 List<Hash> FloodfillNetworkDatabaseFacade.getFloodfillPeers()
          list of the Hashes of currently known floodfill peers; Returned list will not include our own hash.
(package private)  KBucketSet<Hash> KademliaNetworkDatabaseFacade.getKBuckets()
           
 Set<Hash> DataStore.getKeys()
           
 Set<Hash> TransientDataStore.getKeys()
           
 Set<Map.Entry<Hash,DatabaseEntry>> DataStore.getMapEntries()
           
 Set<Map.Entry<Hash,DatabaseEntry>> TransientDataStore.getMapEntries()
           
 Set<Hash> StoreState.getPending()
           
 Set<Hash> SearchState.getPending()
           
 Set<Hash> SearchState.getRepliedPeers()
           
 Set<Hash> StoreState.getSuccessful()
           
 Set<Hash> SearchState.getSuccessful()
           
(package private)  List<Hash> FloodfillPeerSelector.selectFloodfillParticipants(Hash key, int maxNumRouters, KBucketSet<Hash> kbuckets)
          Sort the floodfills.
(package private)  List<Hash> FloodfillPeerSelector.selectFloodfillParticipants(Hash key, int howMany, Set<Hash> toIgnore, KBucketSet<Hash> kbuckets)
          See above for description List will not include our own hash
(package private)  List<Hash> FloodfillPeerSelector.selectFloodfillParticipants(KBucketSet<Hash> kbuckets)
           
(package private)  List<Hash> PeerSelector.selectMostReliablePeers(Hash key, int numClosest, Set<Hash> alreadyChecked, KBucketSet<Hash> kbuckets)
          UNUSED - See FloodfillPeerSelector override Search through the kbucket set to find the most reliable peers close to the given key, skipping all of the ones already checked List will not include our own hash.
(package private)  List<Hash> FloodfillPeerSelector.selectMostReliablePeers(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Pick out peers with the floodfill capacity set, returning them first, but then after they're complete, sort via kademlia.
(package private)  List<Hash> PeerSelector.selectNearest(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          UNUSED - See FloodfillPeerSelector override Generic KBucket filtering to find the hashes close to a key, regardless of other considerations.
(package private)  List<Hash> FloodfillPeerSelector.selectNearest(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Floodfill peers only.
(package private)  List<Hash> PeerSelector.selectNearestExplicit(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Ignore KBucket ordering and do the XOR explicitly per key.
(package private)  List<Hash> PeerSelector.selectNearestExplicitThin(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          UNUSED - See FloodfillPeerSelector override Ignore KBucket ordering and do the XOR explicitly per key.
(package private)  List<Hash> FloodfillPeerSelector.selectNearestExplicitThin(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Pick out peers with the floodfill capacity set, returning them first, but then after they're complete, sort via kademlia.
(package private)  List<Hash> FloodfillPeerSelector.selectNearestExplicitThin(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets, boolean preferConnected)
          Pick out peers with the floodfill capacity set, returning them first, but then after they're complete, sort via kademlia.
 

Methods in net.i2p.router.networkdb.kademlia with parameters of type Hash
(package private)  boolean SearchJob.add(Hash peer)
           
 void StoreState.addPending(Hash peer)
           
 void SearchState.addPending(Hash peer)
           
 void StoreState.addPending(Hash peer, MessageWrapper.WrappedMessage msg)
           
 void StoreState.addSkipped(Hash peer)
          we aren't even going to try to contact this peer
protected  I2NPMessage SearchJob.buildMessage(TunnelId replyTunnelId, Hash replyGateway, long expiration, RouterInfo peer)
          Build the database search message
protected  I2NPMessage ExploreJob.buildMessage(TunnelId replyTunnelId, Hash replyGateway, long expiration, RouterInfo peer)
          Build the database search message, but unlike the normal searches, we're more explicit in what we /dont/ want.
 byte[] LocalHash.cachedXor(Hash key)
          Calculate the xor with the current object and the specified hash, caching values where possible.
(package private)  void FloodfillNetworkDatabaseFacade.complete(Hash key)
          Must be called by the search job queued by search() on success or failure
 long StoreState.confirmed(Hash peer)
           
 Job FloodfillDatabaseStoreMessageHandler.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash)
           
 Job FloodfillDatabaseLookupMessageHandler.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash)
           
 long SearchState.dataFound(Hash peer)
          how long did it take to get the reply, or -1 if we don't know
(package private)  int FloodOnlySearchJob.decrementRemaining(Hash peer)
          Note that we heard from the peer
(package private)  void KademliaNetworkDatabaseFacade.dropAfterLookupFailed(Hash peer)
          Final remove for a router info.
 void KademliaNetworkDatabaseFacade.fail(Hash dbEntry)
          Final remove for a leaseset.
(package private)  void IterativeSearchJob.failed(Hash peer, boolean timedOut)
          Note that the peer did not respond with a DSM (either a DSRM, timeout, or failure).
 Set<Hash> KademliaNetworkDatabaseFacade.findNearestRouters(Hash key, int maxNumRouters, Set<Hash> peersToIgnore)
          Get the routers closest to that key in response to a remote lookup Only used by ../HDLMJ Set MAY INCLUDE our own router - add to peersToIgnore if you don't want
static MessageWrapper.OneTimeSession MessageWrapper.generateSession(RouterContext ctx, Hash localDest)
          Create a single key and tag, for receiving a single encrypted message, and register it with the client's session key manager, to expire in two minutes.
 DatabaseEntry PersistentDataStore.get(Hash key)
           
 DatabaseEntry DataStore.get(Hash key)
           
 DatabaseEntry TransientDataStore.get(Hash key)
           
 DatabaseEntry PersistentDataStore.get(Hash key, boolean persist)
          Prepare for having only a partial set in memory and the rest on disk
 DatabaseEntry DataStore.get(Hash key, boolean persist)
           
 DatabaseEntry TransientDataStore.get(Hash key, boolean persist)
          for PersistentDataStore only - don't use here
 Destination NegativeLookupCache.getBadDest(Hash h)
          Get an unsupported but cached Destination
 int KademliaNetworkDatabaseFacade.getPeerTimeout(Hash peer)
          todo: does this need more tuning?
 MessageWrapper.WrappedMessage StoreState.getPendingMessage(Hash peer)
           
protected  int SearchJob.getPerPeerTimeoutMs(Hash peer)
           
static File PersistentDataStore.getRouterInfoFile(RouterContext ctx, Hash hash)
          The persistent RI file for a hash.
 boolean NegativeLookupCache.isCached(Hash h)
           
 boolean DataStore.isKnown(Hash key)
           
 boolean TransientDataStore.isKnown(Hash key)
           
(package private)  boolean KademliaNetworkDatabaseFacade.isNegativeCached(Hash key)
          Is the key in the negative lookup cache? &
 boolean KademliaNetworkDatabaseFacade.isNegativeCachedForever(Hash key)
          Is it permanently negative cached?
(package private)  boolean FloodfillNetworkDatabaseFacade.isVerifyInProgress(Hash h)
           
protected  void FloodfillNetworkDatabaseFacade.lookupBeforeDropping(Hash peer, RouterInfo info)
          Search for a newer router info, drop it from the db if the search fails, unless just started up or have bigger problems.
protected  void KademliaNetworkDatabaseFacade.lookupBeforeDropping(Hash peer, RouterInfo info)
          don't use directly - see F.N.D.F.
 void KademliaNetworkDatabaseFacade.lookupDestination(Hash key, Job onFinishedJob, long timeoutMs, Hash fromLocalDest)
          Lookup using the client's tunnels Succeeds even if LS validation and store fails due to unsupported sig type, expired, etc.
 Destination KademliaNetworkDatabaseFacade.lookupDestinationLocally(Hash key)
          Lookup locally in netDB and in badDest cache Succeeds even if LS validation fails due to unsupported sig type, expired, etc.
 void NegativeLookupCache.lookupFailed(Hash h)
           
(package private)  void KademliaNetworkDatabaseFacade.lookupFailed(Hash key)
          Increment in the negative lookup cache
 void KademliaNetworkDatabaseFacade.lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs)
          Lookup using exploratory tunnels.
 void KademliaNetworkDatabaseFacade.lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, Hash fromLocalDest)
          Lookup using the client's tunnels Use lookupDestination() if you don't need the LS or need it validated.
 LeaseSet KademliaNetworkDatabaseFacade.lookupLeaseSetLocally(Hash key)
          Use lookupDestination() if you don't need the LS or need it validated.
 DatabaseEntry KademliaNetworkDatabaseFacade.lookupLocally(Hash key)
           
(package private)  DatabaseEntry KademliaNetworkDatabaseFacade.lookupLocallyWithoutValidation(Hash key)
          Not for use without validation
 void KademliaNetworkDatabaseFacade.lookupRouterInfo(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs)
           
 RouterInfo KademliaNetworkDatabaseFacade.lookupRouterInfoLocally(Hash key)
           
(package private)  void IterativeSearchJob.newPeerToTry(Hash peer)
          A new (floodfill) peer was discovered that may have the answer.
 boolean PersistentDataStore.put(Hash key, DatabaseEntry data)
           
 boolean DataStore.put(Hash key, DatabaseEntry data)
           
 boolean TransientDataStore.put(Hash key, DatabaseEntry data)
           
 boolean PersistentDataStore.put(Hash key, DatabaseEntry data, boolean persist)
           
 boolean DataStore.put(Hash key, DatabaseEntry data, boolean persist)
           
 boolean TransientDataStore.put(Hash key, DatabaseEntry data, boolean persist)
          for PersistentDataStore only - don't use here
 DatabaseEntry PersistentDataStore.remove(Hash key)
           
 DatabaseEntry DataStore.remove(Hash key)
           
 DatabaseEntry TransientDataStore.remove(Hash key)
           
 DatabaseEntry PersistentDataStore.remove(Hash key, boolean persist)
           
 DatabaseEntry DataStore.remove(Hash key, boolean persist)
           
 DatabaseEntry TransientDataStore.remove(Hash key, boolean persist)
          for PersistentDataStore only - don't use here
 void SearchState.removePending(Hash peer)
          we didn't actually want to add this peer as part of the pending list...
(package private)  void SearchJob.replyFound(DatabaseSearchReplyMessage message, Hash peer)
          found a reply
 long SearchState.replyFound(Hash peer)
          how long did it take to get the reply, or -1 if we dont know
 void StoreState.replyTimeout(Hash peer)
          public long confirmedExploratory(Hash peer) { long rv = -1; synchronized (_pendingPeers) { _pendingPeers.remove(peer); Long when = _pendingPeerTimes.remove(peer); if (when != null) rv = _context.clock().now() - when.longValue(); } synchronized (_successfulExploratoryPeers) { _successfulExploratoryPeers.add(peer); } return rv; }
 void SearchState.replyTimeout(Hash peer)
           
(package private)  SearchJob FloodfillNetworkDatabaseFacade.search(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, boolean isLease)
          Lookup using exploratory tunnels.
(package private)  SearchJob KademliaNetworkDatabaseFacade.search(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, boolean isLease)
          Begin a kademlia style search for the key specified, which can take up to timeoutMs and will fire the appropriate jobs on success or timeout (or if the kademlia search completes without any match) Unused - called only by FNDF.searchFull() from FloodSearchJob which is overridden - don't use this.
(package private)  SearchJob FloodfillNetworkDatabaseFacade.search(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, boolean isLease, Hash fromLocalDest)
          Lookup using the client's tunnels.
(package private)  SearchJob KademliaNetworkDatabaseFacade.search(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, boolean isLease, Hash fromLocalDest)
          Unused - see FNDF
(package private)  void KademliaNetworkDatabaseFacade.searchComplete(Hash key)
          The search for the given key is no longer active
(package private)  List<Hash> FloodfillPeerSelector.selectFloodfillParticipants(Hash key, int maxNumRouters, KBucketSet<Hash> kbuckets)
          Sort the floodfills.
(package private)  List<Hash> FloodfillPeerSelector.selectFloodfillParticipants(Hash key, int howMany, Set<Hash> toIgnore, KBucketSet<Hash> kbuckets)
          See above for description List will not include our own hash
(package private)  List<Hash> PeerSelector.selectMostReliablePeers(Hash key, int numClosest, Set<Hash> alreadyChecked, KBucketSet<Hash> kbuckets)
          UNUSED - See FloodfillPeerSelector override Search through the kbucket set to find the most reliable peers close to the given key, skipping all of the ones already checked List will not include our own hash.
(package private)  List<Hash> FloodfillPeerSelector.selectMostReliablePeers(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Pick out peers with the floodfill capacity set, returning them first, but then after they're complete, sort via kademlia.
(package private)  List<Hash> PeerSelector.selectNearest(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          UNUSED - See FloodfillPeerSelector override Generic KBucket filtering to find the hashes close to a key, regardless of other considerations.
(package private)  List<Hash> FloodfillPeerSelector.selectNearest(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Floodfill peers only.
(package private)  List<Hash> PeerSelector.selectNearestExplicit(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Ignore KBucket ordering and do the XOR explicitly per key.
(package private)  List<Hash> PeerSelector.selectNearestExplicitThin(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          UNUSED - See FloodfillPeerSelector override Ignore KBucket ordering and do the XOR explicitly per key.
(package private)  List<Hash> FloodfillPeerSelector.selectNearestExplicitThin(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Pick out peers with the floodfill capacity set, returning them first, but then after they're complete, sort via kademlia.
(package private)  List<Hash> FloodfillPeerSelector.selectNearestExplicitThin(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets, boolean preferConnected)
          Pick out peers with the floodfill capacity set, returning them first, but then after they're complete, sort via kademlia.
protected  void HandleFloodfillDatabaseLookupMessageJob.sendClosest(Hash key, Set<Hash> routerInfoSet, Hash toPeer, TunnelId replyTunnel)
          We extend this here to send our routerInfo back as well, if we are not floodfill.
 void FloodfillNetworkDatabaseFacade.sendStore(Hash key, DatabaseEntry ds, Job onSuccess, Job onFailure, long sendTimeout, Set<Hash> toIgnore)
           
 void KademliaNetworkDatabaseFacade.sendStore(Hash key, DatabaseEntry ds, Job onSuccess, Job onFailure, long sendTimeout, Set<Hash> toIgnore)
          unused (overridden in FNDF)
(package private)  boolean FloodThrottler.shouldThrottle(Hash h)
          increments before checking
(package private)  boolean LookupThrottler.shouldThrottle(Hash key, TunnelId id)
          increments before checking
(package private)  boolean FloodfillNetworkDatabaseFacade.shouldThrottleFlood(Hash key)
          Increments and tests.
(package private)  boolean FloodfillNetworkDatabaseFacade.shouldThrottleLookup(Hash from, TunnelId id)
          Increments and tests.
(package private)  void KademliaNetworkDatabaseFacade.stopPublishing(Hash target)
           
 LeaseSet KademliaNetworkDatabaseFacade.store(Hash key, LeaseSet leaseSet)
          Store the leaseSet.
 RouterInfo KademliaNetworkDatabaseFacade.store(Hash key, RouterInfo routerInfo)
          Store the routerInfo.
(package private)  RouterInfo KademliaNetworkDatabaseFacade.store(Hash key, RouterInfo routerInfo, boolean persist)
          Store the routerInfo.
(package private)  long IterativeSearchJob.timeSent(Hash peer)
          When did we send the query to the peer?
(package private)  void FloodfillNetworkDatabaseFacade.verifyFinished(Hash h)
           
(package private)  void FloodfillNetworkDatabaseFacade.verifyStarted(Hash h)
           
(package private)  boolean SearchJob.wasAttempted(Hash peer)
           
 boolean SearchState.wasAttempted(Hash peer)
           
 boolean IterativeSearchJob.wasQueried(Hash peer)
          Did we send a request to this peer?
(package private) static MessageWrapper.WrappedMessage MessageWrapper.wrap(RouterContext ctx, I2NPMessage m, Hash from, RouterInfo to)
          Garlic wrap a message from a client or this router, destined for a router, to hide the contents from the OBEP.
 

Method parameters in net.i2p.router.networkdb.kademlia with type arguments of type Hash
 void StoreState.addPending(Collection<Hash> pending)
           
 void SearchState.addPending(Collection<Hash> pending)
           
 Set<Hash> KademliaNetworkDatabaseFacade.findNearestRouters(Hash key, int maxNumRouters, Set<Hash> peersToIgnore)
          Get the routers closest to that key in response to a remote lookup Only used by ../HDLMJ Set MAY INCLUDE our own router - add to peersToIgnore if you don't want
 void KademliaNetworkDatabaseFacade.queueForExploration(Collection<Hash> keys)
           
 void KademliaNetworkDatabaseFacade.removeFromExploreKeys(Collection<Hash> toRemove)
           
(package private)  List<Hash> FloodfillPeerSelector.selectFloodfillParticipants(Hash key, int maxNumRouters, KBucketSet<Hash> kbuckets)
          Sort the floodfills.
(package private)  List<Hash> FloodfillPeerSelector.selectFloodfillParticipants(Hash key, int howMany, Set<Hash> toIgnore, KBucketSet<Hash> kbuckets)
          See above for description List will not include our own hash
(package private)  List<Hash> FloodfillPeerSelector.selectFloodfillParticipants(Hash key, int howMany, Set<Hash> toIgnore, KBucketSet<Hash> kbuckets)
          See above for description List will not include our own hash
(package private)  List<Hash> FloodfillPeerSelector.selectFloodfillParticipants(KBucketSet<Hash> kbuckets)
           
(package private)  List<Hash> PeerSelector.selectMostReliablePeers(Hash key, int numClosest, Set<Hash> alreadyChecked, KBucketSet<Hash> kbuckets)
          UNUSED - See FloodfillPeerSelector override Search through the kbucket set to find the most reliable peers close to the given key, skipping all of the ones already checked List will not include our own hash.
(package private)  List<Hash> PeerSelector.selectMostReliablePeers(Hash key, int numClosest, Set<Hash> alreadyChecked, KBucketSet<Hash> kbuckets)
          UNUSED - See FloodfillPeerSelector override Search through the kbucket set to find the most reliable peers close to the given key, skipping all of the ones already checked List will not include our own hash.
(package private)  List<Hash> FloodfillPeerSelector.selectMostReliablePeers(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Pick out peers with the floodfill capacity set, returning them first, but then after they're complete, sort via kademlia.
(package private)  List<Hash> FloodfillPeerSelector.selectMostReliablePeers(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Pick out peers with the floodfill capacity set, returning them first, but then after they're complete, sort via kademlia.
(package private)  List<Hash> PeerSelector.selectNearest(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          UNUSED - See FloodfillPeerSelector override Generic KBucket filtering to find the hashes close to a key, regardless of other considerations.
(package private)  List<Hash> PeerSelector.selectNearest(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          UNUSED - See FloodfillPeerSelector override Generic KBucket filtering to find the hashes close to a key, regardless of other considerations.
(package private)  List<Hash> FloodfillPeerSelector.selectNearest(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Floodfill peers only.
(package private)  List<Hash> FloodfillPeerSelector.selectNearest(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Floodfill peers only.
(package private)  List<Hash> PeerSelector.selectNearestExplicit(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Ignore KBucket ordering and do the XOR explicitly per key.
(package private)  List<Hash> PeerSelector.selectNearestExplicit(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Ignore KBucket ordering and do the XOR explicitly per key.
(package private)  List<Hash> PeerSelector.selectNearestExplicitThin(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          UNUSED - See FloodfillPeerSelector override Ignore KBucket ordering and do the XOR explicitly per key.
(package private)  List<Hash> PeerSelector.selectNearestExplicitThin(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          UNUSED - See FloodfillPeerSelector override Ignore KBucket ordering and do the XOR explicitly per key.
(package private)  List<Hash> FloodfillPeerSelector.selectNearestExplicitThin(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Pick out peers with the floodfill capacity set, returning them first, but then after they're complete, sort via kademlia.
(package private)  List<Hash> FloodfillPeerSelector.selectNearestExplicitThin(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets)
          Pick out peers with the floodfill capacity set, returning them first, but then after they're complete, sort via kademlia.
(package private)  List<Hash> FloodfillPeerSelector.selectNearestExplicitThin(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets, boolean preferConnected)
          Pick out peers with the floodfill capacity set, returning them first, but then after they're complete, sort via kademlia.
(package private)  List<Hash> FloodfillPeerSelector.selectNearestExplicitThin(Hash key, int maxNumRouters, Set<Hash> peersToIgnore, KBucketSet<Hash> kbuckets, boolean preferConnected)
          Pick out peers with the floodfill capacity set, returning them first, but then after they're complete, sort via kademlia.
protected  void HandleFloodfillDatabaseLookupMessageJob.sendClosest(Hash key, Set<Hash> routerInfoSet, Hash toPeer, TunnelId replyTunnel)
          We extend this here to send our routerInfo back as well, if we are not floodfill.
 void FloodfillNetworkDatabaseFacade.sendStore(Hash key, DatabaseEntry ds, Job onSuccess, Job onFailure, long sendTimeout, Set<Hash> toIgnore)
           
 void KademliaNetworkDatabaseFacade.sendStore(Hash key, DatabaseEntry ds, Job onSuccess, Job onFailure, long sendTimeout, Set<Hash> toIgnore)
          unused (overridden in FNDF)
 

Constructors in net.i2p.router.networkdb.kademlia with parameters of type Hash
ExploreJob(RouterContext context, KademliaNetworkDatabaseFacade facade, Hash key)
          Create a new search for the routingKey specified
FloodfillStoreJob(RouterContext context, FloodfillNetworkDatabaseFacade facade, Hash key, DatabaseEntry data, Job onSuccess, Job onFailure, long timeoutMs)
          Send a data structure to the floodfills
FloodfillStoreJob(RouterContext context, FloodfillNetworkDatabaseFacade facade, Hash key, DatabaseEntry data, Job onSuccess, Job onFailure, long timeoutMs, Set<Hash> toSkip)
           
FloodfillVerifyStoreJob(RouterContext ctx, Hash key, long published, boolean isRouterInfo, Hash sentTo, FloodfillNetworkDatabaseFacade facade)
          Delay a few seconds, then start the verify
FloodOnlySearchJob(RouterContext ctx, FloodfillNetworkDatabaseFacade facade, Hash key, Job onFind, Job onFailed, int timeoutMs, boolean isLease)
           
FloodSearchJob(RouterContext ctx, FloodfillNetworkDatabaseFacade facade, Hash key, Job onFind, Job onFailed, int timeoutMs, boolean isLease)
           
HandleFloodfillDatabaseLookupMessageJob(RouterContext ctx, DatabaseLookupMessage receivedMessage, RouterIdentity from, Hash fromHash)
           
HandleFloodfillDatabaseStoreMessageJob(RouterContext ctx, DatabaseStoreMessage receivedMessage, RouterIdentity from, Hash fromHash, FloodfillNetworkDatabaseFacade facade)
           
IterativeFollowupJob(RouterContext ctx, Hash key, Hash to, IterativeSearchJob search)
           
IterativeSearchJob(RouterContext ctx, FloodfillNetworkDatabaseFacade facade, Hash key, Job onFind, Job onFailed, int timeoutMs, boolean isLease)
          Lookup using exploratory tunnels
IterativeSearchJob(RouterContext ctx, FloodfillNetworkDatabaseFacade facade, Hash key, Job onFind, Job onFailed, int timeoutMs, boolean isLease, Hash fromLocalDest)
          Lookup using the client's tunnels.
IterativeTimeoutJob(RouterContext ctx, Hash peer, IterativeSearchJob job)
           
LocalHash(Hash h)
           
RepublishLeaseSetJob(RouterContext ctx, KademliaNetworkDatabaseFacade facade, Hash destHash)
           
SearchJob(RouterContext context, KademliaNetworkDatabaseFacade facade, Hash key, Job onSuccess, Job onFailure, long timeoutMs, boolean keepStats, boolean isLease)
          Create a new search for the routingKey specified
SearchReplyJob(RouterContext enclosingContext, SearchJob job, DatabaseSearchReplyMessage message, Hash peer, long duration)
           
SearchState(RouterContext context, Hash key)
           
SingleSearchJob(RouterContext ctx, Hash key, Hash to)
           
StoreJob(RouterContext context, KademliaNetworkDatabaseFacade facade, Hash key, DatabaseEntry data, Job onSuccess, Job onFailure, long timeoutMs)
          Send a data structure to the floodfills
StoreJob(RouterContext context, KademliaNetworkDatabaseFacade facade, Hash key, DatabaseEntry data, Job onSuccess, Job onFailure, long timeoutMs, Set<Hash> toSkip)
           
StoreState(RouterContext ctx, Hash key, DatabaseEntry data)
           
StoreState(RouterContext ctx, Hash key, DatabaseEntry data, Set<Hash> toSkip)
           
 

Constructor parameters in net.i2p.router.networkdb.kademlia with type arguments of type Hash
FloodfillStoreJob(RouterContext context, FloodfillNetworkDatabaseFacade facade, Hash key, DatabaseEntry data, Job onSuccess, Job onFailure, long timeoutMs, Set<Hash> toSkip)
           
StoreJob(RouterContext context, KademliaNetworkDatabaseFacade facade, Hash key, DatabaseEntry data, Job onSuccess, Job onFailure, long timeoutMs, Set<Hash> toSkip)
           
StoreState(RouterContext ctx, Hash key, DatabaseEntry data, Set<Hash> toSkip)
           
 

Uses of Hash in net.i2p.router.peermanager
 

Methods in net.i2p.router.peermanager that return Hash
 Hash PeerProfile.getPeer()
          what peer is being profiled, non-null
 Hash ProfileOrganizer.getUs()
           
 Hash PeerManagerFacadeImpl.selectRandomByCapability(char capability)
          Deprecated. unused
 

Methods in net.i2p.router.peermanager that return types with arguments of type Hash
 Set<Hash> PeerManagerFacadeImpl.getPeersByCapability(char capability)
           
 Set<Hash> PeerManager.getPeersByCapability(char capability)
           
 Set<Hash> ProfileOrganizer.selectAllPeers()
          Find the hashes for all peers we are actively profiling
(package private)  Set<Hash> PeerManager.selectPeers()
           
 List<Hash> PeerManagerFacadeImpl.selectPeers(PeerSelectionCriteria criteria)
           
(package private)  List<Hash> PeerManager.selectPeers(PeerSelectionCriteria criteria)
          Find some peers that meet the criteria and we have the netDb info for locally.
 List<Hash> ProfileOrganizer.selectPeersLocallyUnreachable()
          Get the peers the transport layer thinks are unreachable, and add in the peers with the SSU peer testing bug, and peers requiring introducers.
 List<Hash> ProfileOrganizer.selectPeersRecentlyRejecting()
          Get the peers that have recently rejected us for bandwidth recent == last 20s
 

Methods in net.i2p.router.peermanager with parameters of type Hash
 void ProfileManagerImpl.commErrorOccurred(Hash peer)
          Note that there was some sort of communication error talking with the peer
 void ProfileManagerImpl.dbLookupFailed(Hash peer)
          Note that the peer was unable to reply to a db lookup - either with data or with a lookupReply redirecting the user elsewhere This will force creation of DB stats
 void ProfileManagerImpl.dbLookupReceived(Hash peer)
          Note that the local router received a db lookup from the given peer
 void ProfileManagerImpl.dbLookupReply(Hash peer, int newPeers, int oldPeers, int invalid, int duplicate, long responseTimeMs)
          Note that the peer replied to a db lookup with a redirect to other routers, where the list of redirected users included newPeers routers that the local router didn't know about, oldPeers routers that the local router already knew about, the given invalid routers that were invalid in some way, and the duplicate number of routers that we explicitly asked them not to send us, but they did anyway
 void ProfileManagerImpl.dbLookupSuccessful(Hash peer, long responseTimeMs)
          Note that the peer was able to return the valid data for a db lookup This will force creation of DB stats
 void ProfileManagerImpl.dbStoreFailed(Hash peer)
          Note that we were unable to confirm a successful send of db data to the peer, at least not within our timeout period This will force creation of DB stats
 void ProfileManagerImpl.dbStoreReceived(Hash peer, boolean wasNewKey)
          Note that the local router received an unprompted db store from the given peer
 void ProfileManagerImpl.dbStoreSent(Hash peer, long responseTimeMs)
          Note that we've confirmed a successful send of db data to the peer (though we haven't necessarily requested it again from them, so they /might/ be lying) This is not really interesting, since they could be lying, so we do not increment any DB stats at all.
 void ProfileManagerImpl.dbStoreSuccessful(Hash peer)
          Note that we've verified a successful send of db data to the floodfill peer by querying another floodfill.
 boolean ProfileOrganizer.exportProfile(Hash profile, OutputStream out)
           
 PeerProfile ProfileOrganizer.getProfile(Hash peer)
          Retrieve the profile for the given peer, if one exists (else null).
 PeerProfile ProfileOrganizer.getProfileNonblocking(Hash peer)
          Retrieve the profile for the given peer, if one exists (else null).
 void ProfileManagerImpl.heardAbout(Hash peer)
          Note that the local router received a reference to the given peer, either through an explicit dbStore or in a dbLookupReply
 void ProfileManagerImpl.heardAbout(Hash peer, long when)
          Note that the local router received a reference to the given peer at a certain time.
 boolean ProfileOrganizer.isFailing(Hash peer)
          Deprecated for now, always false
 boolean ProfileOrganizer.isFast(Hash peer)
           
 boolean ProfileOrganizer.isHighCapacity(Hash peer)
           
 boolean ProfileOrganizer.isSelectable(Hash peer)
           
 boolean ProfileOrganizer.isWellIntegrated(Hash peer)
           
 void ProfileManagerImpl.messageFailed(Hash peer)
          Note that the router failed to send a message to the peer over any transport.
 void ProfileManagerImpl.messageFailed(Hash peer, String transport)
          Note that the router failed to send a message to the peer over the transport specified.
 void ProfileManagerImpl.messageReceived(Hash peer, String style, long msToReceive, int bytesRead)
          Note that the router received a message from the given peer on the specified transport.
 void ProfileManagerImpl.messageSent(Hash peer, String transport, long msToSend, long bytesSent)
          Note that it took msToSend to send a message of size bytesSent to the peer over the transport.
 boolean ProfileOrganizer.peerSendsBadReplies(Hash peer)
          Does the given peer send us bad replies - either invalid store messages (expired, corrupt, etc) or unreachable replies (pointing towards routers that don't exist).
 void PeerManagerFacadeImpl.removeCapabilities(Hash peer)
           
 void PeerManager.removeCapabilities(Hash peer)
           
 void ProfileOrganizer.selectFastPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, Hash randomKey, ProfileOrganizer.Slice subTierMode)
          Return a set of Hashes for peers that are both fast and reliable.
 void PeerManagerFacadeImpl.setCapabilities(Hash peer, String caps)
           
 void PeerManager.setCapabilities(Hash peer, String caps)
           
 void ProfileOrganizer.setUs(Hash us)
           
 void ProfilePersistenceHelper.setUs(Hash routerIdentHash)
           
(package private)  void PeerManager.storeProfile(Hash peer)
           
 void ProfileManagerImpl.tunnelDataPushed(Hash peer, long rtt, int size)
           
 void ProfileManagerImpl.tunnelDataPushed1m(Hash peer, int size)
           
 void ProfileManagerImpl.tunnelFailed(Hash peer, int pct)
          Note that the peer participated in a tunnel that failed.
 void ProfileManagerImpl.tunnelJoined(Hash peer, long responseTimeMs)
          Note that the router agreed to participate in a tunnel
 void ProfileManagerImpl.tunnelLifetimePushed(Hash peer, long lifetime, long size)
           
 void ProfileManagerImpl.tunnelRejected(Hash peer, long responseTimeMs, int severity)
          Note that a router explicitly rejected joining a tunnel.
 void ProfileManagerImpl.tunnelTestSucceeded(Hash peer, long responseTimeMs)
          Note that a tunnel that the router is participating in was successfully tested with the given round trip latency
 void ProfileManagerImpl.tunnelTimedOut(Hash peer)
          Note that a router did not respond to a tunnel join.
 

Method parameters in net.i2p.router.peermanager with type arguments of type Hash
 void ProfileOrganizer.selectActiveNotFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches)
          Return a set of Hashes for peers that are both not failing and we're actively talking with.
 void ProfileOrganizer.selectActiveNotFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches)
          Return a set of Hashes for peers that are both not failing and we're actively talking with.
 void ProfileOrganizer.selectAllNotFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, boolean onlyNotFailing)
          Return a set of Hashes for peers that are not failing.
 void ProfileOrganizer.selectAllNotFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, boolean onlyNotFailing)
          Return a set of Hashes for peers that are not failing.
 void ProfileOrganizer.selectFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches)
          I'm not quite sure why you'd want this...
 void ProfileOrganizer.selectFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches)
          I'm not quite sure why you'd want this...
 void ProfileOrganizer.selectFastPeers(int howMany, Set<Hash> exclude, Set<Hash> matches)
          Return a set of Hashes for peers that are both fast and reliable.
 void ProfileOrganizer.selectFastPeers(int howMany, Set<Hash> exclude, Set<Hash> matches)
          Return a set of Hashes for peers that are both fast and reliable.
 void ProfileOrganizer.selectFastPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, Hash randomKey, ProfileOrganizer.Slice subTierMode)
          Return a set of Hashes for peers that are both fast and reliable.
 void ProfileOrganizer.selectFastPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, Hash randomKey, ProfileOrganizer.Slice subTierMode)
          Return a set of Hashes for peers that are both fast and reliable.
 void ProfileOrganizer.selectFastPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, int mask)
          Return a set of Hashes for peers that are both fast and reliable.
 void ProfileOrganizer.selectFastPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, int mask)
          Return a set of Hashes for peers that are both fast and reliable.
 void ProfileOrganizer.selectHighCapacityPeers(int howMany, Set<Hash> exclude, Set<Hash> matches)
          Return a set of Hashes for peers that have a high capacity
 void ProfileOrganizer.selectHighCapacityPeers(int howMany, Set<Hash> exclude, Set<Hash> matches)
          Return a set of Hashes for peers that have a high capacity
 void ProfileOrganizer.selectHighCapacityPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, int mask)
           
 void ProfileOrganizer.selectHighCapacityPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, int mask)
           
 void ProfileOrganizer.selectNotFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches)
          Return a set of Hashes for peers that are not failing, preferring ones that we are already talking with
 void ProfileOrganizer.selectNotFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches)
          Return a set of Hashes for peers that are not failing, preferring ones that we are already talking with
 void ProfileOrganizer.selectNotFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, boolean onlyNotFailing)
           
 void ProfileOrganizer.selectNotFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, boolean onlyNotFailing)
           
 void ProfileOrganizer.selectNotFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, boolean onlyNotFailing, int mask)
          Return a set of Hashes for peers that are not failing, preferring ones that we are already talking with
 void ProfileOrganizer.selectNotFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, boolean onlyNotFailing, int mask)
          Return a set of Hashes for peers that are not failing, preferring ones that we are already talking with
 void ProfileOrganizer.selectNotFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, int mask)
           
 void ProfileOrganizer.selectNotFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, int mask)
           
 void ProfileOrganizer.selectWellIntegratedPeers(int howMany, Set<Hash> exclude, Set<Hash> matches)
          Deprecated. unused
 void ProfileOrganizer.selectWellIntegratedPeers(int howMany, Set<Hash> exclude, Set<Hash> matches)
          Deprecated. unused
 void ProfileOrganizer.selectWellIntegratedPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, int mask)
          Deprecated. unused
 void ProfileOrganizer.selectWellIntegratedPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, int mask)
          Deprecated. unused
 

Constructors in net.i2p.router.peermanager with parameters of type Hash
PeerProfile(RouterContext context, Hash peer)
           
 

Uses of Hash in net.i2p.router.transport
 

Methods in net.i2p.router.transport with parameters of type Hash
 String CommSystemFacadeImpl.getCountry(Hash peer)
          Uses the transport IP first because that lookup is fast, then the IP from the netDb.
static byte[] TransportImpl.getIP(Hash peer)
          IP of the peer from the last connection (in or out, any transport).
 byte[] CommSystemFacadeImpl.getIP(Hash dest)
           
 byte[] TransportManager.getIP(Hash dest)
          IP of the peer from the last connection (in or out, any transport).
 boolean TransportImpl.isBacklogged(Hash dest)
           
 boolean Transport.isBacklogged(Hash peer)
           
 boolean CommSystemFacadeImpl.isBacklogged(Hash dest)
           
 boolean TransportManager.isBacklogged(Hash dest)
           
 boolean TransportImpl.isEstablished(Hash dest)
           
 boolean Transport.isEstablished(Hash peer)
           
 boolean CommSystemFacadeImpl.isEstablished(Hash dest)
           
 boolean TransportManager.isEstablished(Hash dest)
           
 boolean CommSystemFacadeImpl.isInBadCountry(Hash peer)
          Are they in a bad place
 boolean TransportImpl.isUnreachable(Hash peer)
           
 boolean Transport.isUnreachable(Hash peer)
           
 void TransportImpl.markReachable(Hash peer, boolean isInbound)
          called when we establish a peer connection (outbound or inbound)
 void TransportImpl.markUnreachable(Hash peer)
          called when we can't reach a peer
 void TransportManager.messageReceived(I2NPMessage message, RouterIdentity fromRouter, Hash fromRouterHash)
          Message received
 void TransportEventListener.messageReceived(I2NPMessage message, RouterIdentity fromRouter, Hash fromRouterHash)
          Message received
 void TransportImpl.messageReceived(I2NPMessage inMsg, RouterIdentity remoteIdent, Hash remoteIdentHash, long msToReceive, int bytesReceived)
          Message received from the I2NPMessageReader - send it to the listener
 String CommSystemFacadeImpl.renderPeerHTML(Hash peer)
          Provide a consistent "look" for displaying router IDs in the console
 void TransportImpl.setIP(Hash peer, byte[] ip)
          IP of the peer from the last connection (in or out, any transport).
 boolean TransportImpl.wasUnreachable(Hash peer)
          Was the peer UNreachable (outbound only) the last time we tried it? This is NOT reset if the peer contacts us.
 boolean Transport.wasUnreachable(Hash peer)
          Was the peer UNreachable (outbound only) the last time we tried it? This is NOT reset if the peer contacts us and it is never expired.
 boolean CommSystemFacadeImpl.wasUnreachable(Hash dest)
           
 boolean TransportManager.wasUnreachable(Hash dest)
          Was the peer UNreachable (outbound only) on any transport, based on the last time we tried it for each transport? This is NOT reset if the peer contacts us.
 

Uses of Hash in net.i2p.router.transport.ntcp
 

Methods in net.i2p.router.transport.ntcp with parameters of type Hash
 boolean NTCPTransport.isBacklogged(Hash dest)
           
 boolean NTCPTransport.isEstablished(Hash dest)
           
 

Uses of Hash in net.i2p.router.transport.udp
 

Methods in net.i2p.router.transport.udp that return Hash
 Hash InboundMessageState.getFrom()
           
 Hash RemoteHostId.getPeerHash()
           
 Hash PeerState.getRemotePeer()
          The peer are we talking to.
 

Methods in net.i2p.router.transport.udp with parameters of type Hash
 void DummyThrottle.choke(Hash peer)
           
 void TimedWeightedPriorityMessageQueue.choke(Hash peer)
           
 void OutboundMessageFragments.ActiveThrottle.choke(Hash peer)
           
(package private)  void UDPTransport.dropPeer(Hash peer, boolean shouldBanlist, String why)
          This does not send a session destroy, caller must do that if desired.
(package private)  void UDPTransport.externalAddressReceived(Hash from, byte[] ourIP, int ourPort)
          Someone we tried to contact gave us what they think our IP address is.
(package private)  PeerState UDPTransport.getPeerState(Hash remotePeer)
          get the state for the peer with the given ident, or null if no state exists
 boolean UDPTransport.isBacklogged(Hash dest)
           
 boolean DummyThrottle.isChoked(Hash peer)
           
 boolean TimedWeightedPriorityMessageQueue.isChoked(Hash peer)
           
 boolean OutboundMessageFragments.ActiveThrottle.isChoked(Hash peer)
           
 boolean UDPTransport.isEstablished(Hash dest)
           
 void UDPTransport.messageReceived(I2NPMessage inMsg, RouterIdentity remoteIdent, Hash remoteIdentHash, long msToReceive, int bytesReceived)
          infinite loop public RouterAddress getCurrentAddress() { if (needsRebuild()) rebuildExternalAddress(false); return super.getCurrentAddress(); }
 void DummyThrottle.unchoke(Hash peer)
           
 void TimedWeightedPriorityMessageQueue.unchoke(Hash peer)
           
 void OutboundMessageFragments.ActiveThrottle.unchoke(Hash peer)
           
 

Constructors in net.i2p.router.transport.udp with parameters of type Hash
InboundMessageState(RouterContext ctx, long messageId, Hash from)
           
InboundMessageState(RouterContext ctx, long messageId, Hash from, UDPPacketReader.DataReader data, int dataFragment)
          Create a new IMS and read in the data from the fragment.
PeerState(RouterContext ctx, UDPTransport transport, byte[] remoteIP, int remotePort, Hash remotePeer, boolean isInbound)
           
RemoteHostId(Hash peerHash)
          indirect
 

Uses of Hash in net.i2p.router.tunnel
 

Fields in net.i2p.router.tunnel declared as Hash
protected  Hash PendingGatewayMessage._toRouter
           
 

Methods in net.i2p.router.tunnel that return Hash
 Hash InboundEndpointProcessor.getDestination()
           
 Hash TunnelCreatorConfig.getDestination()
          If this is a client tunnel, what destination is it for?
 Hash TunnelCreatorConfig.getEndpoint()
          For convenience
 Hash TunnelCreatorConfig.getFarEnd()
          For convenience
 Hash TunnelCreatorConfig.getGateway()
          For convenience
 Hash TunnelCreatorConfig.getPeer(int hop)
          retrieve the peer at the given hop.
 Hash HopConfig.getReceiveFrom()
          what is the previous peer in the tunnel (if any)?
 Hash OutboundReceiver.getSendTo()
          The next hop
 Hash InboundGatewayReceiver.getSendTo()
          The next hop
 Hash HopConfig.getSendTo()
          what is the next peer in the tunnel (if any)?
 Hash TunnelGateway.Receiver.getSendTo()
          The next hop
 Hash FragmentedMessage.getTargetRouter()
           
 Hash PendingGatewayMessage.getToRouter()
          may be null
 

Methods in net.i2p.router.tunnel with parameters of type Hash
 void PumpedTunnelGateway.add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel)
          Add a message to be sent down the tunnel, either sending it now (perhaps coallesced with other pending messages) or after a brief pause (_flushFrequency).
 void TunnelGatewayZeroHop.add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel)
          Add a message to be sent down the tunnel (immediately forwarding it to the InboundMessageDistributor or OutboundMessageDistributor, as necessary).
 void ThrottledPumpedTunnelGateway.add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel)
          Possibly drop a message due to bandwidth before adding it to the preprocessor queue.
 void TunnelGateway.add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel)
          Add a message to be sent down the tunnel, either sending it now (perhaps coallesced with other pending messages) or after a brief pause (_flushFrequency).
static void BuildMessageGenerator.createRecord(int recordNum, int hop, TunnelBuildMessage msg, TunnelCreatorConfig cfg, Hash replyRouter, long replyTunnel, I2PAppContext ctx, PublicKey peerKey)
          Place the asymmetrically encrypted record in the specified record slot, containing the hop's configuration (as well as the reply info, if it is an outbound endpoint)
 BuildRequestRecord BuildMessageProcessor.decrypt(I2PAppContext ctx, TunnelBuildMessage msg, Hash ourHash, PrivateKey privKey)
          Decrypt the record targetting us, encrypting all of the other records with the included reply key and IV.
 void TunnelDispatcher.dispatch(TunnelDataMessage msg, Hash recvFrom)
          We are participating in a tunnel (perhaps we're even the endpoint), so take the message and do what it says.
 void OutboundTunnelEndpoint.dispatch(TunnelDataMessage msg, Hash recvFrom)
           
 void TunnelParticipant.dispatch(TunnelDataMessage msg, Hash recvFrom)
           
 void TunnelDispatcher.dispatchOutbound(I2NPMessage msg, TunnelId outboundTunnel, Hash targetPeer)
          We are the outbound tunnel gateway (we created it), so wrap up this message with instructions to be forwarded to the targetPeer when it reaches the endpoint.
 void TunnelDispatcher.dispatchOutbound(I2NPMessage msg, TunnelId outboundTunnel, TunnelId targetTunnel, Hash targetPeer)
          We are the outbound tunnel gateway (we created it), so wrap up this message with instructions to be forwarded to the targetTunnel on the targetPeer when it reaches the endpoint.
 void InboundMessageDistributor.distribute(I2NPMessage msg, Hash target)
           
 void OutboundMessageDistributor.distribute(I2NPMessage msg, Hash target)
           
 void InboundMessageDistributor.distribute(I2NPMessage msg, Hash target, TunnelId tunnel)
           
 void OutboundMessageDistributor.distribute(I2NPMessage msg, Hash target, TunnelId tunnel)
           
 boolean HopProcessor.process(byte[] orig, int offset, int length, Hash prev)
          Process the data for the current hop, overwriting the original data with what should be sent to the next peer.
 boolean FragmentedMessage.receive(byte[] payload, int offset, int length, boolean isLast, Hash toRouter, TunnelId toTunnel)
          Receive the first fragment (#0) and related metadata.
 void FragmentHandler.DefragmentedReceiver.receiveComplete(I2NPMessage msg, Hash toRouter, TunnelId toTunnel)
          Receive a fully formed I2NPMessage out of the tunnel
 boolean InboundEndpointProcessor.retrievePreprocessedData(byte[] orig, int offset, int length, Hash prev)
          Undo all of the encryption done by the peers in the tunnel, recovering the preprocessed data sent by the gateway.
 void TunnelCreatorConfig.setPeer(int hop, Hash peer)
           
 void HopConfig.setReceiveFrom(Hash from)
           
 void HopConfig.setSendTo(Hash to)
           
 

Constructors in net.i2p.router.tunnel with parameters of type Hash
InboundMessageDistributor(RouterContext ctx, Hash client)
           
OutboundGatewayMessage(I2NPMessage message, Hash toRouter, TunnelId toTunnel)
           
PendingGatewayMessage(I2NPMessage message, Hash toRouter, TunnelId toTunnel)
           
TunnelCreatorConfig(RouterContext ctx, int length, boolean isInbound, Hash destination)
           
 

Uses of Hash in net.i2p.router.tunnel.pool
 

Methods in net.i2p.router.tunnel.pool that return types with arguments of type Hash
protected  Set<Hash> TunnelPeerSelector.getClosestHopExclude(boolean isInbound)
          Pick peers that we want to avoid for the first OB hop or last IB hop.
 Set<Hash> TunnelPeerSelector.getExclude(boolean isInbound, boolean isExploratory)
          Pick peers that we want to avoid
 Map<Hash,TunnelPool> TunnelPoolManager.getInboundClientPools()
          for TunnelRenderer in router console
 Map<Hash,TunnelPool> TunnelPoolManager.getOutboundClientPools()
          for TunnelRenderer in router console
protected  List<Hash> TunnelPeerSelector.selectExplicit(TunnelPoolSettings settings, int length)
          For debugging, also possibly for restricted routes? Needs analysis and testing
 List<Hash> ExploratoryPeerSelector.selectPeers(TunnelPoolSettings settings)
           
 List<Hash> ClientPeerSelector.selectPeers(TunnelPoolSettings settings)
           
abstract  List<Hash> TunnelPeerSelector.selectPeers(TunnelPoolSettings settings)
          Which peers should go into the next tunnel for the given settings?
 Set<Hash> TunnelPoolManager.selectPeersInTooManyTunnels()
          For reliability reasons, don't allow a peer in more than x% of client and exploratory tunnels.
 

Methods in net.i2p.router.tunnel.pool with parameters of type Hash
 void TunnelPoolManager.fail(Hash peer)
          Fail all outbound tunnels with this peer as first hop, and all inbound tunnels with this peer as the last hop, baecause we can't contact it any more.
 TunnelPoolSettings TunnelPoolManager.getInboundSettings(Hash client)
           
 int TunnelPoolManager.getOutboundClientTunnelCount(Hash destination)
          Use to verify a tunnel pool is alive
 TunnelPoolSettings TunnelPoolManager.getOutboundSettings(Hash client)
           
 boolean TunnelPoolManager.isValidTunnel(Hash client, TunnelInfo tunnel)
           
protected  void TunnelPeerSelector.orderPeers(List<Hash> rv, Hash hash)
          see HashComparator
 void TunnelPoolManager.removeTunnels(Hash destination)
          This will be called twice, once by the inbound and once by the outbound pool.
 TunnelInfo TunnelPoolManager.selectInboundExploratoryTunnel(Hash closestTo)
          Pick the inbound exploratory tunnel with the gateway closest to the given hash.
 TunnelInfo TunnelPoolManager.selectInboundTunnel(Hash destination)
          Pick a random inbound tunnel from the given destination's pool.
 TunnelInfo TunnelPoolManager.selectInboundTunnel(Hash destination, Hash closestTo)
          Pick the inbound tunnel with the gateway closest to the given hash from the given destination's pool.
 TunnelInfo TunnelPoolManager.selectOutboundExploratoryTunnel(Hash closestTo)
          Pick the outbound exploratory tunnel with the endpoint closest to the given hash.
 TunnelInfo TunnelPoolManager.selectOutboundTunnel(Hash destination)
          Pick a random outbound tunnel from the given destination's pool.
 TunnelInfo TunnelPoolManager.selectOutboundTunnel(Hash destination, Hash closestTo)
          Pick the outbound tunnel with the endpoint closest to the given hash from the given destination's pool.
(package private)  TunnelInfo TunnelPool.selectTunnel(Hash closestTo)
          Return the tunnel from the pool that is XOR-closet to the target.
(package private)  TunnelInfo AliasedTunnelPool.selectTunnel(Hash closestTo)
           
 void TunnelPoolManager.setInboundSettings(Hash client, TunnelPoolSettings settings)
           
 void TunnelPoolManager.setOutboundSettings(Hash client, TunnelPoolSettings settings)
           
(package private)  boolean RequestThrottler.shouldThrottle(Hash h)
          increments before checking
(package private)  boolean ParticipatingThrottler.shouldThrottle(Hash h)
          increments before checking
(package private)  void TunnelPool.tunnelFailed(TunnelInfo cfg, Hash blamePeer)
          Remove the tunnel and blame only one peer.
(package private)  void AliasedTunnelPool.tunnelFailed(TunnelInfo cfg, Hash blamePeer)
           
 

Method parameters in net.i2p.router.tunnel.pool with type arguments of type Hash
protected  void TunnelPeerSelector.orderPeers(List<Hash> rv, Hash hash)
          see HashComparator
 

Constructors in net.i2p.router.tunnel.pool with parameters of type Hash
PooledTunnelCreatorConfig(RouterContext ctx, int length, boolean isInbound, Hash destination)
           
 

Uses of Hash in net.i2p.router.util
 

Methods in net.i2p.router.util with parameters of type Hash
static BigInteger HashDistance.getDistance(Hash targetKey, Hash routerInQuestion)
           
 

Uses of Hash in net.i2p.util
 

Methods in net.i2p.util that return Hash
static Hash ConvertToHash.getHash(String peer)
          Convert any kind of destination String to a hash
 

Uses of Hash in org.klomp.snark.dht
 

Subclasses of Hash in org.klomp.snark.dht
(package private)  class Peer
          A single peer for a single torrent.
 

Methods in org.klomp.snark.dht that return Hash
 Hash NodeInfo.calculateHash()
           
 Hash NodeInfo.getHash()
           
 

Methods in org.klomp.snark.dht that return types with arguments of type Hash
(package private)  List<Hash> DHTTracker.getPeers(InfoHash ih, int max, boolean noSeeds)
          Caller's responsibility to remove himself from the list
 Collection<Hash> DHT.getPeersAndAnnounce(byte[] ih, int max, long maxWait, int annMax, long annMaxWait, boolean isSeed, boolean noSeeds)
          Get peers for a torrent, and announce to the closest annMax nodes we find.
 Collection<Hash> KRPC.getPeersAndAnnounce(byte[] ih, int max, long maxWait, int annMax, long annMaxWait, boolean isSeed, boolean noSeeds)
          Get peers for a torrent, and announce to the closest annMax nodes we find.
 

Methods in org.klomp.snark.dht with parameters of type Hash
(package private)  void DHTTracker.announce(InfoHash ih, Hash hash, boolean isSeed)
           
static NID NodeInfo.generateNID(Hash h, int p, RandomSource random)
          Generate a secure NID that matches the Hash and port.
(package private)  void DHTTracker.unannounce(InfoHash ih, Hash hash)
           
 

Constructors in org.klomp.snark.dht with parameters of type Hash
NodeInfo(NID nID, Hash hash, int port)
          No Destination yet available