forked from I2P_Developers/i2p.i2p
I2CP: Fixes for CreateLeaseset2 message with multiple keys
This commit is contained in:
@@ -9,6 +9,7 @@ package net.i2p.client.impl;
|
||||
*
|
||||
*/
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -363,15 +364,20 @@ class I2CPMessageProducer {
|
||||
*
|
||||
*/
|
||||
public void createLeaseSet(I2PSessionImpl session, LeaseSet leaseSet, SigningPrivateKey signingPriv,
|
||||
PrivateKey priv) throws I2PSessionException {
|
||||
List<PrivateKey> privs) throws I2PSessionException {
|
||||
CreateLeaseSetMessage msg;
|
||||
int type = leaseSet.getType();
|
||||
if (type == DatabaseEntry.KEY_TYPE_LEASESET)
|
||||
if (type == DatabaseEntry.KEY_TYPE_LEASESET) {
|
||||
msg = new CreateLeaseSetMessage();
|
||||
else
|
||||
msg = new CreateLeaseSet2Message();
|
||||
msg.setPrivateKey(privs.get(0));
|
||||
} else {
|
||||
CreateLeaseSet2Message msg2 = new CreateLeaseSet2Message();
|
||||
for (PrivateKey priv : privs) {
|
||||
msg2.addPrivateKey(priv);
|
||||
}
|
||||
msg = msg2;
|
||||
}
|
||||
msg.setLeaseSet(leaseSet);
|
||||
msg.setPrivateKey(priv);
|
||||
msg.setSigningPrivateKey(signingPriv);
|
||||
SessionId sid = session.getSessionId();
|
||||
if (sid == null) {
|
||||
|
||||
@@ -315,7 +315,7 @@ class RequestLeaseSetMessageHandler extends HandlerImpl {
|
||||
_context.random().nextBytes(dummy);
|
||||
spk = new SigningPrivateKey(dummy);
|
||||
}
|
||||
session.getProducer().createLeaseSet(session, leaseSet, spk, li.getPrivateKey());
|
||||
session.getProducer().createLeaseSet(session, leaseSet, spk, li.getPrivateKeys());
|
||||
session.setLeaseSet(leaseSet);
|
||||
if (_log.shouldDebug())
|
||||
_log.debug("Created and signed LeaseSet: " + leaseSet);
|
||||
|
||||
Reference in New Issue
Block a user