i2pseeds 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +21 -0
- package/dist/cli.js +67 -0
- package/dist/crt/acetone_at_mail.i2p.crt +32 -0
- package/dist/crt/admin_at_stormycloud.org.crt +34 -0
- package/dist/crt/creativecowpat_at_mail.i2p.crt +35 -0
- package/dist/crt/diyarciftci_at_protonmail.com.crt +34 -0
- package/dist/crt/echelon3_at_mail.i2p.crt +33 -0
- package/dist/crt/hankhill19580_at_gmail.com.crt +34 -0
- package/dist/crt/i2p-reseed_at_mk16.de.crt +34 -0
- package/dist/crt/igor_at_novg.net.crt +33 -0
- package/dist/crt/lazygravy_at_mail.i2p.crt +34 -0
- package/dist/crt/orignal_at_mail.i2p.crt +32 -0
- package/dist/crt/r4sas-reseed_at_mail.i2p.crt +32 -0
- package/dist/crt/rambler_at_mail.i2p.crt +33 -0
- package/dist/crt/reseed_at_diva.exchange.crt +34 -0
- package/dist/crt/sahil_at_mail.i2p.crt +32 -0
- package/dist/data/reseed.json +50 -0
- package/dist/data/seeds/coconut.incognet.io.su3 +12 -0
- package/dist/data/seeds/reseed.diva.exchange.su3 +0 -0
- package/dist/data/seeds/reseed.sahil.world.su3 +0 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.js +18 -0
- package/dist/shared/chunk-2mehkkf3.js +174 -0
- package/package.json +70 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 labofsahil
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
package/dist/cli.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
extractNetDb,
|
|
4
|
+
refreshSeeds
|
|
5
|
+
} from "./shared/chunk-2mehkkf3.js";
|
|
6
|
+
|
|
7
|
+
// src/cli.ts
|
|
8
|
+
import fs from "node:fs/promises";
|
|
9
|
+
import os from "node:os";
|
|
10
|
+
import path from "node:path";
|
|
11
|
+
import { fileURLToPath } from "node:url";
|
|
12
|
+
var __dirname2 = path.dirname(fileURLToPath(import.meta.url));
|
|
13
|
+
async function main() {
|
|
14
|
+
const args = process.argv.slice(2);
|
|
15
|
+
const command = args[0];
|
|
16
|
+
if (command !== "netdb") {
|
|
17
|
+
console.error("Usage: su3 netdb [--refresh]");
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
const doRefresh = args.includes("--refresh");
|
|
21
|
+
const bundledSeedsDir = path.join(__dirname2, "data/seeds");
|
|
22
|
+
const targetDir = path.join(process.cwd(), "netdb");
|
|
23
|
+
try {
|
|
24
|
+
const reseedJsonPath = path.join(__dirname2, "data/reseed.json");
|
|
25
|
+
let servers;
|
|
26
|
+
try {
|
|
27
|
+
servers = JSON.parse(await fs.readFile(reseedJsonPath, "utf8"));
|
|
28
|
+
} catch {
|
|
29
|
+
const fallback = path.join(__dirname2, "../src/reseed.json");
|
|
30
|
+
servers = JSON.parse(await fs.readFile(fallback, "utf8"));
|
|
31
|
+
}
|
|
32
|
+
let seedsDir;
|
|
33
|
+
if (doRefresh) {
|
|
34
|
+
seedsDir = await fs.mkdtemp(path.join(os.tmpdir(), "su3-refresh-"));
|
|
35
|
+
console.log("Downloading fresh seeds from reseed servers...");
|
|
36
|
+
const saved = await refreshSeeds(servers, seedsDir);
|
|
37
|
+
if (saved.length === 0) {
|
|
38
|
+
console.error("Could not download any fresh seeds. Falling back to bundled seeds.");
|
|
39
|
+
seedsDir = bundledSeedsDir;
|
|
40
|
+
} else {
|
|
41
|
+
console.log(`Downloaded ${saved.length} fresh .su3 files`);
|
|
42
|
+
}
|
|
43
|
+
} else {
|
|
44
|
+
seedsDir = bundledSeedsDir;
|
|
45
|
+
}
|
|
46
|
+
let crtDir;
|
|
47
|
+
try {
|
|
48
|
+
crtDir = path.join(__dirname2, "crt");
|
|
49
|
+
await fs.access(crtDir);
|
|
50
|
+
} catch {
|
|
51
|
+
crtDir = path.join(__dirname2, "../src/crt");
|
|
52
|
+
}
|
|
53
|
+
const result = await extractNetDb(seedsDir, targetDir, crtDir, servers);
|
|
54
|
+
console.log(`Successfully extracted ${result.count} router entries into ./netdb`);
|
|
55
|
+
} catch (error) {
|
|
56
|
+
if (error.code === "ENOENT") {
|
|
57
|
+
console.error("Could not find the seeds directory. Please make sure the package was installed correctly.");
|
|
58
|
+
} else {
|
|
59
|
+
console.error("Error:", error.message);
|
|
60
|
+
}
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
main().catch((error) => {
|
|
65
|
+
console.error(error);
|
|
66
|
+
process.exit(1);
|
|
67
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
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
|
|
31
|
+
3ZUnv2ipo2fpr69NtuBnutK6gw==
|
|
32
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIIF1zCCA7+gAwIBAgIRAMDqFR09Xuj8ZUu+oetSvAEwDQYJKoZIhvcNAQELBQAw
|
|
3
|
+
dTELMAkGA1UEBhMCWFgxCzAJBgNVBAcTAlhYMQswCQYDVQQJEwJYWDEeMBwGA1UE
|
|
4
|
+
ChMVSTJQIEFub255bW91cyBOZXR3b3JrMQwwCgYDVQQLEwNJMlAxHjAcBgNVBAMM
|
|
5
|
+
FWFkbWluQHN0b3JteWNsb3VkLm9yZzAeFw0yNDAxMjUxNDE1MzBaFw0zNDAxMjUx
|
|
6
|
+
NDE1MzBaMHUxCzAJBgNVBAYTAlhYMQswCQYDVQQHEwJYWDELMAkGA1UECRMCWFgx
|
|
7
|
+
HjAcBgNVBAoTFUkyUCBBbm9ueW1vdXMgTmV0d29yazEMMAoGA1UECxMDSTJQMR4w
|
|
8
|
+
HAYDVQQDDBVhZG1pbkBzdG9ybXljbG91ZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUA
|
|
9
|
+
A4ICDwAwggIKAoICAQDbGX+GikPzQXr9zvkrhfO9g0l49KHLNQhUKYqd6T+PfnGo
|
|
10
|
+
Fm0d3ZZVVQZ045vWgroOXDGGZZWxUIlb2inRaR2DF1TxN3pPYt59RgY9ZQ9+TL7o
|
|
11
|
+
isY91krCRygY8EcAmHIjlfZQ9dBVcL7CfyT0MYZA5Efee9+NDHSewTfQP9T2faIE
|
|
12
|
+
83Fcyd93a2mIHYjKUbJnojng/wgsy8srbsEuuTok4MIQmDj+B5nz+za2FgI0/ydh
|
|
13
|
+
srlMt4aGJF4/DIem9z9d0zBCOkwrmtFIzjNF1mOSA8ES4m5YnKA/y9rZlRidLPGu
|
|
14
|
+
prbXhPVnqHeOnHMz2QCw1wbVo504kl0bMqyEz2tVWsO9ep7iZoQs2xkFAEaegYNT
|
|
15
|
+
QLUpwVGlyuq3wXXwopFRffOSimGSazICwWI6j+K0pOtgefNJaWrqKYvtkj1SbK2L
|
|
16
|
+
LBNUIENz6VnB7KPRckuX6zxC8PpOiBK9BcftfO+xAz/wC6qq3riBPw30KKSym0nC
|
|
17
|
+
Zp5KciDn4Phtw9PGq8Bkl8SyWl0jtFnfTB1tzJkisf2qKcNHaFTEe2JW763YLbh/
|
|
18
|
+
AU+8X8evFu40qLgvOgKoyy5DLy6i8zetX+3t9K0Fxt9+Vzzq6lm5V/RS8iIPPn+M
|
|
19
|
+
q1/3Z5kD0KQBG9h/Gl8BH+lB71ZxPAOZ3SMu8DJZcxBLVmDWqQPCr5CKnoz0swID
|
|
20
|
+
AQABo2IwYDAOBgNVHQ8BAf8EBAMCAoQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG
|
|
21
|
+
AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHgYDVR0OBBcEFWFkbWluQHN0b3JteWNs
|
|
22
|
+
b3VkLm9yZzANBgkqhkiG9w0BAQsFAAOCAgEARWOJ69vTHMneSXYscha+4Ytjg0RM
|
|
23
|
+
faewJNEGj8qy/Qvh9si2bWYNPRK6BlbHFS7pRYBLAnhaeLBGVv1CCR6GUMMe74zQ
|
|
24
|
+
UuMeAoWU6qMDmB3GfYoZJh8sIxpwHqyJeTdeccRbZ4sX4F6u3IHPXYiU/AgbYqH7
|
|
25
|
+
pYXQg2lCjXZYaDFAlEf5SlYUDOhhXe5kR8Edhlrsu32/JzA1DQK0JjxKCBp+DQmA
|
|
26
|
+
ltdOpQtAg03fHP4ssdj7VvjIDl28iIlATwBvHrdNm7T0tYWn6TWhvxbRqvfTxfaH
|
|
27
|
+
MvxnPdIJwNP4/9TyQkwjwHb1h+ucho3CnxI/AxspdOvT1ElMhP6Ce6rcS9pk11Rl
|
|
28
|
+
x0ChsqpWwDg7KYpg0qZFSKCTBp4zBq9xoMJ6BQcgMfyl736WbsCzFTEyfifp8beg
|
|
29
|
+
NxUa/Qk7w7cuSPGyMIKNOmOR7FLlFbtocy8sXVsUQdqnp/edelufdNe39U9uNtY6
|
|
30
|
+
yoXI9//Tc6NgOwy2Oyia0slZ5qHRkB7e4USXMRzJ3p4q9eCVKjAJs81Utp7O2U+9
|
|
31
|
+
vhbhwWP8CAnNTT1E5WS6EKtfrdqF7wjkV+noPGLDGmrXi01J1fSMAjMfVO+7/LOL
|
|
32
|
+
UN+G4ybKWnEhhOO27yidN8Xx6UrCS23DBlPPQAeA74dTsTExiOxf1o1EXzcQiMyO
|
|
33
|
+
LAj3/Ojbi1xkWhI=
|
|
34
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIIGAzCCA+ugAwIBAgIRAJNGLpTSm2U3GjXmFkjT/0cwDQYJKoZIhvcNAQELBQAw
|
|
3
|
+
dzELMAkGA1UEBhMCWFgxCzAJBgNVBAcTAlhYMQswCQYDVQQJEwJYWDEeMBwGA1UE
|
|
4
|
+
ChMVSTJQIEFub255bW91cyBOZXR3b3JrMQwwCgYDVQQLEwNJMlAxIDAeBgNVBAMM
|
|
5
|
+
F2NyZWF0aXZlY293cGF0QG1haWwuaTJwMB4XDTE3MDUyNjE5NDQzOVoXDTI3MDUy
|
|
6
|
+
NjE5NDQzOVowdzELMAkGA1UEBhMCWFgxCzAJBgNVBAcTAlhYMQswCQYDVQQJEwJY
|
|
7
|
+
WDEeMBwGA1UEChMVSTJQIEFub255bW91cyBOZXR3b3JrMQwwCgYDVQQLEwNJMlAx
|
|
8
|
+
IDAeBgNVBAMMF2NyZWF0aXZlY293cGF0QG1haWwuaTJwMIICIjANBgkqhkiG9w0B
|
|
9
|
+
AQEFAAOCAg8AMIICCgKCAgEAo3XP4JToVbfM5e4GxyAqzu2DJV7ohpzlLqMLyz/9
|
|
10
|
+
XgZ7ipctNoxVZytoaNgMeAHInJn5OhUC4D+emsgsLJqFjnb2pxf6v45sRZLBMieb
|
|
11
|
+
wJlxUmskucpTXwDwuHBk/s3xmH4IluadmzwiCMyycQFH/CNXmu5bonAuZ075rT1Q
|
|
12
|
+
a8W0vb8eSfNYXn+FKQBROqsL5Ep+iJM6FX+oWMxJPk/zNluIu9qTdZL7Fts2+ObP
|
|
13
|
+
X5WLE4Dtot57vMI2Tg3fjnpgvk3ynQjacS8+CBEbvA/j32PBS1mQB+ebl56CQTBv
|
|
14
|
+
glHrXiNdp24TAwy8mwWHknhpt4cvRXOJGZphSVNRYFVk0vv7CTjmQg6WOBGD+d/P
|
|
15
|
+
cosvyKxQz4WUSmtaKUftgCBdnemeM7BppZv2URflEOY6Uv3f9xlEC6yVEzSaa2Md
|
|
16
|
+
tG6XRkDyupWCBFwmSm1uS+SXXhxAQGn3eMXPFA1XkwNnZtmM9kvSVt34FBE231oN
|
|
17
|
+
4oM7rE3ZDyTocZw7cv7bl8idmqsLXDTSFn5Q2iLwvw6ZeTenk8qHrq9kVH1UVE2l
|
|
18
|
+
31iKDNdGQkkVcnTWYfiqriwGLpTqbeD/8n9OBgCke1TiKQzP1o66nhkGJTiiRLFK
|
|
19
|
+
A8rlSpqBcjGbXDs/X+Ote9MrCxE089eCqN51kzDeQ4Yvy8gDOTBPGEhBLirx+3pp
|
|
20
|
+
yWkCAwEAAaOBiTCBhjAOBgNVHQ8BAf8EBAMCAoQwHQYDVR0lBBYwFAYIKwYBBQUH
|
|
21
|
+
AwIGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wIAYDVR0OBBkEF2NyZWF0aXZl
|
|
22
|
+
Y293cGF0QG1haWwuaTJwMCIGA1UdIwQbMBmAF2NyZWF0aXZlY293cGF0QG1haWwu
|
|
23
|
+
aTJwMA0GCSqGSIb3DQEBCwUAA4ICAQCYzeYyPYhW+/SZSfpDl6JTzXy8S6NG+yjq
|
|
24
|
+
pcinxaIF4XFoXLwWD3uHR4jgpU750mhHJjpGIaltZjFaqLbqtysbqb0vdShyaK/n
|
|
25
|
+
Td4CXrNBvEHvLI6DZyDX4BcDlhCI7/dMCSHXwFIhRHhYSnTsJO32BdP5DsUUAlSW
|
|
26
|
+
G0FlEEWjlxcdRwIITv70cFNlNOqJeyvtk9DPT+nEzssKWxVZcqN4GK8dvQVWgL91
|
|
27
|
+
8uzrcAYpAEQfmkKzsGmV4v5gWumLZmnzc24hUhVsHhIph4HAmjPMFCppI1tgiwg7
|
|
28
|
+
fH71MYB8b9KBJKipkLdAL292mDLS4G3MGQwMbcjnTyIqOktmyyj/1CorZAKqBtzu
|
|
29
|
+
Qyo7z8FM2pd5nzk7QDx/vsJ4bNAYvVu7titDW5mv5JDoQcp2uDVGePlonX3I8iFx
|
|
30
|
+
CqKFzGHiR0EU8oWw0Pqf+y2rEV4L74agmUR7VbA+/ovz0UnDUoXIynSwpK7Kfo8D
|
|
31
|
+
B7ky9RnmsxJX6TXaMVW06IlYuwIUsAWbMhKvdXbGZur5VVi1ZY1/HgZZnoXejzCe
|
|
32
|
+
w3mMl6movkcA0noDXQ+eauUDHjktrVUJdZKYvZNjfnz2rB+MI5wB/hzeBv4KuYFE
|
|
33
|
+
oTFt8SwTzs0joM4c7RomTxc+QFe832SvjPAnxQn17qSjD8z4c7Ako6sCKvpdBSDm
|
|
34
|
+
Hz8KWVkHZg==
|
|
35
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIIF5jCCA86gAwIBAgIRAJS8WCPfx/2FIHXvCu2sMJEwDQYJKoZIhvcNAQELBQAw
|
|
3
|
+
ejELMAkGA1UEBhMCWFgxCzAJBgNVBAcTAlhYMQswCQYDVQQJEwJYWDEeMBwGA1UE
|
|
4
|
+
ChMVSTJQIEFub255bW91cyBOZXR3b3JrMQwwCgYDVQQLEwNJMlAxIzAhBgNVBAMM
|
|
5
|
+
GmRpeWFyY2lmdGNpQHByb3Rvbm1haWwuY29tMB4XDTI1MTEwODExMDAxNVoXDTM1
|
|
6
|
+
MTEwODExMDAxNVowejELMAkGA1UEBhMCWFgxCzAJBgNVBAcTAlhYMQswCQYDVQQJ
|
|
7
|
+
EwJYWDEeMBwGA1UEChMVSTJQIEFub255bW91cyBOZXR3b3JrMQwwCgYDVQQLEwNJ
|
|
8
|
+
MlAxIzAhBgNVBAMMGmRpeWFyY2lmdGNpQHByb3Rvbm1haWwuY29tMIICIjANBgkq
|
|
9
|
+
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4b1wK851e3+iJ9Efrwa0W5YdaNZfrQg/
|
|
10
|
+
EgMnADSDzmEbNDS/7jSSMNA3u7kuJutcVzJpRdmR4+TZOdDde3CmGSw55GnROREO
|
|
11
|
+
jgaJqmFPpMv1yzA1oK2yfqPoclXBgOe1lIrGAAYM8UeumV5MtuG6Vh8VOjYoO+C7
|
|
12
|
+
/nbkOk0kJ+kG5iXntPQeb/eXwRQwIR++t7Av6DgSjL4+KMWlUIp7WFQH7XNNfu7q
|
|
13
|
+
9JOJ5YHX7CYBaCgNbwAglvyE3YSO73CJnVZUxdAfTxJe0Vn31r1FO+qMw6qa41kl
|
|
14
|
+
WZqULWCMTBgeynex30AGMmzFEBVb/QMMzscqTF033WM48g+DvzvxAf8qaEWwrNrH
|
|
15
|
+
ILCmxc8U8BHOyRzcthkCRopubQjEwd6hSHkkF67L5MNqd980u6JayAcUQxTl80vm
|
|
16
|
+
HLT1SzURt86qtNN7WJ9NAT20WJcHkTKodovYToDMU4v2VD/xB98VTW4+04WhL0b2
|
|
17
|
+
sobFglgW1TSpQP01OfUFMZYABo3I4qL8kGf0XQUW1xCu/1CB7GLmYzt3wGnwL6+5
|
|
18
|
+
yv/0Z69hU/23Q4yz++87Osq54xnG9fCBIUmgBXcAq15aZucadrFX5YDct56jYhDR
|
|
19
|
+
DnW0G7p2/qdJkUaf/tgB4t2fSq9cPTLaIqJzOpOazctT35y9NjUTNTIwyNhr3+wH
|
|
20
|
+
EiuZFSqZnDkCAwEAAaNnMGUwDgYDVR0PAQH/BAQDAgKEMB0GA1UdJQQWMBQGCCsG
|
|
21
|
+
AQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCMGA1UdDgQcBBpkaXlh
|
|
22
|
+
cmNpZnRjaUBwcm90b25tYWlsLmNvbTANBgkqhkiG9w0BAQsFAAOCAgEAjcD4sOhq
|
|
23
|
+
CHuA3+ZgAsRi3mTX0+LDfa8l+cTuODlL0IsecC4y7QUu9Feq4GZ5Y1DAYrLERnmO
|
|
24
|
+
OkqrbN9uv4IA0mEFbcTTvIYPYvqCbSoshUgkcDpem5Zl4PIQBcMjxa6LcO+Yuff2
|
|
25
|
+
6JaZJ44EsV3zq8CfqEY+wUTK54XxwBUaUqWR0E5j+jPkZflJbG2jZzAlrzEo3w18
|
|
26
|
+
eJSfOHXw22PZmjp5pwmEvqPguWSxGyP/BOVa7SNUlxU/VpoOhN63D6hWKHAxCGhR
|
|
27
|
+
hpEevBslcuN1/e8wxiATmdodrZUA2ie1Y38jmahgQKY8nB6IoGEsJAaLBiAA9KNS
|
|
28
|
+
uWkMncDyIMYUQaRki5WXIsthXn+pVQI6xkTWVXdLQpEhfIsBgRkXf35SqS1adIip
|
|
29
|
+
Mp9Yhjt0Fpfp/p9QjTYvrqgT0Mg0ch8SBSejXStJcFSt1sN6utLp1saQjKyWyIOi
|
|
30
|
+
vfpd+YjFRtT4tkYD4lCynEgUEmu5H4m8W16I3oSfdGeNw4j/5wy0zBP8ctwTkTyT
|
|
31
|
+
PUJCtBcJ13V4lmUMGFU17AaKKAL+Jyw+ibl2Blc/P3H4SQ7PlYAGrulMYYEwkk70
|
|
32
|
+
Uz+NAXNBatCDR/0pwaAJ8WwpBFTdBYaWPDFZDsuphd/sYdI8gkzHJ1L+2dn06hhp
|
|
33
|
+
jN8mFgn9cnJz2/ZgnFGEMHLFL7WctYzMhdg=
|
|
34
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIIFyzCCA7OgAwIBAgIRALWNWsnQ0Vmn/99iCNT7cdQwDQYJKoZIhvcNAQELBQAw
|
|
3
|
+
cTELMAkGA1UEBhMCWFgxCzAJBgNVBAcTAlhYMQswCQYDVQQJEwJYWDEeMBwGA1UE
|
|
4
|
+
ChMVSTJQIEFub255bW91cyBOZXR3b3JrMQwwCgYDVQQLEwNJMlAxGjAYBgNVBAMM
|
|
5
|
+
EWVjaGVsb24zQG1haWwuaTJwMB4XDTIxMTEyOTE5MzU1OVoXDTMxMTEyOTE5MzU1
|
|
6
|
+
OVowcTELMAkGA1UEBhMCWFgxCzAJBgNVBAcTAlhYMQswCQYDVQQJEwJYWDEeMBwG
|
|
7
|
+
A1UEChMVSTJQIEFub255bW91cyBOZXR3b3JrMQwwCgYDVQQLEwNJMlAxGjAYBgNV
|
|
8
|
+
BAMMEWVjaGVsb24zQG1haWwuaTJwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
|
|
9
|
+
CgKCAgEA3pccNiQWJUS1t3QHK7rBCNKAsM2dz4szN3+3SrDy1w+rOrK8Vt5aypPU
|
|
10
|
+
QYUQwG+odjEPacuoRtO/W14KJl5yAI3eQS+X/cYDXmxvfm4zx5JRumYptXwJD57G
|
|
11
|
+
rlPHnFvk8R+Hvh+/UyqgSAZ9ZaKjEzYK4AtbYEXtopaM4U2VYN8xKjvKyWlhPdxo
|
|
12
|
+
kI3//qcTlSqGHHeHrkItLG1LubM1EnPu+9zI2WN2zBBRcm8ZtWqHoqFJ1zgJr/49
|
|
13
|
+
nMK8Lnb3I54ctva8x5+gsSk4dbG/mMsOIZekFqYJJs3+u9w5fmOYI7v9GlQr7UhE
|
|
14
|
+
G3MwjJ5Cj1LmLVlz/4LApZrDSd2JvwIUdGL3UW8+blaTeCPKIRvmsTeRxo1gORMF
|
|
15
|
+
ZH0dg39722lK7ScwOlOUX9ggzRUlYCmvnjQJZGJEUoP68QxjlQfkXZyffmMfvm6K
|
|
16
|
+
V6mcZ5aHMGO1lYAl40kWNJ0jGpmxJqTDhNFDEKr0TlRGVxXGWzObEOrcJ8ysRMc1
|
|
17
|
+
x6oXQhh79HXZcKwhZaXLx23ZvVoTfhRm4JH0SSP6XqQm35j4NI1SllEsDns29wU3
|
|
18
|
+
Re4wOWJCCYlPG3CtY32CinwQRoVgtiJk18W8+Pxw7sBFq8sL5L0Z+5bB6nTkBfV6
|
|
19
|
+
7OrZGWL0i344zQE0e3yIsLih+5Wyqw6RSSMysenl3alnUB9EvE0CAwEAAaNeMFww
|
|
20
|
+
DgYDVR0PAQH/BAQDAgKEMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAP
|
|
21
|
+
BgNVHRMBAf8EBTADAQH/MBoGA1UdDgQTBBFlY2hlbG9uM0BtYWlsLmkycDANBgkq
|
|
22
|
+
hkiG9w0BAQsFAAOCAgEAaUMnMYtNFBl9dFON6e4EjYo53Wknj61uIVO11dvLqjnh
|
|
23
|
+
7X6guPML+GgNZsPQGLu7Bqw4hVgy/cV5AlFc7SXOhzpaYo1ycpjg3Ws1VK2wrk7+
|
|
24
|
+
4bvUThNcS1KZVFDdRE62549rYNfYNfPxXvccOTW9meTCC1kLHerh65ySDr9J02O6
|
|
25
|
+
o5Mf685PgBasBH6dlosOLTtee2gRLNFcAluQYKerawS1gDys5239UNHPCqTgO+Od
|
|
26
|
+
FiKfl48OIOzPGLKEf4lXC+lkwZElewShrHhzd8aGueedTi0UHOtQuY7ocsofqXc8
|
|
27
|
+
OnyT/y2X6wn/YkzviKgfxYDSI7FJiUgXCPcT0jUNmuwR168yL5BfzoQmrCvlOOQg
|
|
28
|
+
P7ibdBJ6UkL8pRpv/SYpvaX/kf4agYtwh5IL9FzNCwNu54ZC6JilLUhYAU38Eolq
|
|
29
|
+
OZ/cGiMoSFQIeBPvB3cdsqEud9W4P+MqN5A76fMzdVV77lGsIS1eCGMceR3CjOiF
|
|
30
|
+
6SdAskcBZWhFiRNQweC0iv57/nPCeTCuNAqbZSHd7zC1AKhNmmsKSJUJQCGijcce
|
|
31
|
+
P8Gl0AFfZneN2bVEFvJ/zd71pD8ll1Gkju16bfdWn0V4NRaxFiXNr2bL+ah9blud
|
|
32
|
+
EXOomE3R6ow1QZk+Gnpy3wh9jfwlrJuFoANvHnv4WREbdjwr//71XjBri5p1wPE=
|
|
33
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
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
|
|
33
|
+
CCOJyu3XtyzFf+tAeixOnuQ=
|
|
34
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
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
|
|
33
|
+
2Q==
|
|
34
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
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
|
|
33
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
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
|
|
33
|
+
+g==
|
|
34
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
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
|
|
31
|
+
zc+BrVZOdcYPqu9iLXyRQ9JwwA==
|
|
32
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
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
|
|
31
|
+
gfvIm7v+cELj8a53EQY0LafzZqNC5kQAp916coU=
|
|
32
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
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
|
|
33
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
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
|
|
33
|
+
LD8d2z2Lgg==
|
|
34
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
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
|
|
31
|
+
DsltQfUYMT3CbQAD7ugw
|
|
32
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"url": "https://reseed.sahil.world/",
|
|
4
|
+
"crt_file": "sahil_at_mail.i2p.crt"
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"url": "https://i2p.diyarciftci.xyz/",
|
|
8
|
+
"crt_file": "diyarciftci_at_protonmail.com.crt"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"url": "https://coconut.incognet.io/",
|
|
12
|
+
"crt_file": "rambler_at_mail.i2p.crt"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"url": "https://reseed.stormycloud.org/",
|
|
16
|
+
"crt_file": "admin_at_stormycloud.org.crt"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"url": "https://reseed-pl.i2pd.xyz/",
|
|
20
|
+
"crt_file": "r4sas-reseed_at_mail.i2p.crt"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"url": "https://reseed-fr.i2pd.xyz/",
|
|
24
|
+
"crt_file": "r4sas-reseed_at_mail.i2p.crt"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"url": "https://www2.mk16.de/",
|
|
28
|
+
"crt_file": "i2p-reseed_at_mk16.de.crt"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"url": "https://reseed2.i2p.net/",
|
|
32
|
+
"crt_file": "echelon3_at_mail.i2p.crt"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"url": "https://reseed.diva.exchange/",
|
|
36
|
+
"crt_file": "reseed_at_diva.exchange.crt"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"url": "https://reseed.i2pgit.org/",
|
|
40
|
+
"crt_file": "hankhill19580_at_gmail.com.crt"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"url": "https://i2p.novg.net/",
|
|
44
|
+
"crt_file": "igor_at_novg.net.crt"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"url": "https://reseed.onion.im/",
|
|
48
|
+
"crt_file": "lazygravy_at_mail.i2p"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!DOCTYPE HTML>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>coconut.incognet.io</title>
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
:root{--coconut:url(data:image/webp;base64,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)}
|
|
7
|
+
html,body{margin:0;height:100%;overflow:hidden;background:#95877d}
|
|
8
|
+
body{background:var(--coconut) no-repeat center center / 200px, radial-gradient(circle at center, rgba(0,0,0,0), #95877d 45%), repeating-linear-gradient(to bottom, rgba(0,0,0,.05) 2px, rgba(255,255,255,.2) 4px), radial-gradient(circle at center, #afa49d, #776c5e);animation: ease radiate .3s 120s alternate infinite}
|
|
9
|
+
@keyframes radiate{from{background: var(--coconut) no-repeat center center / 200px,radial-gradient(circle at center, rgba(0,0,0,0), #95877d 45%),repeating-linear-gradient(to bottom, rgba(0,0,0,.05) 2px, rgba(255,255,255,.2) 4px), radial-gradient(circle at center, #afa49d, #776c5e)}to{background: var(--coconut) no-repeat center center / 240px,radial-gradient(circle at center, rgba(0,0,0,0), #95877d 30%),repeating-linear-gradient(to bottom, rgba(0,0,0,.05) 2px, rgba(255,255,255,.2) 4px),radial-gradient(circle at center, #afa49d, #776c5e)}}</style>
|
|
10
|
+
<link rel=icon href=favicon.svg>
|
|
11
|
+
</head>
|
|
12
|
+
</html>
|
|
Binary file
|
|
Binary file
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The magic bytes that mark the start of a ZIP file inside an SU3 container.
|
|
3
|
+
*/
|
|
4
|
+
declare const ZIP_MAGIC: Buffer;
|
|
5
|
+
interface Su3Header {
|
|
6
|
+
sigType: number;
|
|
7
|
+
sigLength: number;
|
|
8
|
+
versionLength: number;
|
|
9
|
+
signerIdLength: number;
|
|
10
|
+
contentLength: number;
|
|
11
|
+
fileType: number;
|
|
12
|
+
contentType: number;
|
|
13
|
+
version: string;
|
|
14
|
+
signerId: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Parse the SU3 header from a raw buffer.
|
|
18
|
+
* Returns null if the buffer doesn't start with the I2Psu3 magic.
|
|
19
|
+
*/
|
|
20
|
+
declare function parseSu3Header(buf: Buffer): Su3Header | null;
|
|
21
|
+
/**
|
|
22
|
+
* Maps a signer ID like "sahil@mail.i2p" to cert filename "sahil_at_mail.i2p.crt"
|
|
23
|
+
*/
|
|
24
|
+
declare function signerIdToCertFile(signerId: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Verify the cryptographic signature of an SU3 file against a PEM certificate.
|
|
27
|
+
* Returns true if valid, false otherwise.
|
|
28
|
+
*/
|
|
29
|
+
declare function verifySu3Signature(su3Buffer: Buffer, certPem: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Strips the SU3 header from a raw buffer and returns just the ZIP payload.
|
|
32
|
+
* Returns `null` if no ZIP header is found.
|
|
33
|
+
*/
|
|
34
|
+
declare function extractZipFromSu3(su3Buffer: Buffer): Buffer | null;
|
|
35
|
+
interface ExtractResult {
|
|
36
|
+
/** Total number of `.dat` entries written */
|
|
37
|
+
count: number;
|
|
38
|
+
/** Base-names of the files that were written */
|
|
39
|
+
files: string[];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Extract all `routerInfo-*.dat` entries from every `.su3` file found in
|
|
43
|
+
* `seedsDir` into `targetDir`. When `crtDir` and `servers` are provided,
|
|
44
|
+
* verifies each SU3 against the cert mapped in reseed.json.
|
|
45
|
+
* Returns the count and list of files written.
|
|
46
|
+
*/
|
|
47
|
+
declare function extractNetDb(seedsDir: string, targetDir: string, crtDir?: string, servers?: ReseedServer[]): Promise<ExtractResult>;
|
|
48
|
+
interface ReseedServer {
|
|
49
|
+
url: string;
|
|
50
|
+
crt_file: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Download fresh `.su3` files from reseed servers into `outputDir`.
|
|
54
|
+
* Uses the built-in reseed.json list or a user-supplied one.
|
|
55
|
+
*/
|
|
56
|
+
declare function refreshSeeds(servers: ReseedServer[], outputDir: string, timeoutMs?: number): Promise<string[]>;
|
|
57
|
+
export { verifySu3Signature, signerIdToCertFile, refreshSeeds, parseSu3Header, extractZipFromSu3, extractNetDb, ZIP_MAGIC, Su3Header, ReseedServer, ExtractResult };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ZIP_MAGIC,
|
|
3
|
+
extractNetDb,
|
|
4
|
+
extractZipFromSu3,
|
|
5
|
+
parseSu3Header,
|
|
6
|
+
refreshSeeds,
|
|
7
|
+
signerIdToCertFile,
|
|
8
|
+
verifySu3Signature
|
|
9
|
+
} from "./shared/chunk-2mehkkf3.js";
|
|
10
|
+
export {
|
|
11
|
+
verifySu3Signature,
|
|
12
|
+
signerIdToCertFile,
|
|
13
|
+
refreshSeeds,
|
|
14
|
+
parseSu3Header,
|
|
15
|
+
extractZipFromSu3,
|
|
16
|
+
extractNetDb,
|
|
17
|
+
ZIP_MAGIC
|
|
18
|
+
};
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
// src/index.ts
|
|
2
|
+
import crypto from "node:crypto";
|
|
3
|
+
import fs from "node:fs/promises";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import AdmZip from "adm-zip";
|
|
6
|
+
var ZIP_MAGIC = Buffer.from([80, 75, 3, 4]);
|
|
7
|
+
var SIG_ALGORITHMS = {
|
|
8
|
+
3: "SHA256",
|
|
9
|
+
4: "SHA256",
|
|
10
|
+
5: "SHA384",
|
|
11
|
+
6: "SHA512",
|
|
12
|
+
8: "SHA512"
|
|
13
|
+
};
|
|
14
|
+
function parseSu3Header(buf) {
|
|
15
|
+
if (buf.length < 40)
|
|
16
|
+
return null;
|
|
17
|
+
const magic = buf.subarray(0, 6).toString("ascii");
|
|
18
|
+
if (magic !== "I2Psu3")
|
|
19
|
+
return null;
|
|
20
|
+
const sigType = buf.readUInt16BE(8);
|
|
21
|
+
const sigLength = buf.readUInt16BE(10);
|
|
22
|
+
const versionLength = buf[13] ?? 0;
|
|
23
|
+
const signerIdLength = buf[15] ?? 0;
|
|
24
|
+
const contentLength = buf.readUInt32BE(16) * 4294967296 + buf.readUInt32BE(20);
|
|
25
|
+
const fileType = buf[25] ?? 0;
|
|
26
|
+
const contentType = buf[27] ?? 0;
|
|
27
|
+
const headerEnd = 40;
|
|
28
|
+
const version = buf.subarray(headerEnd, headerEnd + versionLength).toString("ascii").replace(/\0/g, "");
|
|
29
|
+
const signerId = buf.subarray(headerEnd + versionLength, headerEnd + versionLength + signerIdLength).toString("ascii");
|
|
30
|
+
return {
|
|
31
|
+
sigType,
|
|
32
|
+
sigLength,
|
|
33
|
+
versionLength,
|
|
34
|
+
signerIdLength,
|
|
35
|
+
contentLength,
|
|
36
|
+
fileType,
|
|
37
|
+
contentType,
|
|
38
|
+
version,
|
|
39
|
+
signerId
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function signerIdToCertFile(signerId) {
|
|
43
|
+
return `${signerId.replace("@", "_at_")}.crt`;
|
|
44
|
+
}
|
|
45
|
+
function verifySu3Signature(su3Buffer, certPem) {
|
|
46
|
+
const header = parseSu3Header(su3Buffer);
|
|
47
|
+
if (!header)
|
|
48
|
+
return false;
|
|
49
|
+
const algo = SIG_ALGORITHMS[header.sigType];
|
|
50
|
+
if (!algo) {
|
|
51
|
+
console.error(`Unknown SU3 signature type: ${header.sigType}`);
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const contentStart = 40 + header.versionLength + header.signerIdLength;
|
|
55
|
+
const signedDataEnd = contentStart + header.contentLength;
|
|
56
|
+
const signedData = su3Buffer.subarray(0, signedDataEnd);
|
|
57
|
+
const signature = su3Buffer.subarray(signedDataEnd, signedDataEnd + header.sigLength);
|
|
58
|
+
try {
|
|
59
|
+
const verifier = crypto.createVerify(algo);
|
|
60
|
+
verifier.update(signedData);
|
|
61
|
+
return verifier.verify(certPem, signature);
|
|
62
|
+
} catch (err) {
|
|
63
|
+
console.error("Signature verification error:", err);
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function extractZipFromSu3(su3Buffer) {
|
|
68
|
+
const idx = su3Buffer.indexOf(ZIP_MAGIC);
|
|
69
|
+
if (idx === -1)
|
|
70
|
+
return null;
|
|
71
|
+
return su3Buffer.subarray(idx);
|
|
72
|
+
}
|
|
73
|
+
async function extractNetDb(seedsDir, targetDir, crtDir, servers) {
|
|
74
|
+
const dirEntries = await fs.readdir(seedsDir);
|
|
75
|
+
const su3Files = dirEntries.filter((f) => f.endsWith(".su3"));
|
|
76
|
+
if (su3Files.length === 0) {
|
|
77
|
+
throw new Error("No seed .su3 files found in the seeds directory.");
|
|
78
|
+
}
|
|
79
|
+
await fs.mkdir(targetDir, { recursive: true });
|
|
80
|
+
const written = [];
|
|
81
|
+
for (const su3File of su3Files) {
|
|
82
|
+
const raw = await fs.readFile(path.join(seedsDir, su3File));
|
|
83
|
+
if (crtDir && servers) {
|
|
84
|
+
const header = parseSu3Header(raw);
|
|
85
|
+
if (!header) {
|
|
86
|
+
console.error(`Skipping ${su3File}: invalid SU3 header`);
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const hostname = su3File.replace(/\.su3$/, "");
|
|
90
|
+
const server = servers.find((s) => {
|
|
91
|
+
try {
|
|
92
|
+
return new URL(s.url).hostname === hostname;
|
|
93
|
+
} catch {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
let certFileName;
|
|
98
|
+
if (server) {
|
|
99
|
+
certFileName = server.crt_file;
|
|
100
|
+
if (!certFileName.endsWith(".crt")) {
|
|
101
|
+
certFileName = `${certFileName}.crt`;
|
|
102
|
+
}
|
|
103
|
+
} else {
|
|
104
|
+
certFileName = signerIdToCertFile(header.signerId);
|
|
105
|
+
}
|
|
106
|
+
let certPem;
|
|
107
|
+
try {
|
|
108
|
+
certPem = await fs.readFile(path.join(crtDir, certFileName), "utf8");
|
|
109
|
+
} catch {
|
|
110
|
+
console.error(`Skipping ${su3File}: cert not found (${certFileName})`);
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const sigValid = verifySu3Signature(raw, certPem);
|
|
114
|
+
if (sigValid) {
|
|
115
|
+
console.log(`✓ ${su3File} verified (signer: ${header.signerId})`);
|
|
116
|
+
} else {
|
|
117
|
+
console.warn(`⚠ ${su3File}: signature mismatch (signer: ${header.signerId}) — cert may have rotated, proceeding`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const zipPayload = extractZipFromSu3(raw);
|
|
121
|
+
if (!zipPayload) {
|
|
122
|
+
console.error(`Skipping ${su3File}: no ZIP payload found`);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
const zip = new AdmZip(zipPayload);
|
|
126
|
+
for (const entry of zip.getEntries()) {
|
|
127
|
+
if (!entry.isDirectory && entry.entryName.endsWith(".dat")) {
|
|
128
|
+
const name = path.basename(entry.entryName);
|
|
129
|
+
const hashStart = name.indexOf("-");
|
|
130
|
+
const hashChar = hashStart !== -1 ? name[hashStart + 1] : undefined;
|
|
131
|
+
const subDir = hashChar ? `r${hashChar}` : "r0";
|
|
132
|
+
const fullDir = path.join(targetDir, subDir);
|
|
133
|
+
await fs.mkdir(fullDir, { recursive: true });
|
|
134
|
+
await fs.writeFile(path.join(fullDir, name), entry.getData());
|
|
135
|
+
written.push(path.join(subDir, name));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return { count: written.length, files: written };
|
|
140
|
+
}
|
|
141
|
+
async function refreshSeeds(servers, outputDir, timeoutMs = 1e4) {
|
|
142
|
+
await fs.mkdir(outputDir, { recursive: true });
|
|
143
|
+
const saved = [];
|
|
144
|
+
for (const { url } of servers) {
|
|
145
|
+
try {
|
|
146
|
+
const fullUrl = new URL("i2pseeds.su3", url).toString();
|
|
147
|
+
console.log(`Downloading ${fullUrl}...`);
|
|
148
|
+
const controller = new AbortController;
|
|
149
|
+
const timeout = setTimeout(() => {
|
|
150
|
+
controller.abort();
|
|
151
|
+
}, timeoutMs);
|
|
152
|
+
const response = await fetch(fullUrl, {
|
|
153
|
+
headers: { "User-Agent": "Wget/1.21.2" },
|
|
154
|
+
signal: controller.signal
|
|
155
|
+
});
|
|
156
|
+
clearTimeout(timeout);
|
|
157
|
+
if (!response.ok) {
|
|
158
|
+
console.error(`Failed to download from ${fullUrl}: ${response.statusText}`);
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
const buffer = Buffer.from(await response.arrayBuffer());
|
|
162
|
+
const hostname = new URL(url).hostname;
|
|
163
|
+
const outFile = path.join(outputDir, `${hostname}.su3`);
|
|
164
|
+
await fs.writeFile(outFile, buffer);
|
|
165
|
+
saved.push(outFile);
|
|
166
|
+
console.log(`Saved ${outFile}`);
|
|
167
|
+
} catch (error) {
|
|
168
|
+
console.error(`Error processing ${url}:`, error);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return saved;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export { ZIP_MAGIC, parseSu3Header, signerIdToCertFile, verifySu3Signature, extractZipFromSu3, extractNetDb, refreshSeeds };
|
package/package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "i2pseeds",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "i2pseeds",
|
|
5
|
+
"homepage": "https://github.com/labofsahil/su3#readme",
|
|
6
|
+
"bugs": {
|
|
7
|
+
"url": "https://github.com/labofsahil/su3/issues"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "git+https://github.com/labofsahil/su3.git"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"prebuild": "bun run scripts/fetch-seeds.ts",
|
|
19
|
+
"build": "bunup src/index.ts src/cli.ts && cp -r data dist/data && cp -r src/crt dist/crt && cp src/reseed.json dist/data/reseed.json",
|
|
20
|
+
"dev": "bunup src/index.ts src/cli.ts --watch",
|
|
21
|
+
"lint": "biome check .",
|
|
22
|
+
"lint:fix": "biome check --write .",
|
|
23
|
+
"prepare": "bun simple-git-hooks",
|
|
24
|
+
"release": "bumpp --commit --push --tag",
|
|
25
|
+
"test": "bun test",
|
|
26
|
+
"test:coverage": "bun test --coverage",
|
|
27
|
+
"test:watch": "bun test --watch",
|
|
28
|
+
"type-check": "tsc --noEmit",
|
|
29
|
+
"migrate": "biome migrate --write"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@biomejs/biome": "^2.4.4",
|
|
33
|
+
"@types/adm-zip": "^0.5.7",
|
|
34
|
+
"@types/bun": "^1.3.9",
|
|
35
|
+
"@types/node": "^25.3.0",
|
|
36
|
+
"bumpp": "^10.4.1",
|
|
37
|
+
"bunup": "^0.16.29",
|
|
38
|
+
"simple-git-hooks": "^2.13.1",
|
|
39
|
+
"typescript": "^5.9.3"
|
|
40
|
+
},
|
|
41
|
+
"peerDependencies": {
|
|
42
|
+
"typescript": ">=4.5.0"
|
|
43
|
+
},
|
|
44
|
+
"peerDependenciesMeta": {
|
|
45
|
+
"typescript": {
|
|
46
|
+
"optional": true
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"type": "module",
|
|
50
|
+
"bin": {
|
|
51
|
+
"su3": "./dist/cli.js"
|
|
52
|
+
},
|
|
53
|
+
"exports": {
|
|
54
|
+
".": {
|
|
55
|
+
"import": {
|
|
56
|
+
"types": "./dist/index.d.ts",
|
|
57
|
+
"default": "./dist/index.js"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"./package.json": "./package.json"
|
|
61
|
+
},
|
|
62
|
+
"module": "./dist/index.js",
|
|
63
|
+
"simple-git-hooks": {
|
|
64
|
+
"pre-commit": "bun run lint && bun run type-check"
|
|
65
|
+
},
|
|
66
|
+
"types": "./dist/index.d.ts",
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"adm-zip": "^0.5.16"
|
|
69
|
+
}
|
|
70
|
+
}
|