public class GarlicMessageBuilder extends Object
Constructor and Description |
---|
GarlicMessageBuilder() |
Modifier and Type | Method and Description |
---|---|
static GarlicMessage |
buildECIESMessage(RouterContext ctx,
GarlicConfig config)
Encrypt from an anonymous source.
|
(package private) static GarlicMessage |
buildECIESMessage(RouterContext ctx,
GarlicConfig config,
Hash from,
Destination to,
SessionKeyManager skm,
ReplyCallback callback)
ECIES_X25519 only.
|
static GarlicMessage |
buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey encryptKey,
RatchetSessionTag encryptTag)
Ratchet only.
|
static GarlicMessage |
buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
int numTagsToDeliver,
int lowTagsThreshold,
SessionKeyManager skm)
ELGAMAL_2048 only.
|
static GarlicMessage |
buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
int numTagsToDeliver,
SessionKeyManager skm)
ELGAMAL_2048 only.
|
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.
|
static GarlicMessage |
buildMessage(RouterContext ctx,
GarlicConfig config,
Set<SessionTag> wrappedTags,
PublicKey target,
SessionKey encryptKey,
SessionTag encryptTag)
ELGAMAL_2048 only.
|
(package private) static boolean |
needsTags(RouterContext ctx,
PublicKey key,
Hash local,
int minTagOverride)
ELGAMAL_2048 only.
|
static boolean needsTags(RouterContext ctx, PublicKey key, Hash local, int minTagOverride)
local
- non-null; do not use this method for the router's SessionKeyManagerminTagOverride
- 0 for no override, > 0 to override SKM's settingspublic static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, SessionKeyManager skm)
ctx
- scopeconfig
- how/what to wrapwrappedKey
- non-null with null data,
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-nullIllegalArgumentException
- on errorpublic static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, SessionKeyManager skm)
ctx
- scopeconfig
- how/what to wrapwrappedKey
- non-null with null data,
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-nullIllegalArgumentException
- on errorpublic static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, int lowTagsThreshold, SessionKeyManager skm)
ctx
- scopeconfig
- how/what to wrapwrappedKey
- non-null with null data,
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-nullIllegalArgumentException
- on errorpublic static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, Set<SessionTag> wrappedTags, PublicKey target, SessionKey encryptKey, SessionTag encryptTag)
ctx
- scopeconfig
- how/what to wrapwrappedTags
- 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 ElGIllegalArgumentException
- on errorpublic static GarlicMessage buildMessage(RouterContext ctx, GarlicConfig config, SessionKey encryptKey, RatchetSessionTag encryptTag)
ctx
- scopeconfig
- how/what to wrapencryptKey
- sessionKey used to encrypt the current message, non-nullencryptTag
- sessionTag used to encrypt the current message, non-nullstatic GarlicMessage buildECIESMessage(RouterContext ctx, GarlicConfig config, Hash from, Destination to, SessionKeyManager skm, ReplyCallback callback)
ctx
- scopeconfig
- how/what to wrap, must have key set with setRecipientPublicKey()callback
- may be nullIllegalArgumentException
- on errorpublic static GarlicMessage buildECIESMessage(RouterContext ctx, GarlicConfig config)
ctx
- scopeconfig
- how/what to wrap, must have key set with setRecipientPublicKey()IllegalArgumentException
- on error