From d64483189bf6c0b83b562907b564bfc1efb61445 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 6 Jan 2025 10:39:55 -0500 Subject: [PATCH] OCMOSJ: Don't create unused objects for ECIES --- .../message/OutboundClientMessageJobHelper.java | 8 +++++--- .../message/OutboundClientMessageOneShotJob.java | 11 +++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/router/java/src/net/i2p/router/message/OutboundClientMessageJobHelper.java b/router/java/src/net/i2p/router/message/OutboundClientMessageJobHelper.java index ac462bcfce..0be6229041 100644 --- a/router/java/src/net/i2p/router/message/OutboundClientMessageJobHelper.java +++ b/router/java/src/net/i2p/router/message/OutboundClientMessageJobHelper.java @@ -104,9 +104,11 @@ static GarlicMessage createGarlicMessage(RouterContext ctx, long replyToken, lon * @param dataClove may be null for ECIES-layer ack * @param tagsToSendOverride if > 0, use this instead of skm's default * @param lowTagsOverride if > 0, use this instead of skm's default - * @param wrappedKey non-null with null data, - * output parameter that will be filled with the SessionKey used - * @param wrappedTags output parameter that will be filled with the sessionTags used + * @param wrappedKey for ElGamal, non-null with null data, + * output parameter that will be filled with the SessionKey used, + * may be null for ECIES + * @param wrappedTags for ElGamal, output parameter that will be filled with the sessionTags used, + * may be null for ECIES * @param replyTunnel non-null if requireAck is true or bundledReplyLeaseSet is non-null * @param requireAck if true, bundle replyToken in an ack clove * @param bundledReplyLeaseSet may be null; if non-null, put it in a clove diff --git a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java index f9a6446ec3..95c5dba88b 100644 --- a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java +++ b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java @@ -699,8 +699,15 @@ private void send() { clove = null; } - SessionKey sessKey = new SessionKey(); - Set tags = new HashSet(); + SessionKey sessKey; + Set tags; + if (_encryptionKey.getType() == EncType.ECIES_X25519) { + sessKey = null; + tags = null; + } else { + sessKey = new SessionKey(); + tags = new HashSet(); + } // Per-message flag > 0 overrides per-session option int tagsToSend = SendMessageOptions.getTagsToSend(sendFlags);