Commit Graph
9801 Commits
Author SHA1 Message Date
orignal ca984618af delete orphaned connection 2026-09-15 14:24:09 -04:00
orignal 79a4d7496b update piece's buffer after it gets loaded 2026-09-15 08:52:27 -04:00
orignal 42db1cf177 Merge pull request #2556 from pobregat0/ls2-key-section-length
LeaseSet2: check declared key length before creating an encryptor
2026-09-14 21:59:30 -04:00
PobreGatoandClaude Opus 5 466e865e91 LeaseSet2: check declared key length before creating an encryptor
A key section in a standard LeaseSet2 carries both a key type and a key
length. The length is checked against the buffer, but the encryptor reads
a length fixed by the type instead: 256 bytes for ElGamal, 64 for ECIES
P256, 32 for X25519. A section that declares ElGamal with a length of zero
passes the check and then makes CreateEncryptor read 256 bytes past the end
of the message.

Key sections are parsed before the signature is verified, so no key material
is needed to trigger it.

GetCryptoPublicKeyLen returned 32 for ECIES P256, while the key is x and y,
32 bytes each; without fixing that too, the new check would still let a 32
byte P256 section through.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Awv7FvZTpGFsKFNeNyJaTE
2026-09-14 21:43:53 -04:00
orignal 35804abf50 collect torrent data for torrent-get in torrent's thread 2026-09-14 20:21:28 -04:00
orignal bc4dc2b272 send reject request if loaded block cann't be sent 2026-09-14 17:28:00 -04:00
orignal 7a197e670a Merge pull request #2555 from freeacetone/fix-remaining-memory-safety
Memory safety fixes
2026-09-14 15:06:13 -04:00
acetone e86eac8ee7 require a full range pair in SSU2 ack block 2026-09-14 14:45:39 -04:00
acetone a5d4896a5c check outer plaintext length in encrypted LeaseSet2 2026-09-14 14:45:39 -04:00
acetone 82047ccbc4 check clove length before reading delivery status and tunnel test 2026-09-14 14:45:13 -04:00
orignal 952f5aad9e open seeded file in read-only mode 2026-09-14 10:11:42 -04:00
orignal 5925c58b6a fixed build with older version of clang 2026-09-14 07:57:03 -04:00
orignal a13f4c1aa2 handle TORRENTS param 2026-09-14 07:21:59 -04:00
orignal ef3658b6a7 handle TORRENTS param 2026-09-14 07:18:26 -04:00
orignal d33f5752c8 Merge pull request #2554 from wipedlifepotato/openssl
feat: info hash
2026-09-14 07:08:03 -04:00
wipedlifepotato a018bfa530 fix: reader.result 2026-09-14 05:35:33 +03:00
Luminok 24a66f5a22 Merge branch 'openssl' into openssl 2026-09-14 09:34:04 +07:00
wipedlifepotato 8aee0db80b feat: infoHash in webconsole 2026-09-14 05:32:37 +03:00
wipedlifepotato 98fc5f8b2e fix: fix new build js torrent client 2026-09-14 05:30:35 +03:00
orignal 3c45d154b9 don't close file after each save/load operation 2026-09-13 21:34:02 -04:00
orignal 2ff4eb7c57 calculate stats in real time 2026-09-13 19:09:36 -04:00
orignal b8a1c56d25 use TorrentFile struct for files. Common logic for single and multiple files 2026-09-13 18:38:45 -04:00
orignal 4b42c6b76a recoonect peers from different torrents after random intervals 2026-09-13 15:19:28 -04:00
orignal d72ae7a3dc remove peer from torrent on termination. Always run reconnect timer 2026-09-13 11:33:03 -04:00
orignal aee00c1984 don't try to peer if pending connection. Request trackers right away when torrent was added 2026-09-13 10:01:52 -04:00
orignal d7e3750fd3 pause between stop and deletion of torrents tunnel 2026-09-13 08:04:39 -04:00
orignal 1d96c2ac69 tribool local bitfield state. Delete .resume file after receiving last piece 2026-09-12 21:59:04 -04:00
orignal 13925712f8 check if stream is still alive in callback 2026-09-12 16:44:48 -04:00
orignal 181027c3b0 let tunnels finish thier tasks on stop 2026-09-12 15:46:10 -04:00
orignal 3630a57054 take non connected peers from torrent 2026-09-12 12:33:14 -04:00
orignal 95f251fdcb only one peer connection with destination per torrent 2026-09-12 11:03:33 -04:00
orignal d5a6c93d3d close all active seesions on stop. Check if .part file exists before renaming 2026-09-12 11:01:34 -04:00
orignal 8edd903a79 clean up pieces of seeding torrent. Update torrent status in random intervals 2026-09-12 08:17:17 -04:00
orignal c740ea579c fixed possible memory leak 2026-09-11 15:13:39 -04:00
orignal aa06c8144f decode url from tracker param 2026-09-11 11:32:34 -04:00
orignal 2d185a508e decode url from magnet's display name param 2026-09-11 09:46:05 -04:00
orignal 3bf919b780 close connections after receiving info if they didn't have it by handshake 2026-09-10 22:10:18 -04:00
orignal ade824808c don't try to parse meta LeaseSet 2026-09-10 20:07:06 -04:00
orignal e0fcfb3507 notify existing peers about new incoming peer 2026-09-10 15:30:44 -04:00
orignal e846140b38 response with more params to torrent-get 2026-09-10 14:42:32 -04:00
orignal 6929699325 send PEX added message to incoming connection 2026-09-10 13:08:24 -04:00
orignal 3a14b09da2 Merge pull request #2547 from pobregat0/reseed-connect-timeout
Treat reseed connect timeout as a failure instead of a connection
2026-09-09 21:16:48 -04:00
PobreGato 5da917f576 treat reseed connect timeout as a failure instead of a connection 2026-09-09 20:35:08 -04:00
orignal 0d655befa5 respond with reject request if piece load failed 2026-09-09 18:09:51 -04:00
orignal 13906f9f48 use transmission RPC api v17 2026-09-09 17:59:57 -04:00
orignal e50950c6c0 connect to new peers received through PEX 2026-09-09 16:42:13 -04:00
orignal e3be45ec50 receive I2P_PEX messages 2026-09-09 10:45:52 -04:00
orignal e5621949d5 chech ratchets payload size and key 2026-09-09 09:23:18 -04:00
orignal 7d93ac0f02 maintain connections list per torrent 2026-09-08 20:53:22 -04:00
orignal 0a8a96e60b RPC method session-stats 2026-09-08 18:20:42 -04:00