Package net.i2p.router.message
Class GarlicMessageBuilder
- java.lang.Object
-
- net.i2p.router.message.GarlicMessageBuilder
-
public class GarlicMessageBuilder extends Object
Build garlic messages based on a GarlicConfig
-
-
Constructor Summary
Constructors Constructor Description GarlicMessageBuilder()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static GarlicMessage
buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, int lowTagsThreshold, SessionKeyManager skm)
called by netdb and abovestatic GarlicMessage
buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, SessionKeyManager skm)
called by OCMJHstatic GarlicMessage
buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, SessionKeyManager skm)
Now unused, since we have to generate a reply token first in OCMOSJ but we don't know if tags are required yet.static GarlicMessage
buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, PublicKey target, SessionKey encryptKey, SessionTag encryptTag)
used by TestJob and directly above and for encrypting DatabaseLookupMessages(package private) static boolean
needsTags(RouterContext ctx, PublicKey key, Hash local, int minTagOverride)
-
-
-
Method Detail
-
needsTags
static boolean needsTags(RouterContext ctx, PublicKey key, Hash local, int minTagOverride)
- Parameters:
local
- non-null; do not use this method for the router's SessionKeyManagerminTagOverride
- 0 for no override, > 0 to override SKM's settings
-
buildMessage
public static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, SessionKeyManager skm)
Now unused, since we have to generate a reply token first in OCMOSJ but we don't know if tags are required yet.- Parameters:
ctx
- scopeconfig
- how/what to wrapwrappedKey
- output parameter that will be filled with the sessionKey usedwrappedTags
- Output parameter that will be filled with the sessionTags used. If non-empty on return you must call skm.tagsDelivered() when sent and then call skm.tagsAcked() or skm.failTags() later.skm
- non-null- Throws:
IllegalArgumentException
- on error
-
buildMessage
public static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, SessionKeyManager skm)
called by OCMJH- Parameters:
ctx
- scopeconfig
- how/what to wrapwrappedKey
- output parameter that will be filled with the sessionKey usedwrappedTags
- Output parameter that will be filled with the sessionTags used. If non-empty on return you must call skm.tagsDelivered() when sent and then call skm.tagsAcked() or skm.failTags() later.numTagsToDeliver
- Only if the estimated available tags are below the threshold. Set to zero to disable tag delivery. You must set to zero if you are not equipped to confirm delivery and call skm.tagsAcked() or skm.failTags() later.skm
- non-null- Throws:
IllegalArgumentException
- on error
-
buildMessage
public static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, int lowTagsThreshold, SessionKeyManager skm)
called by netdb and above- Parameters:
ctx
- scopeconfig
- how/what to wrapwrappedKey
- output parameter that will be filled with the sessionKey usedwrappedTags
- Output parameter that will be filled with the sessionTags used. If non-empty on return you must call skm.tagsDelivered() when sent and then call skm.tagsAcked() or skm.failTags() later.numTagsToDeliver
- only if the estimated available tags are below the threshold. Set to zero to disable tag delivery. You must set to zero if you are not equipped to confirm delivery and call skm.tagsAcked() or failTags() later. If this is always 0, it forces ElGamal every time.lowTagsThreshold
- the thresholdskm
- non-null- Throws:
IllegalArgumentException
- on error
-
buildMessage
public static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, PublicKey target, SessionKey encryptKey, SessionTag encryptTag)
used by TestJob and directly above and for encrypting DatabaseLookupMessages- Parameters:
ctx
- scopeconfig
- how/what to wrapwrappedKey
- unused - why??wrappedTags
- New tags to be sent along with the message. 200 max enforced at receiver; null OKtarget
- 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, non-nullencryptTag
- sessionTag used to encrypt the current message, null to force ElG- Throws:
IllegalArgumentException
- on error
-
-