@freedomofpress/sigstore-browser 0.1.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.
Files changed (193) hide show
  1. package/.github/workflows/conformance.yml +29 -0
  2. package/.github/workflows/publish.yml +45 -0
  3. package/README.md +10 -0
  4. package/dist/asn1/error.d.ts +5 -0
  5. package/dist/asn1/error.d.ts.map +1 -0
  6. package/dist/asn1/error.js +20 -0
  7. package/dist/asn1/error.js.map +1 -0
  8. package/dist/asn1/index.d.ts +2 -0
  9. package/dist/asn1/index.d.ts.map +1 -0
  10. package/dist/asn1/index.js +17 -0
  11. package/dist/asn1/index.js.map +1 -0
  12. package/dist/asn1/length.d.ts +4 -0
  13. package/dist/asn1/length.d.ts.map +1 -0
  14. package/dist/asn1/length.js +59 -0
  15. package/dist/asn1/length.js.map +1 -0
  16. package/dist/asn1/obj.d.ts +15 -0
  17. package/dist/asn1/obj.d.ts.map +1 -0
  18. package/dist/asn1/obj.js +153 -0
  19. package/dist/asn1/obj.js.map +1 -0
  20. package/dist/asn1/parse.d.ts +7 -0
  21. package/dist/asn1/parse.d.ts.map +1 -0
  22. package/dist/asn1/parse.js +118 -0
  23. package/dist/asn1/parse.js.map +1 -0
  24. package/dist/asn1/tag.d.ts +17 -0
  25. package/dist/asn1/tag.d.ts.map +1 -0
  26. package/dist/asn1/tag.js +86 -0
  27. package/dist/asn1/tag.js.map +1 -0
  28. package/dist/bundle.d.ts +87 -0
  29. package/dist/bundle.d.ts.map +1 -0
  30. package/dist/bundle.js +2 -0
  31. package/dist/bundle.js.map +1 -0
  32. package/dist/canonicalize.d.ts +2 -0
  33. package/dist/canonicalize.d.ts.map +1 -0
  34. package/dist/canonicalize.js +64 -0
  35. package/dist/canonicalize.js.map +1 -0
  36. package/dist/cli.d.ts +3 -0
  37. package/dist/cli.d.ts.map +1 -0
  38. package/dist/cli.js +217 -0
  39. package/dist/cli.js.map +1 -0
  40. package/dist/crypto.d.ts +5 -0
  41. package/dist/crypto.d.ts.map +1 -0
  42. package/dist/crypto.js +260 -0
  43. package/dist/crypto.js.map +1 -0
  44. package/dist/dsse.d.ts +2 -0
  45. package/dist/dsse.d.ts.map +1 -0
  46. package/dist/dsse.js +42 -0
  47. package/dist/dsse.js.map +1 -0
  48. package/dist/encoding.d.ts +17 -0
  49. package/dist/encoding.d.ts.map +1 -0
  50. package/dist/encoding.js +112 -0
  51. package/dist/encoding.js.map +1 -0
  52. package/dist/errors.d.ts +39 -0
  53. package/dist/errors.d.ts.map +1 -0
  54. package/dist/errors.js +79 -0
  55. package/dist/errors.js.map +1 -0
  56. package/dist/index.d.ts +8 -0
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +5 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/interfaces.d.ts +104 -0
  61. package/dist/interfaces.d.ts.map +1 -0
  62. package/dist/interfaces.js +26 -0
  63. package/dist/interfaces.js.map +1 -0
  64. package/dist/oid.d.ts +5 -0
  65. package/dist/oid.d.ts.map +1 -0
  66. package/dist/oid.js +25 -0
  67. package/dist/oid.js.map +1 -0
  68. package/dist/pem.d.ts +3 -0
  69. package/dist/pem.d.ts.map +1 -0
  70. package/dist/pem.js +41 -0
  71. package/dist/pem.js.map +1 -0
  72. package/dist/rfc3161/error.d.ts +3 -0
  73. package/dist/rfc3161/error.d.ts.map +1 -0
  74. package/dist/rfc3161/error.js +18 -0
  75. package/dist/rfc3161/error.js.map +1 -0
  76. package/dist/rfc3161/index.d.ts +2 -0
  77. package/dist/rfc3161/index.d.ts.map +1 -0
  78. package/dist/rfc3161/index.js +17 -0
  79. package/dist/rfc3161/index.js.map +1 -0
  80. package/dist/rfc3161/timestamp.d.ts +36 -0
  81. package/dist/rfc3161/timestamp.d.ts.map +1 -0
  82. package/dist/rfc3161/timestamp.js +203 -0
  83. package/dist/rfc3161/timestamp.js.map +1 -0
  84. package/dist/rfc3161/tstinfo.d.ts +13 -0
  85. package/dist/rfc3161/tstinfo.d.ts.map +1 -0
  86. package/dist/rfc3161/tstinfo.js +47 -0
  87. package/dist/rfc3161/tstinfo.js.map +1 -0
  88. package/dist/sigstore.d.ts +33 -0
  89. package/dist/sigstore.d.ts.map +1 -0
  90. package/dist/sigstore.js +531 -0
  91. package/dist/sigstore.js.map +1 -0
  92. package/dist/stream.d.ts +22 -0
  93. package/dist/stream.d.ts.map +1 -0
  94. package/dist/stream.js +114 -0
  95. package/dist/stream.js.map +1 -0
  96. package/dist/timestamp/tsa.d.ts +24 -0
  97. package/dist/timestamp/tsa.d.ts.map +1 -0
  98. package/dist/timestamp/tsa.js +150 -0
  99. package/dist/timestamp/tsa.js.map +1 -0
  100. package/dist/tlog/body.d.ts +8 -0
  101. package/dist/tlog/body.d.ts.map +1 -0
  102. package/dist/tlog/body.js +45 -0
  103. package/dist/tlog/body.js.map +1 -0
  104. package/dist/tlog/checkpoint.d.ts +23 -0
  105. package/dist/tlog/checkpoint.d.ts.map +1 -0
  106. package/dist/tlog/checkpoint.js +187 -0
  107. package/dist/tlog/checkpoint.js.map +1 -0
  108. package/dist/tlog/dsse.d.ts +4 -0
  109. package/dist/tlog/dsse.d.ts.map +1 -0
  110. package/dist/tlog/dsse.js +85 -0
  111. package/dist/tlog/dsse.js.map +1 -0
  112. package/dist/tlog/hashedrekord.d.ts +4 -0
  113. package/dist/tlog/hashedrekord.d.ts.map +1 -0
  114. package/dist/tlog/hashedrekord.js +63 -0
  115. package/dist/tlog/hashedrekord.js.map +1 -0
  116. package/dist/tlog/intoto.d.ts +4 -0
  117. package/dist/tlog/intoto.d.ts.map +1 -0
  118. package/dist/tlog/intoto.js +50 -0
  119. package/dist/tlog/intoto.js.map +1 -0
  120. package/dist/tlog/merkle.d.ts +3 -0
  121. package/dist/tlog/merkle.d.ts.map +1 -0
  122. package/dist/tlog/merkle.js +112 -0
  123. package/dist/tlog/merkle.js.map +1 -0
  124. package/dist/trust/tuf-root.json +1 -0
  125. package/dist/trust/tuf.d.ts +95 -0
  126. package/dist/trust/tuf.d.ts.map +1 -0
  127. package/dist/trust/tuf.js +150 -0
  128. package/dist/trust/tuf.js.map +1 -0
  129. package/dist/x509/cert.d.ts +52 -0
  130. package/dist/x509/cert.d.ts.map +1 -0
  131. package/dist/x509/cert.js +256 -0
  132. package/dist/x509/cert.js.map +1 -0
  133. package/dist/x509/chain.d.ts +20 -0
  134. package/dist/x509/chain.d.ts.map +1 -0
  135. package/dist/x509/chain.js +141 -0
  136. package/dist/x509/chain.js.map +1 -0
  137. package/dist/x509/ext.d.ts +48 -0
  138. package/dist/x509/ext.d.ts.map +1 -0
  139. package/dist/x509/ext.js +164 -0
  140. package/dist/x509/ext.js.map +1 -0
  141. package/dist/x509/index.d.ts +4 -0
  142. package/dist/x509/index.d.ts.map +1 -0
  143. package/dist/x509/index.js +19 -0
  144. package/dist/x509/index.js.map +1 -0
  145. package/dist/x509/sct.d.ts +25 -0
  146. package/dist/x509/sct.d.ts.map +1 -0
  147. package/dist/x509/sct.js +123 -0
  148. package/dist/x509/sct.js.map +1 -0
  149. package/eslint.config.mjs +31 -0
  150. package/package.json +39 -0
  151. package/src/asn1/error.ts +18 -0
  152. package/src/asn1/index.ts +16 -0
  153. package/src/asn1/length.ts +71 -0
  154. package/src/asn1/obj.ts +184 -0
  155. package/src/asn1/parse.ts +146 -0
  156. package/src/asn1/tag.ts +105 -0
  157. package/src/bundle.ts +99 -0
  158. package/src/canonicalize.ts +61 -0
  159. package/src/cli.ts +285 -0
  160. package/src/crypto.ts +310 -0
  161. package/src/dsse.ts +49 -0
  162. package/src/encoding.ts +141 -0
  163. package/src/errors.ts +82 -0
  164. package/src/index.browser.test.ts +219 -0
  165. package/src/index.ts +14 -0
  166. package/src/interfaces.ts +118 -0
  167. package/src/oid.ts +28 -0
  168. package/src/pem.ts +48 -0
  169. package/src/rfc3161/error.ts +16 -0
  170. package/src/rfc3161/index.ts +17 -0
  171. package/src/rfc3161/timestamp.ts +270 -0
  172. package/src/rfc3161/tstinfo.ts +80 -0
  173. package/src/sigstore.ts +728 -0
  174. package/src/stream.ts +141 -0
  175. package/src/timestamp/tsa.ts +205 -0
  176. package/src/tlog/body.ts +65 -0
  177. package/src/tlog/checkpoint.ts +248 -0
  178. package/src/tlog/dsse.ts +147 -0
  179. package/src/tlog/hashedrekord.ts +130 -0
  180. package/src/tlog/intoto.ts +102 -0
  181. package/src/tlog/merkle.ts +152 -0
  182. package/src/trust/README.md +38 -0
  183. package/src/trust/tuf-root.json +1 -0
  184. package/src/trust/tuf.ts +223 -0
  185. package/src/types/tuf-browser.d.ts +13 -0
  186. package/src/x509/cert.ts +319 -0
  187. package/src/x509/chain.ts +212 -0
  188. package/src/x509/ext.ts +212 -0
  189. package/src/x509/index.ts +19 -0
  190. package/src/x509/sct.ts +154 -0
  191. package/tsconfig.json +18 -0
  192. package/vite.config.playwright.ts +26 -0
  193. package/vite.config.ts +18 -0
package/dist/crypto.js ADDED
@@ -0,0 +1,260 @@
1
+ import { ASN1Obj } from "./asn1/index.js";
2
+ import { base64ToUint8Array, base64UrlToUint8Array, hexToUint8Array, toArrayBuffer, } from "./encoding.js";
3
+ import { EcdsaTypes, HashAlgorithms, KeyTypes } from "./interfaces.js";
4
+ import { toDER } from "./pem.js";
5
+ import { p256, p384, p521 } from "@noble/curves/nist.js";
6
+ function pkcs1ToSpki(pkcs1Bytes) {
7
+ const algorithmIdentifier = new Uint8Array([
8
+ 0x30, 0x0d,
9
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
10
+ 0x05, 0x00
11
+ ]);
12
+ const bitStringLength = pkcs1Bytes.length + 1;
13
+ const totalContentLength = algorithmIdentifier.length + 1 + lengthBytes(bitStringLength).length + bitStringLength;
14
+ const result = new Uint8Array(1 + lengthBytes(totalContentLength).length + totalContentLength);
15
+ let offset = 0;
16
+ result[offset++] = 0x30;
17
+ const totalLengthBytes = lengthBytes(totalContentLength);
18
+ result.set(totalLengthBytes, offset);
19
+ offset += totalLengthBytes.length;
20
+ result.set(algorithmIdentifier, offset);
21
+ offset += algorithmIdentifier.length;
22
+ result[offset++] = 0x03;
23
+ const bitStringLengthBytes = lengthBytes(bitStringLength);
24
+ result.set(bitStringLengthBytes, offset);
25
+ offset += bitStringLengthBytes.length;
26
+ result[offset++] = 0x00;
27
+ result.set(pkcs1Bytes, offset);
28
+ return result;
29
+ }
30
+ // Encodes a length value in DER (Distinguished Encoding Rules) format.
31
+ // DER length encoding rules:
32
+ // - Lengths 0-127: single byte containing the length
33
+ // - Lengths 128-255: 0x81 followed by one byte containing the length
34
+ // - Lengths 256-65535: 0x82 followed by two bytes containing the length (big-endian)
35
+ // Used by pkcs1ToSpki() to construct valid ASN.1/DER structures.
36
+ function lengthBytes(length) {
37
+ if (length < 128) {
38
+ return new Uint8Array([length]);
39
+ }
40
+ else if (length < 256) {
41
+ return new Uint8Array([0x81, length]);
42
+ }
43
+ else {
44
+ return new Uint8Array([0x82, (length >> 8) & 0xff, length & 0xff]);
45
+ }
46
+ }
47
+ // Imports cryptographic public keys into the Web Crypto API format (CryptoKey).
48
+ // This function is specific to the browser implementation and doesn't exist in sigstore-js.
49
+ //
50
+ // Why needed for browser:
51
+ // - sigstore-js uses Node.js crypto.createPublicKey() which handles many key formats automatically
52
+ // - Browsers only have Web Crypto API (crypto.subtle.importKey) which requires explicit format/algorithm
53
+ // - This function bridges the gap by:
54
+ // 1. Detecting key format (PEM, hex, base64, PKCS#1, SPKI)
55
+ // 2. Converting PKCS#1 RSA keys to SPKI (Web Crypto only supports SPKI for RSA)
56
+ // 3. Mapping Sigstore key types/schemes to Web Crypto algorithm parameters
57
+ //
58
+ // Supports:
59
+ // - ECDSA (P-256, P-384, P-521) - Used by Fulcio, CT logs
60
+ // - Ed25519 - Used by Rekor checkpoints, some CT logs
61
+ // - RSA (PKCS#1, PSS) - Used by older CT logs and some Rekor instances
62
+ //
63
+ // Key format detection:
64
+ // - PEM format (contains "BEGIN"): Parse with toDER()
65
+ // - Hex string (all hex chars): Import as raw
66
+ // - Base64 PKCS#1 (starts with 0x30 0x82...): Convert to SPKI
67
+ // - Base64 SPKI: Import directly
68
+ export async function importKey(keytype, scheme, key) {
69
+ class importParams {
70
+ format = "spki";
71
+ keyData = new ArrayBuffer(0);
72
+ algorithm = { name: "ECDSA" };
73
+ extractable = true;
74
+ usage = ["verify"];
75
+ }
76
+ const params = new importParams();
77
+ if (key.includes("BEGIN")) {
78
+ params.format = "spki";
79
+ params.keyData = toArrayBuffer(toDER(key));
80
+ }
81
+ else if (/^[0-9A-Fa-f]+$/.test(key)) {
82
+ params.format = "raw";
83
+ params.keyData = toArrayBuffer(hexToUint8Array(key));
84
+ }
85
+ else {
86
+ params.format = "spki";
87
+ const keyBytes = base64ToUint8Array(key);
88
+ if (keytype.toLowerCase().includes("pkcs1") &&
89
+ keyBytes[0] === 0x30 && keyBytes[1] === 0x82 &&
90
+ keyBytes[4] === 0x02 && keyBytes[5] === 0x82) {
91
+ params.keyData = toArrayBuffer(pkcs1ToSpki(keyBytes));
92
+ }
93
+ else {
94
+ params.keyData = toArrayBuffer(keyBytes);
95
+ }
96
+ }
97
+ if (keytype.toLowerCase().includes("ecdsa")) {
98
+ if (scheme.includes("256")) {
99
+ params.algorithm = { name: "ECDSA", namedCurve: EcdsaTypes.P256 };
100
+ }
101
+ else if (scheme.includes("384")) {
102
+ params.algorithm = { name: "ECDSA", namedCurve: EcdsaTypes.P384 };
103
+ }
104
+ else if (scheme.includes("521")) {
105
+ params.algorithm = { name: "ECDSA", namedCurve: EcdsaTypes.P521 };
106
+ }
107
+ else {
108
+ throw new Error("Cannot determine ECDSA key size.");
109
+ }
110
+ }
111
+ else if (keytype.toLowerCase().includes("ed25519")) {
112
+ params.algorithm = { name: "Ed25519" };
113
+ }
114
+ else if (keytype.toLowerCase().includes("rsa") || keytype.toLowerCase().includes("pkcs1")) {
115
+ let hashName = HashAlgorithms.SHA256;
116
+ // Normalize scheme to handle various formats: SHA256, SHA_256, SHA-256, etc.
117
+ const normalizedScheme = scheme.toUpperCase().replace(/[-_]/g, "");
118
+ if (normalizedScheme.includes("SHA256") || normalizedScheme.includes("256")) {
119
+ hashName = HashAlgorithms.SHA256;
120
+ }
121
+ else if (normalizedScheme.includes("SHA384") || normalizedScheme.includes("384")) {
122
+ hashName = HashAlgorithms.SHA384;
123
+ }
124
+ else if (normalizedScheme.includes("SHA512") || normalizedScheme.includes("512")) {
125
+ hashName = HashAlgorithms.SHA512;
126
+ }
127
+ if (scheme.includes("PKCS1") || scheme.includes("RSA_PKCS1")) {
128
+ params.algorithm = {
129
+ name: "RSASSA-PKCS1-v1_5",
130
+ hash: { name: hashName },
131
+ };
132
+ }
133
+ else {
134
+ params.algorithm = {
135
+ name: "RSA-PSS",
136
+ hash: { name: hashName },
137
+ };
138
+ }
139
+ }
140
+ else {
141
+ throw new Error(`Unsupported ${keytype}`);
142
+ }
143
+ return await crypto.subtle.importKey(params.format, params.keyData, params.algorithm, params.extractable, params.usage);
144
+ }
145
+ export async function verifySignature(key, signed, sig, hash = "sha256") {
146
+ const options = {
147
+ name: key.algorithm.name,
148
+ };
149
+ if (key.algorithm.name === KeyTypes.Ecdsa) {
150
+ const namedCurve = key.algorithm.namedCurve;
151
+ let sig_size = 32;
152
+ if (namedCurve === EcdsaTypes.P256) {
153
+ sig_size = 32;
154
+ }
155
+ else if (namedCurve === EcdsaTypes.P384) {
156
+ sig_size = 48;
157
+ }
158
+ else if (namedCurve === EcdsaTypes.P521) {
159
+ sig_size = 66;
160
+ }
161
+ options.hash = { name: "" };
162
+ if (hash.includes("256")) {
163
+ options.hash.name = HashAlgorithms.SHA256;
164
+ }
165
+ else if (hash.includes("384")) {
166
+ options.hash.name = HashAlgorithms.SHA384;
167
+ }
168
+ else if (hash.includes("512")) {
169
+ options.hash.name = HashAlgorithms.SHA512;
170
+ }
171
+ else {
172
+ throw new Error("Cannot determine hashing algorithm;");
173
+ }
174
+ let raw_signature;
175
+ try {
176
+ const asn1_sig = ASN1Obj.parseBuffer(sig);
177
+ const r = asn1_sig.subs[0].toInteger();
178
+ const s = asn1_sig.subs[1].toInteger();
179
+ const binr = hexToUint8Array(r.toString(16).padStart(sig_size * 2, "0"));
180
+ const bins = hexToUint8Array(s.toString(16).padStart(sig_size * 2, "0"));
181
+ raw_signature = new Uint8Array(binr.length + bins.length);
182
+ raw_signature.set(binr, 0);
183
+ raw_signature.set(bins, binr.length);
184
+ }
185
+ catch {
186
+ return false;
187
+ }
188
+ return await crypto.subtle.verify(options, key, toArrayBuffer(raw_signature), toArrayBuffer(signed));
189
+ }
190
+ else if (key.algorithm.name === KeyTypes.Ed25519) {
191
+ // Ed25519 uses raw signatures (not DER-encoded like ECDSA)
192
+ // Fulcio supports Ed25519, ECDSA, and RSA_PSS for signing certificates
193
+ // Ed25519 is also used for checkpoint signatures in TLog configurations
194
+ return await crypto.subtle.verify(key.algorithm.name, key, toArrayBuffer(sig), toArrayBuffer(signed));
195
+ }
196
+ else if (key.algorithm.name === "RSA-PSS") {
197
+ // Salt length must match the hash output size
198
+ const hashAlg = key.algorithm.hash.name;
199
+ const saltLength = hashAlg === HashAlgorithms.SHA256 ? 32 :
200
+ hashAlg === HashAlgorithms.SHA384 ? 48 :
201
+ hashAlg === HashAlgorithms.SHA512 ? 64 : 32;
202
+ return await crypto.subtle.verify({
203
+ name: "RSA-PSS",
204
+ saltLength: saltLength,
205
+ }, key, toArrayBuffer(sig), toArrayBuffer(signed));
206
+ }
207
+ else if (key.algorithm.name === "RSASSA-PKCS1-v1_5") {
208
+ return await crypto.subtle.verify(key.algorithm.name, key, toArrayBuffer(sig), toArrayBuffer(signed));
209
+ }
210
+ else {
211
+ throw new Error("Unsupported key type!");
212
+ }
213
+ }
214
+ // Verifies an ECDSA signature over a pre-computed digest.
215
+ // WebCrypto's verify() always hashes the input first, so passing a digest would
216
+ // result in double-hashing. We use @noble/curves for low-level ECDSA verification,
217
+ // adapted from the same workaround used in sigstore-js's conformance CLI.
218
+ // See: https://github.com/sigstore/sigstore-js/blob/main/packages/conformance/src/commands/verify-bundle.ts#L111
219
+ export async function verifySignatureOverDigest(key, digest, sig) {
220
+ if (key.algorithm.name !== KeyTypes.Ecdsa) {
221
+ throw new Error("verifySignatureOverDigest only supports ECDSA keys");
222
+ }
223
+ const namedCurve = key.algorithm.namedCurve;
224
+ let curve;
225
+ if (namedCurve === EcdsaTypes.P256) {
226
+ curve = p256;
227
+ }
228
+ else if (namedCurve === EcdsaTypes.P384) {
229
+ curve = p384;
230
+ }
231
+ else if (namedCurve === EcdsaTypes.P521) {
232
+ curve = p521;
233
+ }
234
+ else {
235
+ throw new Error(`Unsupported curve: ${namedCurve}`);
236
+ }
237
+ // Export the public key to get x and y coordinates
238
+ const jwk = await crypto.subtle.exportKey("jwk", key);
239
+ if (!jwk.x || !jwk.y) {
240
+ throw new Error("Invalid ECDSA public key: missing x or y coordinates");
241
+ }
242
+ // Convert base64url JWK coordinates to bytes
243
+ const x = base64UrlToUint8Array(jwk.x);
244
+ const y = base64UrlToUint8Array(jwk.y);
245
+ // Combine x and y into uncompressed public key format (0x04 || x || y)
246
+ const publicKey = new Uint8Array(1 + x.length + y.length);
247
+ publicKey[0] = 0x04;
248
+ publicKey.set(x, 1);
249
+ publicKey.set(y, 1 + x.length);
250
+ // Verify the DER-encoded signature over the digest
251
+ // @noble/curves can parse DER signatures directly with format: 'der'
252
+ // Options:
253
+ // - format: 'der' to parse DER-encoded signatures
254
+ // - prehash: false because we're passing a pre-computed digest, not the original message
255
+ // - lowS: false to accept both high-S and low-S signatures (matches elliptic.js behavior)
256
+ // elliptic.js accepts malleable signatures by default, while @noble/curves rejects them by default
257
+ return curve.verify(sig, digest, publicKey, { format: 'der', prehash: false, lowS: false });
258
+ }
259
+ export { uint8ArrayEqual as bufferEqual } from "./encoding.js";
260
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
package/dist/dsse.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function preAuthEncoding(payloadType: string, payload: Uint8Array): Uint8Array;
2
+ //# sourceMappingURL=dsse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dsse.d.ts","sourceRoot":"","sources":["../src/dsse.ts"],"names":[],"mappings":"AAkBA,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,UAAU,GAClB,UAAU,CA2BZ"}
package/dist/dsse.js ADDED
@@ -0,0 +1,42 @@
1
+ /*
2
+ Copyright 2023 The Sigstore Authors.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */
16
+ const PAE_PREFIX = "DSSEv1";
17
+ // DSSE Pre-Authentication Encoding
18
+ export function preAuthEncoding(payloadType, payload) {
19
+ const prefix = [
20
+ PAE_PREFIX,
21
+ payloadType.length,
22
+ payloadType,
23
+ payload.length,
24
+ "",
25
+ ].join(" ");
26
+ // DSSE spec requires ASCII encoding for the prefix
27
+ // TextEncoder will throw if the string contains non-ASCII characters
28
+ const encoder = new TextEncoder();
29
+ const prefixBuffer = encoder.encode(prefix);
30
+ // Verify all characters are ASCII (< 128)
31
+ for (let i = 0; i < prefixBuffer.length; i++) {
32
+ if (prefixBuffer[i] > 127) {
33
+ throw new Error(`Invalid non-ASCII character in PAE prefix at position ${i}`);
34
+ }
35
+ }
36
+ // Concatenate prefix and payload
37
+ const combinedArray = new Uint8Array(prefixBuffer.length + payload.length);
38
+ combinedArray.set(prefixBuffer, 0);
39
+ combinedArray.set(payload, prefixBuffer.length);
40
+ return combinedArray;
41
+ }
42
+ //# sourceMappingURL=dsse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dsse.js","sourceRoot":"","sources":["../src/dsse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;EAcE;AACF,MAAM,UAAU,GAAG,QAAQ,CAAC;AAE5B,mCAAmC;AACnC,MAAM,UAAU,eAAe,CAC7B,WAAmB,EACnB,OAAmB;IAEnB,MAAM,MAAM,GAAG;QACb,UAAU;QACV,WAAW,CAAC,MAAM;QAClB,WAAW;QACX,OAAO,CAAC,MAAM;QACd,EAAE;KACH,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,mDAAmD;IACnD,qEAAqE;IACrE,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5C,0CAA0C;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3E,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACnC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare function toArrayBuffer(view: ArrayBufferView): ArrayBuffer;
2
+ export declare function base64ToUint8Array(base64: string): Uint8Array;
3
+ export declare function base64UrlToUint8Array(base64url: string): Uint8Array;
4
+ export declare function Uint8ArrayToBase64(uint8Array: Uint8Array): string;
5
+ export declare function hexToUint8Array(hex: string): Uint8Array;
6
+ export declare function Uint8ArrayToHex(uint8Array: Uint8Array): string;
7
+ export declare function stringToUint8Array(str: string): Uint8Array;
8
+ export declare function Uint8ArrayToString(uint8Array: Uint8Array): string;
9
+ export declare function readBigInt64BE(uint8Array: Uint8Array, offset?: number): bigint;
10
+ export declare function base64Encode(str: string): string;
11
+ export declare function base64Decode(str: string): string;
12
+ /**
13
+ * Constant-time equality comparison for Uint8Arrays
14
+ * Prevents timing attacks by always comparing all bytes
15
+ */
16
+ export declare function uint8ArrayEqual(a: Uint8Array, b: Uint8Array): boolean;
17
+ //# sourceMappingURL=encoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":"AAeA,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAoBhE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAU7D;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAMnE;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAQjE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAavD;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAY9D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAI1D;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAGjE;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAMR;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAUrE"}
@@ -0,0 +1,112 @@
1
+ /*
2
+ Copyright 2023 The Sigstore Authors.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */
16
+ export function toArrayBuffer(view) {
17
+ const { byteLength } = view;
18
+ if (byteLength === 0) {
19
+ return new ArrayBuffer(0);
20
+ }
21
+ const { buffer, byteOffset } = view;
22
+ if (buffer instanceof ArrayBuffer &&
23
+ byteOffset === 0 &&
24
+ byteLength === buffer.byteLength) {
25
+ return buffer;
26
+ }
27
+ const clone = new Uint8Array(byteLength);
28
+ clone.set(new Uint8Array(buffer, byteOffset, byteLength));
29
+ return clone.buffer;
30
+ }
31
+ export function base64ToUint8Array(base64) {
32
+ const binaryString = atob(base64);
33
+ const length = binaryString.length;
34
+ const bytes = new Uint8Array(length);
35
+ for (let i = 0; i < length; i++) {
36
+ bytes[i] = binaryString.charCodeAt(i);
37
+ }
38
+ return bytes;
39
+ }
40
+ export function base64UrlToUint8Array(base64url) {
41
+ let base64 = base64url.replace(/-/g, '+').replace(/_/g, '/');
42
+ while (base64.length % 4 !== 0) {
43
+ base64 += '=';
44
+ }
45
+ return base64ToUint8Array(base64);
46
+ }
47
+ export function Uint8ArrayToBase64(uint8Array) {
48
+ let binaryString = "";
49
+ for (let i = 0; i < uint8Array.length; i++) {
50
+ binaryString += String.fromCharCode(uint8Array[i]);
51
+ }
52
+ return btoa(binaryString);
53
+ }
54
+ export function hexToUint8Array(hex) {
55
+ if (hex.length % 2 !== 0) {
56
+ throw new Error("Hex string must have an even length");
57
+ }
58
+ const length = hex.length / 2;
59
+ const uint8Array = new Uint8Array(length);
60
+ for (let i = 0; i < length; i++) {
61
+ uint8Array[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
62
+ }
63
+ return uint8Array;
64
+ }
65
+ export function Uint8ArrayToHex(uint8Array) {
66
+ let hexString = "";
67
+ for (let i = 0; i < uint8Array.length; i++) {
68
+ let hex = uint8Array[i].toString(16);
69
+ if (hex.length === 1) {
70
+ hex = "0" + hex;
71
+ }
72
+ hexString += hex;
73
+ }
74
+ return hexString;
75
+ }
76
+ export function stringToUint8Array(str) {
77
+ // Defaults to utf-8, but utf-8 is ascii compatible
78
+ const encoder = new TextEncoder();
79
+ return encoder.encode(str);
80
+ }
81
+ export function Uint8ArrayToString(uint8Array) {
82
+ const decoder = new TextDecoder("utf-8");
83
+ return decoder.decode(uint8Array);
84
+ }
85
+ export function readBigInt64BE(uint8Array, offset) {
86
+ if (offset === undefined) {
87
+ offset = 0;
88
+ }
89
+ const hex = Uint8ArrayToHex(uint8Array.slice(offset, offset + 8));
90
+ return BigInt(`0x${hex}`);
91
+ }
92
+ export function base64Encode(str) {
93
+ return Uint8ArrayToBase64(stringToUint8Array(str));
94
+ }
95
+ export function base64Decode(str) {
96
+ return Uint8ArrayToString(base64ToUint8Array(str));
97
+ }
98
+ /**
99
+ * Constant-time equality comparison for Uint8Arrays
100
+ * Prevents timing attacks by always comparing all bytes
101
+ */
102
+ export function uint8ArrayEqual(a, b) {
103
+ if (a.byteLength !== b.byteLength) {
104
+ return false;
105
+ }
106
+ let result = 0;
107
+ for (let i = 0; i < a.byteLength; i++) {
108
+ result |= a[i] ^ b[i];
109
+ }
110
+ return result === 0;
111
+ }
112
+ //# sourceMappingURL=encoding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Base class for all verification errors
3
+ * Provides structured error handling with error codes
4
+ */
5
+ export declare class VerificationError extends Error {
6
+ code: string;
7
+ constructor(code: string, message: string);
8
+ }
9
+ /**
10
+ * Error thrown when timestamp verification fails
11
+ */
12
+ export declare class TimestampError extends VerificationError {
13
+ constructor(message: string);
14
+ }
15
+ /**
16
+ * Error thrown when certificate verification fails
17
+ */
18
+ export declare class CertificateError extends VerificationError {
19
+ constructor(message: string);
20
+ }
21
+ /**
22
+ * Error thrown when transparency log verification fails
23
+ */
24
+ export declare class TLogError extends VerificationError {
25
+ constructor(message: string);
26
+ }
27
+ /**
28
+ * Error thrown when signature verification fails
29
+ */
30
+ export declare class SignatureError extends VerificationError {
31
+ constructor(message: string);
32
+ }
33
+ /**
34
+ * Error thrown when policy verification fails
35
+ */
36
+ export declare class PolicyError extends VerificationError {
37
+ constructor(message: string);
38
+ }
39
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IACvB,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAKjD;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,iBAAiB;gBACvC,OAAO,EAAE,MAAM;CAK5B;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,iBAAiB;gBACzC,OAAO,EAAE,MAAM;CAK5B;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,iBAAiB;gBAClC,OAAO,EAAE,MAAM;CAK5B;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,iBAAiB;gBACvC,OAAO,EAAE,MAAM;CAK5B;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,iBAAiB;gBACpC,OAAO,EAAE,MAAM;CAK5B"}
package/dist/errors.js ADDED
@@ -0,0 +1,79 @@
1
+ /*
2
+ Copyright 2023 The Sigstore Authors.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */
16
+ /**
17
+ * Base class for all verification errors
18
+ * Provides structured error handling with error codes
19
+ */
20
+ export class VerificationError extends Error {
21
+ code;
22
+ constructor(code, message) {
23
+ super(message);
24
+ this.code = code;
25
+ this.name = 'VerificationError';
26
+ Object.setPrototypeOf(this, VerificationError.prototype);
27
+ }
28
+ }
29
+ /**
30
+ * Error thrown when timestamp verification fails
31
+ */
32
+ export class TimestampError extends VerificationError {
33
+ constructor(message) {
34
+ super('TIMESTAMP_ERROR', message);
35
+ this.name = 'TimestampError';
36
+ Object.setPrototypeOf(this, TimestampError.prototype);
37
+ }
38
+ }
39
+ /**
40
+ * Error thrown when certificate verification fails
41
+ */
42
+ export class CertificateError extends VerificationError {
43
+ constructor(message) {
44
+ super('CERTIFICATE_ERROR', message);
45
+ this.name = 'CertificateError';
46
+ Object.setPrototypeOf(this, CertificateError.prototype);
47
+ }
48
+ }
49
+ /**
50
+ * Error thrown when transparency log verification fails
51
+ */
52
+ export class TLogError extends VerificationError {
53
+ constructor(message) {
54
+ super('TLOG_ERROR', message);
55
+ this.name = 'TLogError';
56
+ Object.setPrototypeOf(this, TLogError.prototype);
57
+ }
58
+ }
59
+ /**
60
+ * Error thrown when signature verification fails
61
+ */
62
+ export class SignatureError extends VerificationError {
63
+ constructor(message) {
64
+ super('SIGNATURE_ERROR', message);
65
+ this.name = 'SignatureError';
66
+ Object.setPrototypeOf(this, SignatureError.prototype);
67
+ }
68
+ }
69
+ /**
70
+ * Error thrown when policy verification fails
71
+ */
72
+ export class PolicyError extends VerificationError {
73
+ constructor(message) {
74
+ super('POLICY_ERROR', message);
75
+ this.name = 'PolicyError';
76
+ Object.setPrototypeOf(this, PolicyError.prototype);
77
+ }
78
+ }
79
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;EAcE;AAEF;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACvB;IAAnB,YAAmB,IAAY,EAAE,OAAe;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,SAAI,GAAJ,IAAI,CAAQ;QAE7B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,iBAAiB;IACnD,YAAY,OAAe;QACzB,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,iBAAiB;IACrD,YAAY,OAAe;QACzB,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,iBAAiB;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,iBAAiB;IACnD,YAAY,OAAe;QACzB,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,iBAAiB;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ export { SigstoreVerifier } from "./sigstore.js";
2
+ export type { SigstoreVerifierOptions } from "./sigstore.js";
3
+ export type { SigstoreBundle, TLogEntry, VerificationMaterial, MessageSignature, TimestampVerificationData, RFC3161Timestamp } from "./bundle.js";
4
+ export type { TrustedRoot, Sigstore, RawTimestampAuthority } from "./interfaces.js";
5
+ export { VerificationError, TimestampError, CertificateError, TLogError, SignatureError, PolicyError, } from "./errors.js";
6
+ export { verifyRFC3161Timestamp, verifyBundleTimestamp } from "./timestamp/tsa.js";
7
+ export { TrustedRootProvider, type TrustedRootProviderOptions } from "./trust/tuf.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClJ,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export { SigstoreVerifier } from "./sigstore.js";
2
+ export { VerificationError, TimestampError, CertificateError, TLogError, SignatureError, PolicyError, } from "./errors.js";
3
+ export { verifyRFC3161Timestamp, verifyBundleTimestamp } from "./timestamp/tsa.js";
4
+ export { TrustedRootProvider } from "./trust/tuf.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAmC,MAAM,gBAAgB,CAAC"}