mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-06 14:19:59 -05:00
Merge bitcoin/bitcoin#29200: net: create I2P sessions using both ECIES-X25519 and ElGamal encryption
9d728916b2
net: create I2P sessions with both ECIES-X25519 and ElGamal encryption (Jon Atack) Pull request description: A Bitcoin Core node may only connect to a peer destination via I2P if both sides have sessions with the same encryption type. Encryption type is a property of the session, not the destination. Sessions may support multiple encryption types. As Bitcoin Core is not currently setting the encryption type when creating I2P sessions, it uses the older default, ElGamal (type 0). This pull updates our I2P session creation to use both ECIES-X25519 and ElGamal (types 4 and 0, respectively). This allows to connect to I2P peers of either type, and the newer, faster ECIES-X25519 will be preferred. See also: - discussion around https://github.com/qbittorrent/qBittorrent/issues/19625#issuecomment-1879582395 - recently updated "Signature and Encryption Types" in https://geti2p.net/en/docs/api/samv3 Thank you and credit to zzzi2p for reporting and to vort for the patch. Closes https://github.com/bitcoin/bitcoin/issues/29197. ACKs for top commit: zzzi2p: ACK9d728916b2
recursive-rat4: ACK9d728916b2
kristapsk: cr utACK9d728916b2
brunoerg: crACK9d728916b2
shaavan: crACK9d728916b2
Tree-SHA512: 0912fc01af9706914a7854f7479b9d82fc86c9530466cad8674e30f7eb4894d90d514efbc1aee8b7ea690faa6ff4a23b62cf5de8737cffdbc463300082c9b917
This commit is contained in:
commit
5a121bcdee
1 changed files with 2 additions and 2 deletions
|
@ -427,7 +427,7 @@ void Session::CreateIfNotCreatedAlready()
|
||||||
const Reply& reply = SendRequestAndGetReply(
|
const Reply& reply = SendRequestAndGetReply(
|
||||||
*sock,
|
*sock,
|
||||||
strprintf("SESSION CREATE STYLE=STREAM ID=%s DESTINATION=TRANSIENT SIGNATURE_TYPE=7 "
|
strprintf("SESSION CREATE STYLE=STREAM ID=%s DESTINATION=TRANSIENT SIGNATURE_TYPE=7 "
|
||||||
"inbound.quantity=1 outbound.quantity=1",
|
"i2cp.leaseSetEncType=4,0 inbound.quantity=1 outbound.quantity=1",
|
||||||
session_id));
|
session_id));
|
||||||
|
|
||||||
m_private_key = DecodeI2PBase64(reply.Get("DESTINATION"));
|
m_private_key = DecodeI2PBase64(reply.Get("DESTINATION"));
|
||||||
|
@ -445,7 +445,7 @@ void Session::CreateIfNotCreatedAlready()
|
||||||
|
|
||||||
SendRequestAndGetReply(*sock,
|
SendRequestAndGetReply(*sock,
|
||||||
strprintf("SESSION CREATE STYLE=STREAM ID=%s DESTINATION=%s "
|
strprintf("SESSION CREATE STYLE=STREAM ID=%s DESTINATION=%s "
|
||||||
"inbound.quantity=3 outbound.quantity=3",
|
"i2cp.leaseSetEncType=4,0 inbound.quantity=3 outbound.quantity=3",
|
||||||
session_id,
|
session_id,
|
||||||
private_key_b64));
|
private_key_b64));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue