net.i2p.router.message
Class GarlicMessageBuilder

java.lang.Object
  extended by net.i2p.router.message.GarlicMessageBuilder

public class GarlicMessageBuilder
extends java.lang.Object

Build garlic messages based on a GarlicConfig


Constructor Summary
GarlicMessageBuilder()
           
 
Method Summary
static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, java.util.Set<SessionTag> wrappedTags, int numTagsToDeliver, int lowTagsThreshold, boolean forceElGamal, SessionKeyManager skm)
          called by netdb
static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, java.util.Set<SessionTag> wrappedTags, PublicKey target, SessionKey encryptKey, SessionTag encryptTag)
          used by TestJob and directly above
static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, java.util.Set<SessionTag> wrappedTags, SessionKeyManager skm)
          called by OCMJH
static int estimateAvailableTags(RouterContext ctx, PublicKey key, Hash local)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GarlicMessageBuilder

public GarlicMessageBuilder()
Method Detail

estimateAvailableTags

public static int estimateAvailableTags(RouterContext ctx,
                                        PublicKey key,
                                        Hash local)
Parameters:
local - non-null; do not use this method for the router's SessionKeyManager

buildMessage

public static GarlicMessage buildMessage(RouterContext ctx,
                                         GarlicConfig config,
                                         SessionKey wrappedKey,
                                         java.util.Set<SessionTag> wrappedTags,
                                         SessionKeyManager skm)
called by OCMJH

Parameters:
ctx - scope
config - how/what to wrap
wrappedKey - output parameter that will be filled with the sessionKey used
wrappedTags - output parameter that will be filled with the sessionTags used
skm - non-null

buildMessage

public static GarlicMessage buildMessage(RouterContext ctx,
                                         GarlicConfig config,
                                         SessionKey wrappedKey,
                                         java.util.Set<SessionTag> wrappedTags,
                                         int numTagsToDeliver,
                                         int lowTagsThreshold,
                                         boolean forceElGamal,
                                         SessionKeyManager skm)
called by netdb

Parameters:
ctx - scope
config - how/what to wrap
wrappedKey - output parameter that will be filled with the sessionKey used
wrappedTags - output parameter that will be filled with the sessionTags used
numTagsToDeliver - only if the estimated available tags are below the threshold
lowTagsThreshold - the threshold
skm - non-null

buildMessage

public static GarlicMessage buildMessage(RouterContext ctx,
                                         GarlicConfig config,
                                         SessionKey wrappedKey,
                                         java.util.Set<SessionTag> wrappedTags,
                                         PublicKey target,
                                         SessionKey encryptKey,
                                         SessionTag encryptTag)
used by TestJob and directly above

Parameters:
ctx - scope
config - how/what to wrap
wrappedKey - unused - why??
wrappedTags - output parameter that will be filled with the sessionTags used
target - public key of the location being garlic routed to (may be null if we know the encryptKey and encryptTag)
encryptKey - sessionKey used to encrypt the current message
encryptTag - sessionTag used to encrypt the current message