@tacet-ink/journal-core 0.2.4 → 0.3.0

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.
@@ -0,0 +1,145 @@
1
+ {
2
+ "format": "journal-core-vectors/1",
3
+ "package_version": "0.3.0",
4
+ "spec": "docs/format-spec.md",
5
+ "generator": "scripts/generate-vectors.ts",
6
+ "note": "Frozen evidence generated once by calling the real primitives; not recomputed in CI (random iv/salt). Verify gate [26] checks presence and shape only.",
7
+ "rfc9106": {
8
+ "algorithm": "Argon2id",
9
+ "version": "0x13",
10
+ "memory_kib": 32,
11
+ "iterations": 3,
12
+ "parallelism": 4,
13
+ "tag_len": 32,
14
+ "password_hex": "0101010101010101010101010101010101010101010101010101010101010101",
15
+ "salt_hex": "00000000000000000000000000000000",
16
+ "secret": null,
17
+ "associated_data": null,
18
+ "expected_tag_hex": "72d2a36fd5c266bcc96121b24937bc253338cdfcbd273713655748c54b4dd503"
19
+ },
20
+ "frozen_blobs": [
21
+ {
22
+ "source": "verify [14] KAT14",
23
+ "prefix": "jr2w.",
24
+ "wire": "jr2w.srO0tba3uLm6u7y9vr/AwURFRkdISUpLTE1OTy8+hmx+AhMYCgPVBH1Q1q1UnjPF9uvN/ie4DoYqh4LGkMTHvHDy/Sku/lMRvoRWfuqSuIlX0rEpVU8HfMajsaYtzaz1zHFQELEIuzTsM6+S",
25
+ "payload_len": 108,
26
+ "inputs": {
27
+ "passphrase": "correct-horse-battery-staple-42",
28
+ "pin": "482913",
29
+ "salt1_hex": "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1",
30
+ "pinSaltPrefix": "tacet-note-pin1:",
31
+ "hkdf_info": "journal-kek2-v1:jr2w."
32
+ },
33
+ "expected_note_key_hex": "c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3"
34
+ },
35
+ {
36
+ "source": "verify [17] KAT17",
37
+ "prefix": "jr3w.",
38
+ "wire": "jr3w.BeQ8F6s3DdJWY853l2jRv5dHtVEMd+tjJ3XuIisu2ymuK7IInuqIvxtwPD3WzhTkEtCRr+h7KOfWo5FM6ELGjPxwxHAp5LtM5zcEg8hmCqH3dMX9iHF7IOQl3Ak=",
39
+ "payload_len": 92,
40
+ "inputs": {
41
+ "passphrase": "PASS12x",
42
+ "salt_hex": "f6a511fb29b131869d282d89f9eaa90a"
43
+ },
44
+ "expected_note_key_hex": "c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3"
45
+ },
46
+ {
47
+ "source": "verify [17] KAT17",
48
+ "prefix": "jr3d.",
49
+ "wire": "jr3d.nOB7P29euSEa+LM8qMSTRe6r32TbBX7nS2R/WyRJ7N1NO+mqXuW5u9HLiLzYObKHq3NURwiEaxD9qwli646qDoG4/5wlHD7UE9nBT485oUeEx/vYIkmOu4muJQ42avl8zX9M1PSgaP+Bk+R9",
50
+ "payload_len": 108,
51
+ "inputs": {
52
+ "passphrase": "dual-factor-passphrase-42",
53
+ "pin": "2580ab",
54
+ "salt1_hex": "a06bd4b1f293b8c8ebff4b6a02f13a34",
55
+ "pinSalt3Prefix": "tacet-note-pin3:",
56
+ "hkdf_info": "journal-kek2-v1:jr3d."
57
+ },
58
+ "expected_note_key_hex": "c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3"
59
+ },
60
+ {
61
+ "source": "verify [17] KAT17",
62
+ "prefix": "jr4w.",
63
+ "wire": "jr4w.x6cZmk7UVUAf8abE3mLps22+BLTdWGTDOZpTs4DqHFUDUcz5p5VpdIqYub/9r+sE2/hYE1fPb68ABSCdDeEvJVXlGOsbDr9L//xsdFcZZYlRtrMO3APSwJQBrv0=",
64
+ "payload_len": 92,
65
+ "inputs": {
66
+ "passphrase": "v3-generation-passphrase-42",
67
+ "salt_hex": "31a8d4ae616ccc0a6def28a9b0db4860"
68
+ },
69
+ "expected_note_key_hex": "c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3"
70
+ },
71
+ {
72
+ "source": "verify [17] KAT17",
73
+ "prefix": "jr4d.",
74
+ "wire": "jr4d.Dz8wgY5Lphif69Fh5fE+54J4YBlUJgfVLHBeM7RGr3HUmplys5FpcIK/AZT8zstvsUSpox2mwnpo4eQA9eqtbRK3kTowaWRyAEjTfx4kJS9eMoPQEWsr+GRRYgtdINlgAoVJxyi/NaCNqhDR",
75
+ "payload_len": 108,
76
+ "inputs": {
77
+ "passphrase": "dual-factor-passphrase-42",
78
+ "pin": "2580ab",
79
+ "salt1_hex": "d6ebccb6c9bb3a0d13905183d2b2977d",
80
+ "pinSalt3Prefix": "tacet-note-pin3:",
81
+ "hkdf_info": "journal-kek2-v1:jr4d."
82
+ },
83
+ "expected_note_key_hex": "c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3"
84
+ },
85
+ {
86
+ "source": "verify [20]",
87
+ "prefix": "jr1r.",
88
+ "wire": "jr1r.bkvBFdKjNVfidHcfn0WoyyRJLkajWhXF7WmPdc3Q9FCNNxDz+7PgN0x25BjuAZPFi1oP3t+8dblrnSQEltkieBh33xoyChcGKe1wEfaStQF6ITBNb6vBZKVXDEQ=",
89
+ "payload_len": 92,
90
+ "inputs": {
91
+ "rec_token": "62ff0221e30b56740ec210cd36df2e9667841585c6d0fcd5200826b965aa36a5",
92
+ "identity": "kat-id-0000000000000000",
93
+ "recKekHkdf": "jr1r.",
94
+ "recKekSalt": "a1b2c3d4e5f60718293a4b5c6d7e8f90",
95
+ "hkdf_info": "journal-kek-rec-v1:jr1r."
96
+ },
97
+ "expected_note_key_hex": "57c72afacd486194c41227f42311600e287a7d48baa7a3e9de32fa460c089699"
98
+ },
99
+ {
100
+ "source": "verify [20]",
101
+ "prefix": "jr1w.",
102
+ "wire": "jr1w.a4xchJ+EPui8iQy5dKpQyGjalu0nlJMsDd0LaLyRrY3mt+6112Se4NvaibymRFHsMg1LgOYsBVy15t0CiU1ipf9g8rniqBmdf1R5LzVXQdNJDCzbAfubPUKc/FE=",
103
+ "payload_len": 92,
104
+ "inputs": {
105
+ "rec_token": "62ff0221e30b56740ec210cd36df2e9667841585c6d0fcd5200826b965aa36a5",
106
+ "identity": "kat-id-0000000000000000",
107
+ "recSaltPrefix": "tacet-note-rec1:"
108
+ },
109
+ "expected_note_key_hex": "57c72afacd486194c41227f42311600e287a7d48baa7a3e9de32fa460c089699"
110
+ }
111
+ ],
112
+ "credentials": [
113
+ {
114
+ "kind": "ph1_legacy",
115
+ "input": "correct-horse-battery-staple-42",
116
+ "salt": null,
117
+ "expected_hex": "7dd095c64aba71ab6c386f3a01508e411007fc3855561a7bdb07c62d9fb98801"
118
+ },
119
+ {
120
+ "kind": "ph1_v2",
121
+ "input": "correct-horse-battery-staple-42",
122
+ "salt": "tacet-ph1-v1",
123
+ "expected_hex": "dc7c78fe83a0b3a84eace16c404c80300a10f93f3235ad5c7d563d5e1aab5baf"
124
+ },
125
+ {
126
+ "kind": "ph1_v3",
127
+ "input": "v3-generation-passphrase-42",
128
+ "input_nfkc": "v3-generation-passphrase-42",
129
+ "salt": "tacet-ph1-v2",
130
+ "expected_hex": "0d2f022c5e42c710e981feb484157ae35d7cf9542b489ae35b99c8fee001eae6"
131
+ },
132
+ {
133
+ "kind": "ph2_of_ph1_v2",
134
+ "input": "dc7c78fe83a0b3a84eace16c404c80300a10f93f3235ad5c7d563d5e1aab5baf",
135
+ "salt": null,
136
+ "expected_hex": "5860adc190682591654ebb81ca980c08b76a7ea50b2e0191610522caabcdf537"
137
+ },
138
+ {
139
+ "kind": "rec_token_hash",
140
+ "input": "62ff0221e30b56740ec210cd36df2e9667841585c6d0fcd5200826b965aa36a5",
141
+ "salt": null,
142
+ "expected_hex": "f700df2e385610d8295db7f69a6ac3481c456e6f88ec2dee8e44f8e8161f59bd"
143
+ }
144
+ ]
145
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tacet-ink/journal-core",
3
- "version": "0.2.4",
3
+ "version": "0.3.0",
4
4
  "description": "Zero-knowledge journal core — e2e crypto, passphrase-only auth, transport, ratelimit. The server never sees plaintext.",
5
5
  "homepage": "https://tacet.ink",
6
6
  "repository": {
@@ -25,27 +25,69 @@
25
25
  "privacy",
26
26
  "tacet"
27
27
  ],
28
- "main": "src/index.ts",
29
- "types": "src/index.ts",
28
+ "main": "./dist/index.js",
29
+ "types": "./dist/index.d.ts",
30
30
  "sideEffects": false,
31
31
  "exports": {
32
- ".": "./src/index.ts",
33
- "./client/note-crypto": "./src/client/note-crypto.ts",
34
- "./client/keys": "./src/client/keys.ts",
35
- "./client/argon2": "./src/client/argon2.ts",
36
- "./client/pinlock": "./src/client/pinlock.ts",
37
- "./client/bip39": "./src/client/bip39.ts",
38
- "./client/wordlist": "./src/client/wordlist.ts",
39
- "./server/auth": "./src/server/auth.ts",
40
- "./server/ratelimit": "./src/server/ratelimit.ts",
41
- "./server/cors": "./src/server/cors.ts",
42
- "./server/hash": "./src/server/hash.ts",
43
- "./server/env": "./src/server/env.ts",
44
- "./server/ladder": "./src/server/ladder.ts"
32
+ ".": {
33
+ "types": "./dist/index.d.ts",
34
+ "default": "./dist/index.js"
35
+ },
36
+ "./client/note-crypto": {
37
+ "types": "./dist/client/note-crypto.d.ts",
38
+ "default": "./dist/client/note-crypto.js"
39
+ },
40
+ "./client/keys": {
41
+ "types": "./dist/client/keys.d.ts",
42
+ "default": "./dist/client/keys.js"
43
+ },
44
+ "./client/argon2": {
45
+ "types": "./dist/client/argon2.d.ts",
46
+ "default": "./dist/client/argon2.js"
47
+ },
48
+ "./client/pinlock": {
49
+ "types": "./dist/client/pinlock.d.ts",
50
+ "default": "./dist/client/pinlock.js"
51
+ },
52
+ "./client/bip39": {
53
+ "types": "./dist/client/bip39.d.ts",
54
+ "default": "./dist/client/bip39.js"
55
+ },
56
+ "./client/wordlist": {
57
+ "types": "./dist/client/wordlist.d.ts",
58
+ "default": "./dist/client/wordlist.js"
59
+ },
60
+ "./server/auth": {
61
+ "types": "./dist/server/auth.d.ts",
62
+ "default": "./dist/server/auth.js"
63
+ },
64
+ "./server/ratelimit": {
65
+ "types": "./dist/server/ratelimit.d.ts",
66
+ "default": "./dist/server/ratelimit.js"
67
+ },
68
+ "./server/cors": {
69
+ "types": "./dist/server/cors.d.ts",
70
+ "default": "./dist/server/cors.js"
71
+ },
72
+ "./server/hash": {
73
+ "types": "./dist/server/hash.d.ts",
74
+ "default": "./dist/server/hash.js"
75
+ },
76
+ "./server/env": {
77
+ "types": "./dist/server/env.d.ts",
78
+ "default": "./dist/server/env.js"
79
+ },
80
+ "./server/ladder": {
81
+ "types": "./dist/server/ladder.d.ts",
82
+ "default": "./dist/server/ladder.js"
83
+ }
45
84
  },
46
85
  "files": [
86
+ "dist",
87
+ "docs",
47
88
  "src",
48
89
  "scripts",
90
+ "!scripts/generate-vectors.ts",
49
91
  "migrations",
50
92
  "README.md",
51
93
  "LICENSE"
@@ -54,6 +96,8 @@
54
96
  "node": ">=24.7.0"
55
97
  },
56
98
  "scripts": {
99
+ "build": "tsc -p tsconfig.build.json",
100
+ "prepublishOnly": "npm run build",
57
101
  "verify": "node --experimental-strip-types scripts/verify-core-crypto.ts",
58
102
  "typecheck": "tsc -p ."
59
103
  },