@freedomofpress/sigstore-browser 0.1.0 → 0.1.2

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 (133) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +3 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/interfaces.d.ts +1 -15
  8. package/dist/interfaces.d.ts.map +1 -1
  9. package/dist/interfaces.js +2 -18
  10. package/dist/interfaces.js.map +1 -1
  11. package/dist/rfc3161/timestamp.d.ts +1 -1
  12. package/dist/rfc3161/timestamp.d.ts.map +1 -1
  13. package/dist/rfc3161/timestamp.js +3 -5
  14. package/dist/rfc3161/timestamp.js.map +1 -1
  15. package/dist/rfc3161/tstinfo.d.ts +1 -1
  16. package/dist/rfc3161/tstinfo.d.ts.map +1 -1
  17. package/dist/rfc3161/tstinfo.js +18 -4
  18. package/dist/rfc3161/tstinfo.js.map +1 -1
  19. package/dist/sigstore.d.ts +1 -1
  20. package/dist/sigstore.d.ts.map +1 -1
  21. package/dist/sigstore.js +6 -8
  22. package/dist/sigstore.js.map +1 -1
  23. package/dist/timestamp/tsa.d.ts +1 -1
  24. package/dist/timestamp/tsa.d.ts.map +1 -1
  25. package/dist/timestamp/tsa.js +4 -5
  26. package/dist/timestamp/tsa.js.map +1 -1
  27. package/dist/tlog/body.js +1 -1
  28. package/dist/tlog/body.js.map +1 -1
  29. package/dist/tlog/checkpoint.d.ts.map +1 -1
  30. package/dist/tlog/checkpoint.js +6 -7
  31. package/dist/tlog/checkpoint.js.map +1 -1
  32. package/dist/tlog/dsse.js +3 -3
  33. package/dist/tlog/dsse.js.map +1 -1
  34. package/dist/tlog/hashedrekord.js +1 -1
  35. package/dist/tlog/hashedrekord.js.map +1 -1
  36. package/dist/tlog/intoto.js +2 -2
  37. package/dist/tlog/intoto.js.map +1 -1
  38. package/dist/tlog/merkle.js +4 -4
  39. package/dist/tlog/merkle.js.map +1 -1
  40. package/dist/trust/tuf.d.ts +1 -1
  41. package/dist/trust/tuf.d.ts.map +1 -1
  42. package/dist/trust/tuf.js +4 -4
  43. package/dist/trust/tuf.js.map +1 -1
  44. package/dist/x509/cert.d.ts +1 -1
  45. package/dist/x509/cert.d.ts.map +1 -1
  46. package/dist/x509/cert.js +4 -7
  47. package/dist/x509/cert.js.map +1 -1
  48. package/dist/x509/chain.d.ts.map +1 -1
  49. package/dist/x509/chain.js +16 -5
  50. package/dist/x509/chain.js.map +1 -1
  51. package/dist/x509/ext.d.ts +1 -1
  52. package/dist/x509/ext.d.ts.map +1 -1
  53. package/dist/x509/ext.js +17 -3
  54. package/dist/x509/ext.js.map +1 -1
  55. package/dist/x509/sct.d.ts.map +1 -1
  56. package/dist/x509/sct.js +2 -4
  57. package/dist/x509/sct.js.map +1 -1
  58. package/package.json +8 -4
  59. package/src/cli.ts +6 -1
  60. package/src/index.ts +3 -0
  61. package/src/interfaces.ts +2 -17
  62. package/src/rfc3161/timestamp.ts +3 -5
  63. package/src/rfc3161/tstinfo.ts +3 -5
  64. package/src/sigstore.ts +17 -16
  65. package/src/timestamp/tsa.ts +5 -6
  66. package/src/tlog/body.ts +1 -1
  67. package/src/tlog/checkpoint.ts +13 -7
  68. package/src/tlog/dsse.ts +3 -3
  69. package/src/tlog/hashedrekord.ts +1 -1
  70. package/src/tlog/intoto.ts +2 -2
  71. package/src/tlog/merkle.ts +4 -4
  72. package/src/trust/tuf.ts +6 -6
  73. package/src/x509/cert.ts +11 -7
  74. package/src/x509/chain.ts +6 -6
  75. package/src/x509/ext.ts +2 -4
  76. package/src/x509/sct.ts +2 -4
  77. package/vite.config.playwright.ts +4 -16
  78. package/dist/asn1/error.d.ts +0 -5
  79. package/dist/asn1/error.d.ts.map +0 -1
  80. package/dist/asn1/error.js +0 -20
  81. package/dist/asn1/error.js.map +0 -1
  82. package/dist/asn1/index.d.ts +0 -2
  83. package/dist/asn1/index.d.ts.map +0 -1
  84. package/dist/asn1/index.js +0 -17
  85. package/dist/asn1/index.js.map +0 -1
  86. package/dist/asn1/length.d.ts +0 -4
  87. package/dist/asn1/length.d.ts.map +0 -1
  88. package/dist/asn1/length.js +0 -59
  89. package/dist/asn1/length.js.map +0 -1
  90. package/dist/asn1/obj.d.ts +0 -15
  91. package/dist/asn1/obj.d.ts.map +0 -1
  92. package/dist/asn1/obj.js +0 -153
  93. package/dist/asn1/obj.js.map +0 -1
  94. package/dist/asn1/parse.d.ts +0 -7
  95. package/dist/asn1/parse.d.ts.map +0 -1
  96. package/dist/asn1/parse.js +0 -118
  97. package/dist/asn1/parse.js.map +0 -1
  98. package/dist/asn1/tag.d.ts +0 -17
  99. package/dist/asn1/tag.d.ts.map +0 -1
  100. package/dist/asn1/tag.js +0 -86
  101. package/dist/asn1/tag.js.map +0 -1
  102. package/dist/canonicalize.d.ts +0 -2
  103. package/dist/canonicalize.d.ts.map +0 -1
  104. package/dist/canonicalize.js +0 -64
  105. package/dist/canonicalize.js.map +0 -1
  106. package/dist/crypto.d.ts +0 -5
  107. package/dist/crypto.d.ts.map +0 -1
  108. package/dist/crypto.js +0 -260
  109. package/dist/crypto.js.map +0 -1
  110. package/dist/encoding.d.ts +0 -17
  111. package/dist/encoding.d.ts.map +0 -1
  112. package/dist/encoding.js +0 -112
  113. package/dist/encoding.js.map +0 -1
  114. package/dist/pem.d.ts +0 -3
  115. package/dist/pem.d.ts.map +0 -1
  116. package/dist/pem.js +0 -41
  117. package/dist/pem.js.map +0 -1
  118. package/dist/stream.d.ts +0 -22
  119. package/dist/stream.d.ts.map +0 -1
  120. package/dist/stream.js +0 -114
  121. package/dist/stream.js.map +0 -1
  122. package/src/asn1/error.ts +0 -18
  123. package/src/asn1/index.ts +0 -16
  124. package/src/asn1/length.ts +0 -71
  125. package/src/asn1/obj.ts +0 -184
  126. package/src/asn1/parse.ts +0 -146
  127. package/src/asn1/tag.ts +0 -105
  128. package/src/canonicalize.ts +0 -61
  129. package/src/crypto.ts +0 -310
  130. package/src/encoding.ts +0 -141
  131. package/src/pem.ts +0 -48
  132. package/src/stream.ts +0 -141
  133. package/src/types/tuf-browser.d.ts +0 -13
@@ -1,15 +0,0 @@
1
- import { ASN1Tag } from "./tag.js";
2
- export declare class ASN1Obj {
3
- readonly tag: ASN1Tag;
4
- readonly subs: ASN1Obj[];
5
- readonly value: Uint8Array;
6
- constructor(tag: ASN1Tag, value: Uint8Array, subs: ASN1Obj[]);
7
- static parseBuffer(buf: Uint8Array): ASN1Obj;
8
- toDER(): Uint8Array;
9
- toBoolean(): boolean;
10
- toInteger(): bigint;
11
- toOID(): string;
12
- toDate(): Date;
13
- toBitString(): number[];
14
- }
15
- //# sourceMappingURL=obj.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"obj.d.ts","sourceRoot":"","sources":["../../src/asn1/obj.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,qBAAa,OAAO;IAClB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;gBAEf,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;WAO9C,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAI5C,KAAK,IAAI,UAAU;IA2BnB,SAAS,IAAI,OAAO;IAUpB,SAAS,IAAI,MAAM;IAUnB,KAAK,IAAI,MAAM;IAUf,MAAM,IAAI,IAAI;IAcd,WAAW,IAAI,MAAM,EAAE;CAO/B"}
package/dist/asn1/obj.js DELETED
@@ -1,153 +0,0 @@
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
- import { toArrayBuffer } from "../encoding.js";
17
- import { ByteStream } from "../stream.js";
18
- import { ASN1ParseError, ASN1TypeError } from "./error.js";
19
- import { decodeLength, encodeLength } from "./length.js";
20
- import { parseBitString, parseBoolean, parseInteger, parseOID, parseTime, } from "./parse.js";
21
- import { ASN1Tag } from "./tag.js";
22
- export class ASN1Obj {
23
- tag;
24
- subs;
25
- value;
26
- constructor(tag, value, subs) {
27
- this.tag = tag;
28
- this.value = value;
29
- this.subs = subs;
30
- }
31
- // Constructs an ASN.1 object from a Buffer of DER-encoded bytes.
32
- static parseBuffer(buf) {
33
- return parseStream(new ByteStream(toArrayBuffer(buf)));
34
- }
35
- toDER() {
36
- const valueStream = new ByteStream();
37
- if (this.subs.length > 0) {
38
- for (const sub of this.subs) {
39
- valueStream.appendView(sub.toDER());
40
- }
41
- }
42
- else {
43
- valueStream.appendView(this.value);
44
- }
45
- const value = valueStream.buffer;
46
- // Concat tag/length/value
47
- const obj = new ByteStream();
48
- obj.appendChar(this.tag.toDER());
49
- obj.appendView(encodeLength(value.length));
50
- obj.appendView(value);
51
- return obj.buffer;
52
- }
53
- /////////////////////////////////////////////////////////////////////////////
54
- // Convenience methods for parsing ASN.1 primitives into JS types
55
- // Returns the ASN.1 object's value as a boolean. Throws an error if the
56
- // object is not a boolean.
57
- toBoolean() {
58
- if (!this.tag.isBoolean()) {
59
- throw new ASN1TypeError("not a boolean");
60
- }
61
- return parseBoolean(this.value);
62
- }
63
- // Returns the ASN.1 object's value as a BigInt. Throws an error if the
64
- // object is not an integer.
65
- toInteger() {
66
- if (!this.tag.isInteger()) {
67
- throw new ASN1TypeError("not an integer");
68
- }
69
- return parseInteger(this.value);
70
- }
71
- // Returns the ASN.1 object's value as an OID string. Throws an error if the
72
- // object is not an OID.
73
- toOID() {
74
- if (!this.tag.isOID()) {
75
- throw new ASN1TypeError("not an OID");
76
- }
77
- return parseOID(this.value);
78
- }
79
- // Returns the ASN.1 object's value as a Date. Throws an error if the object
80
- // is not either a UTCTime or a GeneralizedTime.
81
- toDate() {
82
- switch (true) {
83
- case this.tag.isUTCTime():
84
- return parseTime(this.value, true);
85
- case this.tag.isGeneralizedTime():
86
- return parseTime(this.value, false);
87
- default:
88
- throw new ASN1TypeError("not a date");
89
- }
90
- }
91
- // Returns the ASN.1 object's value as a number[] where each number is the
92
- // value of a bit in the bit string. Throws an error if the object is not a
93
- // bit string.
94
- toBitString() {
95
- if (!this.tag.isBitString()) {
96
- throw new ASN1TypeError("not a bit string");
97
- }
98
- return parseBitString(this.value);
99
- }
100
- }
101
- /////////////////////////////////////////////////////////////////////////////
102
- // Internal stream parsing functions
103
- function parseStream(stream) {
104
- // Parse tag, length, and value from stream
105
- const tag = new ASN1Tag(stream.getUint8());
106
- const len = decodeLength(stream);
107
- const value = stream.slice(stream.position, len);
108
- const start = stream.position;
109
- let subs = [];
110
- // If the object is constructed, parse its children. Sometimes, children
111
- // are embedded in OCTESTRING objects, so we need to check those
112
- // for children as well.
113
- if (tag.constructed) {
114
- subs = collectSubs(stream, len);
115
- }
116
- else if (tag.isOctetString()) {
117
- // Attempt to parse children of OCTETSTRING objects. If anything fails,
118
- // assume the object is not constructed and treat as primitive.
119
- try {
120
- subs = collectSubs(stream, len);
121
- }
122
- catch {
123
- // Fail silently and treat as primitive
124
- }
125
- }
126
- // If there are no children, move stream cursor to the end of the object
127
- if (subs.length === 0) {
128
- stream.seek(start + len);
129
- }
130
- return new ASN1Obj(tag, value, subs);
131
- }
132
- function collectSubs(stream, len) {
133
- // Calculate end of object content
134
- const end = stream.position + len;
135
- // Make sure there are enough bytes left in the stream. This should never
136
- // happen, cause it'll get caught when the stream is sliced in parseStream.
137
- // Leaving as an extra check just in case.
138
- /* istanbul ignore if */
139
- if (end > stream.length) {
140
- throw new ASN1ParseError("invalid length");
141
- }
142
- // Parse all children
143
- const subs = [];
144
- while (stream.position < end) {
145
- subs.push(parseStream(stream));
146
- }
147
- // When we're done parsing children, we should be at the end of the object
148
- if (stream.position !== end) {
149
- throw new ASN1ParseError("invalid length");
150
- }
151
- return subs;
152
- }
153
- //# sourceMappingURL=obj.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"obj.js","sourceRoot":"","sources":["../../src/asn1/obj.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export declare function parseInteger(buf: Uint8Array): bigint;
2
- export declare function parseStringASCII(buf: Uint8Array): string;
3
- export declare function parseTime(buf: Uint8Array, shortYear: boolean): Date;
4
- export declare function parseOID(buf: Uint8Array): string;
5
- export declare function parseBoolean(buf: Uint8Array): boolean;
6
- export declare function parseBitString(buf: Uint8Array): number[];
7
- //# sourceMappingURL=parse.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/asn1/parse.ts"],"names":[],"mappings":"AAyBA,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CA2BpD;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAExD;AAID,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAqBnE;AAID,wBAAgB,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CA0BhD;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAErD;AAID,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CAsBxD"}
@@ -1,118 +0,0 @@
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
- import { Uint8ArrayToString } from "../encoding.js";
17
- const RE_TIME_SHORT_YEAR = /^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/;
18
- const RE_TIME_LONG_YEAR = /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/;
19
- // Parse a BigInt from the DER-encoded buffer
20
- // https://learn.microsoft.com/en-us/windows/win32/seccertenroll/about-integer
21
- export function parseInteger(buf) {
22
- let pos = 0;
23
- const end = buf.length;
24
- let val = buf[pos];
25
- const neg = val > 0x7f;
26
- // Consume any padding bytes
27
- const pad = neg ? 0xff : 0x00;
28
- while (val == pad && ++pos < end) {
29
- val = buf[pos];
30
- }
31
- // Calculate remaining bytes to read
32
- const len = end - pos;
33
- if (len === 0)
34
- return BigInt(neg ? -1 : 0);
35
- // Handle two's complement for negative numbers
36
- val = neg ? val - 256 : val;
37
- // Parse remaining bytes
38
- let n = BigInt(val);
39
- for (let i = pos + 1; i < end; ++i) {
40
- n = n * BigInt(256) + BigInt(buf[i]);
41
- }
42
- return n;
43
- }
44
- // Parse an ASCII string from the DER-encoded buffer
45
- // https://learn.microsoft.com/en-us/windows/win32/seccertenroll/about-basic-types#boolean
46
- export function parseStringASCII(buf) {
47
- return Uint8ArrayToString(buf);
48
- }
49
- // Parse a Date from the DER-encoded buffer
50
- // https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.5.1
51
- export function parseTime(buf, shortYear) {
52
- const timeStr = parseStringASCII(buf);
53
- // Parse the time string into matches - captured groups start at index 1
54
- const m = shortYear
55
- ? RE_TIME_SHORT_YEAR.exec(timeStr)
56
- : RE_TIME_LONG_YEAR.exec(timeStr);
57
- if (!m) {
58
- throw new Error("invalid time");
59
- }
60
- // Translate dates with a 2-digit year to 4 digits per the spec
61
- if (shortYear) {
62
- let year = Number(m[1]);
63
- year += year >= 50 ? 1900 : 2000;
64
- m[1] = year.toString();
65
- }
66
- // Translate to ISO8601 format and parse
67
- return new Date(`${m[1]}-${m[2]}-${m[3]}T${m[4]}:${m[5]}:${m[6]}Z`);
68
- }
69
- // Parse an OID from the DER-encoded buffer
70
- // https://learn.microsoft.com/en-us/windows/win32/seccertenroll/about-object-identifier
71
- export function parseOID(buf) {
72
- let pos = 0;
73
- const end = buf.length;
74
- // Consume first byte which encodes the first two OID components
75
- let n = buf[pos++];
76
- const first = Math.floor(n / 40);
77
- const second = n % 40;
78
- let oid = `${first}.${second}`;
79
- // Consume remaining bytes
80
- let val = 0;
81
- for (; pos < end; ++pos) {
82
- n = buf[pos];
83
- val = (val << 7) + (n & 0x7f);
84
- // If the left-most bit is NOT set, then this is the last byte in the
85
- // sequence and we can add the value to the OID and reset the accumulator
86
- if ((n & 0x80) === 0) {
87
- oid += `.${val}`;
88
- val = 0;
89
- }
90
- }
91
- return oid;
92
- }
93
- // Parse a boolean from the DER-encoded buffer
94
- // https://learn.microsoft.com/en-us/windows/win32/seccertenroll/about-basic-types#boolean
95
- export function parseBoolean(buf) {
96
- return buf[0] !== 0;
97
- }
98
- // Parse a bit string from the DER-encoded buffer
99
- // https://learn.microsoft.com/en-us/windows/win32/seccertenroll/about-bit-string
100
- export function parseBitString(buf) {
101
- // First byte tell us how many unused bits are in the last byte
102
- const unused = buf[0];
103
- const start = 1;
104
- const end = buf.length;
105
- const bits = [];
106
- for (let i = start; i < end; ++i) {
107
- const byte = buf[i];
108
- // The skip value is only used for the last byte
109
- const skip = i === end - 1 ? unused : 0;
110
- // Iterate over each bit in the byte (most significant first)
111
- for (let j = 7; j >= skip; --j) {
112
- // Read the bit and add it to the bit string
113
- bits.push((byte >> j) & 0x01);
114
- }
115
- }
116
- return bits;
117
- }
118
- //# sourceMappingURL=parse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/asn1/parse.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- export declare class ASN1Tag {
2
- readonly number: number;
3
- readonly constructed: boolean;
4
- readonly class: number;
5
- constructor(enc: number);
6
- isUniversal(): boolean;
7
- isContextSpecific(num?: number): boolean;
8
- isBoolean(): boolean;
9
- isInteger(): boolean;
10
- isBitString(): boolean;
11
- isOctetString(): boolean;
12
- isOID(): boolean;
13
- isUTCTime(): boolean;
14
- isGeneralizedTime(): boolean;
15
- toDER(): number;
16
- }
17
- //# sourceMappingURL=tag.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/asn1/tag.ts"],"names":[],"mappings":"AAsCA,qBAAa,OAAO;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,GAAG,EAAE,MAAM;IAmBhB,WAAW,IAAI,OAAO;IAItB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO;IAKxC,SAAS,IAAI,OAAO;IAIpB,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,OAAO;IAItB,aAAa,IAAI,OAAO;IAIxB,KAAK,IAAI,OAAO;IAMhB,SAAS,IAAI,OAAO;IAIpB,iBAAiB,IAAI,OAAO;IAI5B,KAAK,IAAI,MAAM;CAGvB"}
package/dist/asn1/tag.js DELETED
@@ -1,86 +0,0 @@
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
- import { ASN1ParseError } from "./error.js";
17
- const UNIVERSAL_TAG = {
18
- BOOLEAN: 0x01,
19
- INTEGER: 0x02,
20
- BIT_STRING: 0x03,
21
- OCTET_STRING: 0x04,
22
- OBJECT_IDENTIFIER: 0x06,
23
- SEQUENCE: 0x10,
24
- SET: 0x11,
25
- PRINTABLE_STRING: 0x13,
26
- UTC_TIME: 0x17,
27
- GENERALIZED_TIME: 0x18,
28
- };
29
- const TAG_CLASS = {
30
- UNIVERSAL: 0x00,
31
- APPLICATION: 0x01,
32
- CONTEXT_SPECIFIC: 0x02,
33
- PRIVATE: 0x03,
34
- };
35
- // https://learn.microsoft.com/en-us/windows/win32/seccertenroll/about-encoded-tag-bytes
36
- export class ASN1Tag {
37
- number;
38
- constructed;
39
- class;
40
- constructor(enc) {
41
- // Bits 0 through 4 are the tag number
42
- this.number = enc & 0x1f;
43
- // Bit 5 is the constructed bit
44
- this.constructed = (enc & 0x20) === 0x20;
45
- // Bit 6 & 7 are the class
46
- this.class = enc >> 6;
47
- if (this.number === 0x1f) {
48
- throw new ASN1ParseError("long form tags not supported");
49
- }
50
- if (this.class === TAG_CLASS.UNIVERSAL && this.number === 0x00) {
51
- throw new ASN1ParseError("unsupported tag 0x00");
52
- }
53
- }
54
- isUniversal() {
55
- return this.class === TAG_CLASS.UNIVERSAL;
56
- }
57
- isContextSpecific(num) {
58
- const res = this.class === TAG_CLASS.CONTEXT_SPECIFIC;
59
- return num !== undefined ? res && this.number === num : res;
60
- }
61
- isBoolean() {
62
- return this.isUniversal() && this.number === UNIVERSAL_TAG.BOOLEAN;
63
- }
64
- isInteger() {
65
- return this.isUniversal() && this.number === UNIVERSAL_TAG.INTEGER;
66
- }
67
- isBitString() {
68
- return this.isUniversal() && this.number === UNIVERSAL_TAG.BIT_STRING;
69
- }
70
- isOctetString() {
71
- return this.isUniversal() && this.number === UNIVERSAL_TAG.OCTET_STRING;
72
- }
73
- isOID() {
74
- return (this.isUniversal() && this.number === UNIVERSAL_TAG.OBJECT_IDENTIFIER);
75
- }
76
- isUTCTime() {
77
- return this.isUniversal() && this.number === UNIVERSAL_TAG.UTC_TIME;
78
- }
79
- isGeneralizedTime() {
80
- return this.isUniversal() && this.number === UNIVERSAL_TAG.GENERALIZED_TIME;
81
- }
82
- toDER() {
83
- return this.number | (this.constructed ? 0x20 : 0x00) | (this.class << 6);
84
- }
85
- }
86
- //# sourceMappingURL=tag.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/asn1/tag.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function canonicalize(object: object): string;
2
- //# sourceMappingURL=canonicalize.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canonicalize.d.ts","sourceRoot":"","sources":["../src/canonicalize.ts"],"names":[],"mappings":"AAkBA,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA0CnD"}
@@ -1,64 +0,0 @@
1
- // From https://github.com/theupdateframework/tuf-js/blob/38d537ea883e8bb38ee6ab17b5f59ee479d0eab2/packages/canonical-json/lib/index.js
2
- const COMMA = ",";
3
- const COLON = ":";
4
- const LEFT_SQUARE_BRACKET = "[";
5
- const RIGHT_SQUARE_BRACKET = "]";
6
- const LEFT_CURLY_BRACKET = "{";
7
- const RIGHT_CURLY_BRACKET = "}";
8
- function canonicalizeString(string) {
9
- const escapedString = string.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
10
- return '"' + escapedString + '"';
11
- }
12
- // Recursively encodes the supplied object according to the canonical JSON form
13
- // as specified at http://wiki.laptop.org/go/Canonical_JSON. It's a restricted
14
- // dialect of JSON in which keys are lexically sorted, floats are not allowed,
15
- // and only double quotes and backslashes are escaped.
16
- export function canonicalize(object) {
17
- const buffer = [];
18
- if (typeof object === "string") {
19
- buffer.push(canonicalizeString(object));
20
- }
21
- else if (typeof object === "boolean") {
22
- buffer.push(JSON.stringify(object));
23
- }
24
- else if (Number.isInteger(object)) {
25
- buffer.push(JSON.stringify(object));
26
- }
27
- else if (object === null) {
28
- buffer.push(JSON.stringify(object));
29
- }
30
- else if (Array.isArray(object)) {
31
- buffer.push(LEFT_SQUARE_BRACKET);
32
- let first = true;
33
- object.forEach((element) => {
34
- if (!first) {
35
- buffer.push(COMMA);
36
- }
37
- first = false;
38
- buffer.push(canonicalize(element));
39
- });
40
- buffer.push(RIGHT_SQUARE_BRACKET);
41
- }
42
- else if (typeof object === "object") {
43
- buffer.push(LEFT_CURLY_BRACKET);
44
- let first = true;
45
- Object.keys(object)
46
- .sort()
47
- .forEach((property) => {
48
- if (!first) {
49
- buffer.push(COMMA);
50
- }
51
- first = false;
52
- buffer.push(canonicalizeString(property));
53
- buffer.push(COLON);
54
- // eslint-disable-next-line
55
- buffer.push(canonicalize(object[property])); // 'any' as a fallback
56
- });
57
- buffer.push(RIGHT_CURLY_BRACKET);
58
- }
59
- else {
60
- throw new TypeError("cannot encode " + object);
61
- }
62
- return buffer.join("");
63
- }
64
- //# sourceMappingURL=canonicalize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canonicalize.js","sourceRoot":"","sources":["../src/canonicalize.ts"],"names":[],"mappings":"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"}
package/dist/crypto.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export declare function importKey(keytype: string, scheme: string, key: string): Promise<CryptoKey>;
2
- export declare function verifySignature(key: CryptoKey, signed: Uint8Array, sig: Uint8Array, hash?: string): Promise<boolean>;
3
- export declare function verifySignatureOverDigest(key: CryptoKey, digest: Uint8Array, sig: Uint8Array): Promise<boolean>;
4
- export { uint8ArrayEqual as bufferEqual } from "./encoding.js";
5
- //# sourceMappingURL=crypto.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAgFA,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,SAAS,CAAC,CA2EpB;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,UAAU,EACf,IAAI,GAAE,MAAiB,GACtB,OAAO,CAAC,OAAO,CAAC,CAwFlB;AAOD,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,OAAO,CAAC,CA0ClB;AAED,OAAO,EAAE,eAAe,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC"}