Commit Graph
131 Commits
Author SHA1 Message Date
orignal 8769d0615a Revert "LeaseSet2: check declared key length before creating an encryptor" 2026-09-16 07:27:26 -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
acetone a5d4896a5c check outer plaintext length in encrypted LeaseSet2 2026-09-14 14:45:39 -04:00
orignal ade824808c don't try to parse meta LeaseSet 2026-09-10 20:07:06 -04:00
jpk68 67404cd82f chore: fix memory safety issues 2026-08-18 15:43:44 -04:00
jpk68 77c2f266b8 chore: fix memory safety issues 2026-07-30 17:01:45 -04:00
jpk68 b02c160b84 libi2pd: fix some typos 2026-07-24 20:45:35 -04:00
orignal 459d4d6614 keep preferred encryption type after update 2026-06-16 13:36:06 -04:00
orignal a776441ce1 detect and check imcompatible crypto between local destination and LeaseSet 2026-06-15 17:08:05 -04:00
orignal 44658d06be read LeaseSet2 properties 2026-02-28 11:16:26 -05:00
Lunar 1dc2e579f4 add null check for netdb.NewIdentity and check offset > len to ensure nothing bad happens 2026-02-28 23:27:21 +10:00
orignal ba0352e9a0 check for compatibility of LeaseSet encryption keys with local destination's encryption type 2025-06-07 20:52:35 -04:00
orignal 9c393f50da drop crypto types higher than ours 2025-06-07 12:06:47 -04:00
orignal 6363c9202f drop crypto types higher than ours 2025-06-07 11:28:21 -04:00
orignal f6c93f7345 common LocalEncryptionKey to pass to loacl LeaseSet 2025-04-16 15:40:09 -04:00
orignal ecf19278e8 skip post-quantum keys if not supported 2025-03-25 18:55:28 -04:00
orignal 9684c86a69 select key with max key type if no preferred. Changed default preferred type to 4 2025-03-19 20:49:52 -04:00
orignal bd2b96627c calculate crypto key length from key type 2025-03-18 19:23:13 -04:00
orignal 5265dc71e9 drop too old LeaseSet or from future 2024-11-18 15:49:11 -05:00
orignal a05bb93792 check LeaseSet expiration time 2024-11-18 12:16:05 -05:00
orignal ff5c76f8f2 don't include expired lease to LeaseSet for I2Cp 2024-08-21 19:21:02 -04:00
orignal 0191e58b05 adjust number of leases in LS2 if expired tunnels 2024-08-21 16:28:19 -04:00
orignal c43926083e don't include already expired lease to LeaseSet 2024-08-21 14:07:04 -04:00
orignal 52a313bb65 force LeaseSet timestamp update if published at the same second 2024-08-12 21:29:05 -04:00
weko 354a04f0f6 Up level for some logs to critical 2023-03-31 11:29:04 +00:00
orignal 55b2f2c625 memory pool for IdentityEx 2023-03-16 21:32:53 -04:00
orignal ce05cce331 validate LeaseSet if signature verification was not requested 2023-02-18 08:54:36 -05:00
orignal e190dab7d6 fixed crash when shows leasesets 2023-02-17 21:13:50 -05:00
R4SAS 503f522cc3 [style] clean trailing spaces and tabs
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-01-03 21:25:19 +03:00
orignal 9e02c99db5 check and limit LeaseSet's buffer size 2022-11-22 15:40:48 -05:00
orignal 8f5768f85b memory pool for leases 2022-08-09 19:40:07 -04:00
Simon Vetter 412a245e88 leaseset: add missing bound checks
This builds on ChadF's issue and patch (https://github.com/PurpleI2P/i2pd/issues/1772)
and fixes other potential bound check issues.
2022-07-16 18:00:20 +02:00
R4SAS 6b4ffcff5a cleanup code (spaces, tabs)
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-05-20 17:44:29 +00:00
R4SAS edc0162163 clean line trailing spaces and tabs
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2021-11-27 23:30:35 +03:00
R4SAS 94661f697b [log] update log messages (closes #1693)
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2021-11-27 22:53:53 +03:00
orignal af133f4968 fixed crash if incorrect blinded signature type 2021-09-29 12:38:38 -04:00
orignal 349022ae42 don't select ElGamal routers for tunnels 2021-09-03 13:30:01 -04:00
orignal bb518d3d51 don't pass BN_CTX to encrypt/decrypt functions 2021-08-31 18:51:40 -04:00
orignal 51ef7ef61c don't publish LeaseSet without tunnels 2021-04-01 13:37:21 -04:00
orignal 94ca2514af set zero expiration timeout if no tunnels 2021-04-01 10:29:03 -04:00
orignal 34eee2fc26 fixed #1644. check leaseset buffer size 2021-03-22 20:12:58 -04:00
orignal 0dc212d97c fixed non-updating LeaseSet1 2020-05-28 13:46:02 -04:00
R4SAS 8bae4975fb add copyright headers
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2020-05-22 18:14:53 +00:00
R4SAS 7a5146ea74 fix code syle(spaces->tabs, tabulations)
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2020-05-22 18:14:53 +00:00
orignal 627d8cfe69 correct timestamp check for LeaseSet2 2020-04-29 17:11:48 -04:00
orignal 962c2160c7 set actual LeaseSet2 buffer size 2020-03-20 17:43:37 -04:00
R4SAS b6b25dc9f3 update log messages
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2020-03-20 17:51:55 +03:00
orignal f3b0e57a54 publish multiple encryption keys 2020-03-18 18:03:03 -04:00
orignal 09ed57ad42 select preferred crypto from LeaseSet2 2020-02-12 11:09:20 -05:00
orignal 9f79bdae9b encryptor for ECIES-X25519-AEAD-Ratchet 2019-12-19 15:59:15 -05:00