saro-dat 1.1.2 → 2.0.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.
- package/dist/crypto.d.ts +3 -2
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +15 -19
- package/dist/crypto.js.map +1 -1
- package/dist/dat.bank.d.ts +3 -3
- package/dist/dat.bank.d.ts.map +1 -1
- package/dist/dat.bank.js +5 -6
- package/dist/dat.bank.js.map +1 -1
- package/dist/dat.d.ts +7 -7
- package/dist/dat.d.ts.map +1 -1
- package/dist/dat.js +25 -20
- package/dist/dat.js.map +1 -1
- package/dist/dat.key.d.ts +6 -3
- package/dist/dat.key.d.ts.map +1 -1
- package/dist/dat.key.js +24 -16
- package/dist/dat.key.js.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/dist/signature.d.ts +4 -2
- package/dist/signature.d.ts.map +1 -1
- package/dist/signature.js +15 -20
- package/dist/signature.js.map +1 -1
- package/dist/util/DatArrayBuffer.d.ts +8 -0
- package/dist/util/DatArrayBuffer.d.ts.map +1 -0
- package/dist/util/DatArrayBuffer.js +45 -0
- package/dist/util/DatArrayBuffer.js.map +1 -0
- package/dist/util/DatArrayBufferLike.d.ts +4 -0
- package/dist/util/DatArrayBufferLike.d.ts.map +1 -0
- package/dist/util/DatArrayBufferLike.js +36 -0
- package/dist/util/DatArrayBufferLike.js.map +1 -0
- package/dist/util/DatBytes.d.ts +5 -0
- package/dist/util/DatBytes.d.ts.map +1 -0
- package/dist/util/DatBytes.js +30 -0
- package/dist/util/DatBytes.js.map +1 -0
- package/dist/util/DatInteger.d.ts +3 -0
- package/dist/util/DatInteger.d.ts.map +1 -0
- package/dist/util/DatInteger.js +19 -0
- package/dist/util/DatInteger.js.map +1 -0
- package/dist/util/DatUint8Array.d.ts +8 -0
- package/dist/util/DatUint8Array.d.ts.map +1 -0
- package/dist/util/DatUint8Array.js +73 -0
- package/dist/util/DatUint8Array.js.map +1 -0
- package/dist/util/DatUnixtime.d.ts +6 -0
- package/dist/util/DatUnixtime.d.ts.map +1 -0
- package/dist/util/DatUnixtime.js +16 -0
- package/dist/util/DatUnixtime.js.map +1 -0
- package/package.json +1 -1
package/dist/crypto.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type DatCryptoAlgorithm = "AES128GCMN" | "AES256GCMN";
|
|
2
|
+
export declare const DatCryptoAlgorithms: DatCryptoAlgorithm[];
|
|
2
3
|
type CryptoConfig = {
|
|
3
4
|
name: string;
|
|
4
5
|
length: number;
|
|
@@ -11,8 +12,8 @@ export declare class DatCryptoKey {
|
|
|
11
12
|
static generate(algorithm: DatCryptoAlgorithm): Promise<DatCryptoKey>;
|
|
12
13
|
static imports(algorithm: string, base64: string): Promise<DatCryptoKey>;
|
|
13
14
|
exports(): Promise<string>;
|
|
14
|
-
encrypt(data:
|
|
15
|
-
decrypt(data:
|
|
15
|
+
encrypt(data: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<ArrayBuffer>;
|
|
16
|
+
decrypt(data: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<ArrayBuffer>;
|
|
16
17
|
}
|
|
17
18
|
export {};
|
|
18
19
|
//# sourceMappingURL=crypto.d.ts.map
|
package/dist/crypto.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,YAAY,CAAC;AAC7D,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,EAAiC,CAAC;AAEtF,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAmBrD,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,SAAgB,SAAS,EAAE,kBAAkB,CAAC;IAC9C,SAAgB,GAAG,EAAE,SAAS,CAAC;gBAG3B,SAAS,EAAE,kBAAkB,EAC7B,GAAG,EAAE,SAAS,EACd,MAAM,GAAE,YAAyC;WAOxC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;WAQ9D,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IASxE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1B,OAAO,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAiBrF,OAAO,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;CAgB9F"}
|
package/dist/crypto.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DatArrayBuffer, } from "./index.js";
|
|
2
|
+
export const DatCryptoAlgorithms = ["AES128GCMN", "AES256GCMN"];
|
|
2
3
|
const CRYPTO_CONFIG = {
|
|
3
4
|
"AES128GCMN": { name: "AES-GCM", length: 128 },
|
|
4
5
|
"AES256GCMN": { name: "AES-GCM", length: 256 },
|
|
@@ -29,42 +30,37 @@ export class DatCryptoKey {
|
|
|
29
30
|
}
|
|
30
31
|
static async imports(algorithm, base64) {
|
|
31
32
|
const config = getCryptoConfig(algorithm);
|
|
32
|
-
const bytes =
|
|
33
|
+
const bytes = DatArrayBuffer.fromBase64Url(base64);
|
|
33
34
|
const key = await crypto.subtle.importKey("raw", bytes, { name: config.name }, true, ["encrypt", "decrypt"]);
|
|
34
35
|
return new DatCryptoKey(algorithm, key, config);
|
|
35
36
|
}
|
|
36
37
|
async exports() {
|
|
37
|
-
return toBase64Url(await crypto.subtle.exportKey("raw", this.key));
|
|
38
|
+
return DatArrayBuffer.toBase64Url(await crypto.subtle.exportKey("raw", this.key));
|
|
38
39
|
}
|
|
39
40
|
async encrypt(data) {
|
|
40
|
-
|
|
41
|
-
if (!
|
|
42
|
-
return
|
|
41
|
+
const buffer = DatArrayBuffer.from(data);
|
|
42
|
+
if (!buffer.byteLength) {
|
|
43
|
+
return buffer;
|
|
43
44
|
}
|
|
44
45
|
if (this.config.name == "AES-GCM") {
|
|
45
46
|
const nonce = new Uint8Array(12);
|
|
46
47
|
crypto.getRandomValues(nonce);
|
|
47
|
-
const encrypt = await crypto.subtle.encrypt({ name: this.config.name, iv: nonce }, this.key,
|
|
48
|
-
return
|
|
48
|
+
const encrypt = await crypto.subtle.encrypt({ name: this.config.name, iv: nonce }, this.key, buffer);
|
|
49
|
+
return DatArrayBuffer.concat(nonce, encrypt);
|
|
49
50
|
}
|
|
50
51
|
throw unsupportedAlgorithm(this.algorithm);
|
|
51
52
|
}
|
|
52
53
|
async decrypt(data) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
else if (!(data instanceof ArrayBuffer)) {
|
|
57
|
-
data = toArrayBuffer(data);
|
|
58
|
-
}
|
|
59
|
-
if (!data.byteLength) {
|
|
60
|
-
return data;
|
|
54
|
+
const buffer = DatArrayBuffer.fromBase64Url(data);
|
|
55
|
+
if (!buffer.byteLength) {
|
|
56
|
+
return buffer;
|
|
61
57
|
}
|
|
62
58
|
if (this.config.name == "AES-GCM") {
|
|
63
|
-
if (
|
|
59
|
+
if (buffer.byteLength <= 12) {
|
|
64
60
|
throw new Error("Invalid data length");
|
|
65
61
|
}
|
|
66
|
-
const nonce =
|
|
67
|
-
return await crypto.subtle.decrypt({ name: this.config.name, iv: nonce }, this.key,
|
|
62
|
+
const nonce = buffer.slice(0, 12);
|
|
63
|
+
return await crypto.subtle.decrypt({ name: this.config.name, iv: nonce }, this.key, buffer.slice(12));
|
|
68
64
|
}
|
|
69
65
|
throw unsupportedAlgorithm(this.algorithm);
|
|
70
66
|
}
|
package/dist/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,GACjB,MAAM,YAAY,CAAC;AAGpB,MAAM,CAAC,MAAM,mBAAmB,GAAyB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAItF,MAAM,aAAa,GAAiC;IAChD,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;IAC9C,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;CACjD,CAAC;AAEF,SAAS,oBAAoB,CAAC,SAAiB;IAC3C,OAAO,IAAI,KAAK,CAAC,qCAAqC,SAAS,EAAE,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACtC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,OAAO,YAAY;IACJ,MAAM,CAAe;IACtB,SAAS,CAAqB;IAC9B,GAAG,CAAY;IAE/B,YACI,SAA6B,EAC7B,GAAc,EACd,SAAuB,eAAe,CAAC,SAAS,CAAC;QAEjD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAA6B;QAC/C,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CACvC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAC7E,CAAC;QACF,OAAO,IAAI,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,MAAc;QAClD,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAClD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CACrC,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CACpE,CAAC;QACF,OAAO,IAAI,YAAY,CAAC,SAA+B,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,OAAO;QACT,OAAO,cAAc,CAAC,WAAW,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACrF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAsD;QAChE,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CACvC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAC1D,CAAC;YACF,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAsD;QAChE,MAAM,MAAM,GAAgB,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;YAChC,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAC9B,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CACpE,CAAC;QACN,CAAC;QACD,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;CACJ"}
|
package/dist/dat.bank.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DatKey, DatPayload, DatSignatureKeyOutOption } from "./index.js";
|
|
1
|
+
import { Dat, DatKey, DatPayload, DatSignatureKeyOutOption } from "./index.js";
|
|
2
2
|
export declare class DatBank {
|
|
3
3
|
private readonly issueKey;
|
|
4
4
|
private readonly verifyKeys;
|
|
@@ -6,7 +6,7 @@ export declare class DatBank {
|
|
|
6
6
|
static imports(format: string): Promise<DatBank>;
|
|
7
7
|
exports(datSignatureKeyOutOption: DatSignatureKeyOutOption): Promise<string>;
|
|
8
8
|
find(kid: string): DatKey | null;
|
|
9
|
-
toDat(plain:
|
|
10
|
-
toPayload(dat:
|
|
9
|
+
toDat(plain: ArrayBufferLike | Uint8Array | string | null | undefined, secure: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<string>;
|
|
10
|
+
toPayload(dat: Dat | string | undefined | null): Promise<DatPayload>;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=dat.bank.d.ts.map
|
package/dist/dat.bank.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dat.bank.d.ts","sourceRoot":"","sources":["../src/dat.bank.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"dat.bank.d.ts","sourceRoot":"","sources":["../src/dat.bank.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB,EAAe,MAAM,YAAY,CAAC;AAE3F,qBAAa,OAAO;IAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;gBAE1B,QAAQ,GAAE,MAAM,GAAG,IAAW,EAAE,UAAU,GAAE,MAAM,EAAO;WAKxD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBhD,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI1B,KAAK,CAAC,KAAK,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,MAAM,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAOzI,SAAS,CAAC,GAAG,EAAE,GAAG,GAAC,MAAM,GAAC,SAAS,GAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;CAUvE"}
|
package/dist/dat.bank.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DatKey,
|
|
1
|
+
import { Dat, DatKey, DatUnixtime, } from "./index.js";
|
|
2
2
|
export class DatBank {
|
|
3
3
|
issueKey;
|
|
4
4
|
verifyKeys;
|
|
@@ -7,7 +7,7 @@ export class DatBank {
|
|
|
7
7
|
this.verifyKeys = verifyKeys;
|
|
8
8
|
}
|
|
9
9
|
static async imports(format) {
|
|
10
|
-
const now =
|
|
10
|
+
const now = DatUnixtime.now();
|
|
11
11
|
const lines = format.split('\n').map(e => e.trim()).filter(e => !!e);
|
|
12
12
|
let keys = [];
|
|
13
13
|
for (const line of lines) {
|
|
@@ -34,13 +34,12 @@ export class DatBank {
|
|
|
34
34
|
throw new Error("Invalid DAT: Signing Key Does Not Exist");
|
|
35
35
|
}
|
|
36
36
|
async toPayload(dat) {
|
|
37
|
-
|
|
38
|
-
if (parts.errorFormat) {
|
|
37
|
+
if (!(dat = Dat.from(dat)).format) {
|
|
39
38
|
return Promise.reject("Invalid DAT: Format");
|
|
40
39
|
}
|
|
41
|
-
const key =
|
|
40
|
+
const key = this.find(dat.kid);
|
|
42
41
|
if (key != null) {
|
|
43
|
-
return key.toPayload(
|
|
42
|
+
return key.toPayload(dat);
|
|
44
43
|
}
|
|
45
44
|
return Promise.reject("Invalid DAT: KID Not Found");
|
|
46
45
|
}
|
package/dist/dat.bank.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dat.bank.js","sourceRoot":"","sources":["../src/dat.bank.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"dat.bank.js","sourceRoot":"","sources":["../src/dat.bank.ts"],"names":[],"mappings":"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"}
|
package/dist/dat.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export declare class
|
|
2
|
-
readonly
|
|
1
|
+
export declare class Dat {
|
|
2
|
+
readonly format: boolean;
|
|
3
3
|
readonly dat: string;
|
|
4
4
|
readonly expire: number;
|
|
5
5
|
readonly kid: string;
|
|
6
|
-
readonly plain:
|
|
7
|
-
readonly secure:
|
|
8
|
-
readonly signature:
|
|
9
|
-
constructor(dat: string);
|
|
10
|
-
static from(dat: string | undefined | null
|
|
6
|
+
readonly plain: ArrayBuffer;
|
|
7
|
+
readonly secure: ArrayBuffer;
|
|
8
|
+
readonly signature: ArrayBuffer;
|
|
9
|
+
constructor(dat: string | undefined | null);
|
|
10
|
+
static from(dat: Dat | string | undefined | null): Dat;
|
|
11
11
|
expired(): boolean;
|
|
12
12
|
body(): string;
|
|
13
13
|
}
|
package/dist/dat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dat.d.ts","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dat.d.ts","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"AAOA,qBAAa,GAAG;IACZ,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAS;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAM;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAK;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAM;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAsB;IACjD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAsB;IAClD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAsB;gBAEzC,GAAG,EAAE,MAAM,GAAC,SAAS,GAAC,IAAI;IAgBtC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAC,MAAM,GAAC,SAAS,GAAC,IAAI,GAAG,GAAG;IAOhD,OAAO,IAAI,OAAO;IAIlB,IAAI,IAAI,MAAM;CAGjB;AAED,qBAAa,UAAU;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEtB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;IAMnE,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,MAAM,IAAI,MAAM,CAEnB;CACJ"}
|
package/dist/dat.js
CHANGED
|
@@ -1,31 +1,36 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export class
|
|
3
|
-
|
|
4
|
-
dat;
|
|
1
|
+
import { DatBytes, DatArrayBuffer, DatInteger, DatUnixtime, } from "./index.js";
|
|
2
|
+
export class Dat {
|
|
3
|
+
format = false;
|
|
4
|
+
dat = '';
|
|
5
5
|
expire = 0;
|
|
6
6
|
kid = '';
|
|
7
|
-
plain =
|
|
8
|
-
secure =
|
|
9
|
-
signature =
|
|
7
|
+
plain = new ArrayBuffer(0);
|
|
8
|
+
secure = new ArrayBuffer(0);
|
|
9
|
+
signature = new ArrayBuffer(0);
|
|
10
10
|
constructor(dat) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
if (dat) {
|
|
12
|
+
const parts = (this.dat = dat || '').split('.');
|
|
13
|
+
if (dat && parts.length == 5) {
|
|
14
|
+
try {
|
|
15
|
+
this.expire = DatInteger.parse(parts[0]);
|
|
16
|
+
this.kid = parts[1];
|
|
17
|
+
this.plain = DatArrayBuffer.fromBase64Url(parts[2]);
|
|
18
|
+
this.secure = DatArrayBuffer.fromBase64Url(parts[3]);
|
|
19
|
+
this.signature = DatArrayBuffer.fromBase64Url(parts[4]);
|
|
20
|
+
this.format = (this.signature.byteLength > 0 && this.expire >= 0);
|
|
21
|
+
}
|
|
22
|
+
catch (e) { }
|
|
23
|
+
}
|
|
19
24
|
}
|
|
20
25
|
}
|
|
21
26
|
static from(dat) {
|
|
22
|
-
if (dat instanceof
|
|
27
|
+
if (dat instanceof Dat) {
|
|
23
28
|
return dat;
|
|
24
29
|
}
|
|
25
|
-
return new
|
|
30
|
+
return new Dat(dat);
|
|
26
31
|
}
|
|
27
32
|
expired() {
|
|
28
|
-
return this.
|
|
33
|
+
return !this.format || DatUnixtime.isPast(this.expire);
|
|
29
34
|
}
|
|
30
35
|
body() {
|
|
31
36
|
return this.dat.substring(0, this.dat.lastIndexOf('.'));
|
|
@@ -41,10 +46,10 @@ export class DatPayload {
|
|
|
41
46
|
this.secureBytes = secure;
|
|
42
47
|
}
|
|
43
48
|
get plain() {
|
|
44
|
-
return
|
|
49
|
+
return DatBytes.toUtf8(this.plainBytes);
|
|
45
50
|
}
|
|
46
51
|
get secure() {
|
|
47
|
-
return
|
|
52
|
+
return DatBytes.toUtf8(this.secureBytes);
|
|
48
53
|
}
|
|
49
54
|
}
|
|
50
55
|
//# sourceMappingURL=dat.js.map
|
package/dist/dat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dat.js","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"dat.js","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,cAAc,EACd,UAAU,EACV,WAAW,GACd,MAAM,YAAY,CAAC;AAEpB,MAAM,OAAO,GAAG;IACH,MAAM,GAAY,KAAK,CAAC;IACxB,GAAG,GAAW,EAAE,CAAC;IACjB,MAAM,GAAW,CAAC,CAAC;IACnB,GAAG,GAAW,EAAE,CAAC;IACjB,KAAK,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACzC,SAAS,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAErD,YAAY,GAA0B;QAClC,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrD,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxD,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;gBACtE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YAClB,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAA8B;QACtC,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC;QACf,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,OAAO;QACH,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;CACJ;AAED,MAAM,OAAO,UAAU;IACV,MAAM,CAAS;IACf,UAAU,CAAc;IACxB,WAAW,CAAc;IAElC,YAAY,MAAc,EAAE,KAAkB,EAAE,MAAmB;QAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QACL,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,MAAM;QACN,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;CACJ"}
|
package/dist/dat.key.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DatCryptoKey, DatPayload, DatSignatureKey,
|
|
1
|
+
import { Dat, DatCryptoKey, DatPayload, DatSignatureKey, DatSignatureKeyOutOption } from "./index.js";
|
|
2
2
|
export declare class DatKey {
|
|
3
3
|
readonly kid: string;
|
|
4
4
|
readonly signatureKey: DatSignatureKey;
|
|
@@ -10,8 +10,11 @@ export declare class DatKey {
|
|
|
10
10
|
exports(datSignatureKeyOutOption: DatSignatureKeyOutOption): Promise<string>;
|
|
11
11
|
static imports(format: string): Promise<DatKey>;
|
|
12
12
|
private static _import_ver_2;
|
|
13
|
-
toDat(plain:
|
|
14
|
-
toPayload(dat:
|
|
13
|
+
toDat(plain: ArrayBufferLike | Uint8Array | string | null | undefined, secure: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<string>;
|
|
14
|
+
toPayload(dat: Dat | string | undefined | null): Promise<DatPayload>;
|
|
15
|
+
isPreIssuance(): boolean;
|
|
16
|
+
isIssuable(): boolean;
|
|
17
|
+
expiredVerifying(): boolean;
|
|
15
18
|
hasSigningKey(): boolean;
|
|
16
19
|
}
|
|
17
20
|
//# sourceMappingURL=dat.key.d.ts.map
|
package/dist/dat.key.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dat.key.d.ts","sourceRoot":"","sources":["../src/dat.key.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"dat.key.d.ts","sourceRoot":"","sources":["../src/dat.key.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EAIH,YAAY,EAEZ,UAAU,EACV,eAAe,EACf,wBAAwB,EAE3B,MAAM,YAAY,CAAC;AAEpB,qBAAa,MAAM;IACf,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,YAAY,EAAE,eAAe,CAAC;IAC9C,SAAgB,SAAS,EAAE,YAAY,CAAC;IACxC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAG7B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,YAAY,EACvB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM;IAsBd,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;WAYrE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;mBAWhC,aAAa;IAU5B,KAAK,CAAC,KAAK,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,MAAM,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAWzI,SAAS,CAAC,GAAG,EAAE,GAAG,GAAC,MAAM,GAAC,SAAS,GAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IAcpE,aAAa,IAAI,OAAO;IAIxB,UAAU,IAAI,OAAO;IAKrB,gBAAgB,IAAI,OAAO;IAI3B,aAAa,IAAI,OAAO;CAG3B"}
|
package/dist/dat.key.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Dat, DAT_VERSION, DatArrayBuffer, DatBytes, DatCryptoKey, DatInteger, DatPayload, DatSignatureKey, DatUnixtime, } from "./index.js";
|
|
2
2
|
export class DatKey {
|
|
3
3
|
kid;
|
|
4
4
|
signatureKey;
|
|
@@ -10,13 +10,13 @@ export class DatKey {
|
|
|
10
10
|
if (kid.match(/[.\r\n]/) != null) {
|
|
11
11
|
throw new Error(`Invalid Kid: kid is not allowed ".", "\\r", "\\n"" ${kid}`);
|
|
12
12
|
}
|
|
13
|
-
if (!
|
|
13
|
+
if (!DatInteger.isBetween(issueBegin, 0)) {
|
|
14
14
|
throw new Error(`Invalid issueBegin: issueBegin is positive int or 0 ${issueBegin}`);
|
|
15
15
|
}
|
|
16
|
-
if (!
|
|
16
|
+
if (!DatInteger.isBetween(issueEnd, 0)) {
|
|
17
17
|
throw new Error(`Invalid issueEnd: issueEnd is positive int or 0 ${issueEnd}`);
|
|
18
18
|
}
|
|
19
|
-
if (!
|
|
19
|
+
if (!DatInteger.isBetween(tokenTtl, 1)) {
|
|
20
20
|
throw new Error(`Invalid tokenTtl: tokenTtl is positive int ${tokenTtl}`);
|
|
21
21
|
}
|
|
22
22
|
this.kid = kid;
|
|
@@ -58,29 +58,37 @@ export class DatKey {
|
|
|
58
58
|
return new DatKey(kid, signKey, cryptoKey, issueBegin, issueEnd, tokenTtl);
|
|
59
59
|
}
|
|
60
60
|
async toDat(plain, secure) {
|
|
61
|
-
const now =
|
|
61
|
+
const now = DatUnixtime.now();
|
|
62
62
|
const exp = now + this.tokenTtl;
|
|
63
63
|
const kid = this.kid;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const body = `${exp}.${kid}.${
|
|
67
|
-
const sign = toBase64Url(await this.signatureKey.sign(body));
|
|
64
|
+
const plainBase64 = DatBytes.toBase64Url(plain);
|
|
65
|
+
const securedBase64 = DatArrayBuffer.toBase64Url(await this.cryptoKey.encrypt(DatArrayBuffer.from(secure)));
|
|
66
|
+
const body = `${exp}.${kid}.${plainBase64}.${securedBase64}`;
|
|
67
|
+
const sign = DatArrayBuffer.toBase64Url(await this.signatureKey.sign(body));
|
|
68
68
|
return `${body}.${sign}`;
|
|
69
69
|
}
|
|
70
70
|
async toPayload(dat) {
|
|
71
|
-
|
|
72
|
-
if (
|
|
71
|
+
dat = Dat.from(dat);
|
|
72
|
+
if (!dat.format) {
|
|
73
73
|
return Promise.reject("Invalid DAT: Format");
|
|
74
74
|
}
|
|
75
|
-
if (
|
|
75
|
+
if (dat.expired()) {
|
|
76
76
|
return Promise.reject("Invalid DAT: Expired");
|
|
77
77
|
}
|
|
78
|
-
if (!await this.signatureKey.verify(
|
|
78
|
+
if (!await this.signatureKey.verify(dat.body(), dat.signature)) {
|
|
79
79
|
return Promise.reject('Invalid DAT: Signature');
|
|
80
80
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
return new DatPayload(dat.expire, dat.plain, await this.cryptoKey.decrypt(dat.secure));
|
|
82
|
+
}
|
|
83
|
+
isPreIssuance() {
|
|
84
|
+
return DatUnixtime.now() <= this.issueBegin;
|
|
85
|
+
}
|
|
86
|
+
isIssuable() {
|
|
87
|
+
const now = DatUnixtime.now();
|
|
88
|
+
return now > this.issueBegin && now <= this.issueEnd;
|
|
89
|
+
}
|
|
90
|
+
expiredVerifying() {
|
|
91
|
+
return DatUnixtime.isPast(this.issueEnd + this.tokenTtl);
|
|
84
92
|
}
|
|
85
93
|
hasSigningKey() {
|
|
86
94
|
return this.signatureKey.hasSigningKey();
|
package/dist/dat.key.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dat.key.js","sourceRoot":"","sources":["../src/dat.key.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"dat.key.js","sourceRoot":"","sources":["../src/dat.key.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export declare const DAT_VERSION = "2";
|
|
2
|
-
export * from
|
|
2
|
+
export * as DatInteger from "./util/DatInteger.js";
|
|
3
|
+
export * as DatUnixtime from "./util/DatUnixtime.js";
|
|
4
|
+
export * as DatBytes from "./util/DatBytes.js";
|
|
5
|
+
export * as DatArrayBufferLike from "./util/DatArrayBufferLike.js";
|
|
6
|
+
export * as DatArrayBuffer from "./util/DatArrayBuffer.js";
|
|
7
|
+
export * as DatUint8Array from "./util/DatUint8Array.js";
|
|
3
8
|
export * from "./crypto.js";
|
|
9
|
+
export * from "./signature.js";
|
|
10
|
+
export * from "./dat.js";
|
|
4
11
|
export * from "./dat.key.js";
|
|
5
12
|
export * from "./dat.bank.js";
|
|
6
|
-
export * from "./signature.js";
|
|
7
|
-
export * from "./util.bytes.js";
|
|
8
|
-
export * from "./util.base64.js";
|
|
9
|
-
export * from "./util.hex.js";
|
|
10
|
-
export * from "./util.misc.js";
|
|
11
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AACzD,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export const DAT_VERSION = "2";
|
|
2
|
-
export * from
|
|
2
|
+
export * as DatInteger from "./util/DatInteger.js";
|
|
3
|
+
export * as DatUnixtime from "./util/DatUnixtime.js";
|
|
4
|
+
export * as DatBytes from "./util/DatBytes.js";
|
|
5
|
+
export * as DatArrayBufferLike from "./util/DatArrayBufferLike.js";
|
|
6
|
+
export * as DatArrayBuffer from "./util/DatArrayBuffer.js";
|
|
7
|
+
export * as DatUint8Array from "./util/DatUint8Array.js";
|
|
3
8
|
export * from "./crypto.js";
|
|
9
|
+
export * from "./signature.js";
|
|
10
|
+
export * from "./dat.js";
|
|
4
11
|
export * from "./dat.key.js";
|
|
5
12
|
export * from "./dat.bank.js";
|
|
6
|
-
export * from "./signature.js";
|
|
7
|
-
export * from "./util.bytes.js";
|
|
8
|
-
export * from "./util.base64.js";
|
|
9
|
-
export * from "./util.hex.js";
|
|
10
|
-
export * from "./util.misc.js";
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAE/B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAE/B,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AACzD,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
package/dist/signature.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export type DatSignatureAlgorithm = "P256" | "P384" | "P521";
|
|
2
|
+
export declare const DatSignatureAlgorithms: DatSignatureAlgorithm[];
|
|
2
3
|
export type DatSignatureKeyOutOption = "FULL" | "SIGNING" | "VERIFYING";
|
|
4
|
+
export declare const DatSignatureKeyOutOptions: DatSignatureKeyOutOption[];
|
|
3
5
|
type SignatureConfig = {
|
|
4
6
|
name: string;
|
|
5
7
|
curve: string;
|
|
@@ -14,8 +16,8 @@ export declare class DatSignatureKey {
|
|
|
14
16
|
static generate(algorithm: DatSignatureAlgorithm): Promise<DatSignatureKey>;
|
|
15
17
|
static imports(algorithm: string, format: string): Promise<DatSignatureKey>;
|
|
16
18
|
exports(option: DatSignatureKeyOutOption): Promise<string>;
|
|
17
|
-
sign(body:
|
|
18
|
-
verify(body:
|
|
19
|
+
sign(body: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<ArrayBuffer>;
|
|
20
|
+
verify(body: ArrayBufferLike | Uint8Array | string | null | undefined, signature: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<boolean>;
|
|
19
21
|
hasSigningKey(): boolean;
|
|
20
22
|
}
|
|
21
23
|
export {};
|
package/dist/signature.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7D,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,EAA6B,CAAC;AACxF,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;AACxE,eAAO,MAAM,yBAAyB,EAAE,wBAAwB,EAAqC,CAAC;AAEtG,KAAK,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AA+CrE,qBAAa,eAAe;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,SAAgB,SAAS,EAAE,qBAAqB,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;gBAGrC,SAAS,EAAE,qBAAqB,EAChC,UAAU,EAAE,SAAS,GAAG,IAAI,EAC5B,YAAY,EAAE,SAAS,EACvB,MAAM,GAAE,eAA4C;WAQ3C,QAAQ,CAAC,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;WASpE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA6B3E,OAAO,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB1D,IAAI,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAclF,MAAM,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,SAAS,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAYnJ,aAAa,IAAI,OAAO;CAG3B"}
|
package/dist/signature.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DatArrayBuffer, DatUint8Array, } from "./index.js";
|
|
2
2
|
import { p256, p384, p521 } from '@noble/curves/nist.js';
|
|
3
|
+
export const DatSignatureAlgorithms = ["P256", "P384", "P521"];
|
|
4
|
+
export const DatSignatureKeyOutOptions = ["FULL", "SIGNING", "VERIFYING"];
|
|
3
5
|
const SIGNATURE_CONFIG = {
|
|
4
6
|
"P256": { name: "ECDSA", curve: 'P-256', hash: 'SHA-256' },
|
|
5
7
|
"P384": { name: "ECDSA", curve: 'P-384', hash: 'SHA-384' },
|
|
@@ -87,7 +89,7 @@ export class DatSignatureKey {
|
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
91
|
if (option == "FULL" || option == "VERIFYING") {
|
|
90
|
-
rv += '~' + toBase64Url(await crypto.subtle.exportKey("raw", this.verifyingKey));
|
|
92
|
+
rv += '~' + DatArrayBuffer.toBase64Url(await crypto.subtle.exportKey("raw", this.verifyingKey));
|
|
91
93
|
}
|
|
92
94
|
return rv;
|
|
93
95
|
}
|
|
@@ -95,25 +97,18 @@ export class DatSignatureKey {
|
|
|
95
97
|
if (!this.signingKey) {
|
|
96
98
|
throw errorVerifyingOnly();
|
|
97
99
|
}
|
|
98
|
-
|
|
100
|
+
const bytes = DatArrayBuffer.from(body);
|
|
101
|
+
if (!bytes.byteLength) {
|
|
99
102
|
throw errorEmptyBody();
|
|
100
103
|
}
|
|
101
|
-
return crypto.subtle.sign({ name: this.config.name, hash: { name: this.config.hash }, }, this.signingKey,
|
|
104
|
+
return crypto.subtle.sign({ name: this.config.name, hash: { name: this.config.hash }, }, this.signingKey, bytes);
|
|
102
105
|
}
|
|
103
106
|
async verify(body, signature) {
|
|
104
|
-
|
|
107
|
+
const bodyBytes = DatArrayBuffer.from(body);
|
|
108
|
+
if (!bodyBytes.byteLength) {
|
|
105
109
|
return false;
|
|
106
110
|
}
|
|
107
|
-
|
|
108
|
-
signature = toArrayBufferFromBase64Url(signature);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
signature = toArrayBuffer(signature);
|
|
112
|
-
}
|
|
113
|
-
if (!signature.byteLength) {
|
|
114
|
-
return false;
|
|
115
|
-
}
|
|
116
|
-
return crypto.subtle.verify({ name: this.config.name, hash: { name: this.config.hash }, }, this.verifyingKey, signature, body);
|
|
111
|
+
return crypto.subtle.verify({ name: this.config.name, hash: { name: this.config.hash }, }, this.verifyingKey, DatArrayBuffer.fromBase64Url(signature), bodyBytes);
|
|
117
112
|
}
|
|
118
113
|
hasSigningKey() {
|
|
119
114
|
return this.signingKey !== null;
|
|
@@ -136,7 +131,7 @@ async function toEcdsaKeyPair(config, privateKeyBase64, publicKeyBase64) {
|
|
|
136
131
|
let privateKey = null;
|
|
137
132
|
let privateKeyBytes = null;
|
|
138
133
|
if (privateKeyBase64) {
|
|
139
|
-
privateKeyBytes =
|
|
134
|
+
privateKeyBytes = DatUint8Array.fromBase64Url(privateKeyBase64);
|
|
140
135
|
// d로부터 공개 키(Point) 계산
|
|
141
136
|
const publicPoint = ecdsa.getPublicKey(privateKeyBytes, false);
|
|
142
137
|
// 곡선별 좌표 길이 계산: (전체 길이 - 1) / 2 - 좌표 추출
|
|
@@ -147,18 +142,18 @@ async function toEcdsaKeyPair(config, privateKeyBase64, publicKeyBase64) {
|
|
|
147
142
|
kty: "EC",
|
|
148
143
|
crv: config.curve,
|
|
149
144
|
d: privateKeyBase64,
|
|
150
|
-
x: toBase64Url(xBytes),
|
|
151
|
-
y: toBase64Url(yBytes),
|
|
145
|
+
x: DatUint8Array.toBase64Url(xBytes),
|
|
146
|
+
y: DatUint8Array.toBase64Url(yBytes),
|
|
152
147
|
ext: true,
|
|
153
148
|
};
|
|
154
149
|
privateKey = await crypto.subtle.importKey("jwk", jwk, { name: "ECDSA", namedCurve: config.curve }, true, ["sign"]);
|
|
155
150
|
}
|
|
156
151
|
let publicKeyBytes;
|
|
157
152
|
if (publicKeyBase64) {
|
|
158
|
-
publicKeyBytes =
|
|
153
|
+
publicKeyBytes = DatArrayBuffer.fromBase64Url(publicKeyBase64);
|
|
159
154
|
}
|
|
160
155
|
else if (privateKeyBytes?.byteLength) {
|
|
161
|
-
publicKeyBytes =
|
|
156
|
+
publicKeyBytes = DatArrayBuffer.from(ecdsa.getPublicKey(privateKeyBytes, false));
|
|
162
157
|
}
|
|
163
158
|
else {
|
|
164
159
|
throw errorInvalidKeyFormat();
|
package/dist/signature.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function concat(arr1: ArrayBufferLike | Uint8Array, arr2: ArrayBufferLike | Uint8Array): ArrayBuffer;
|
|
2
|
+
export declare function from(data: ArrayBufferLike | Uint8Array | string | null | undefined): ArrayBuffer;
|
|
3
|
+
export declare function fromHex(data: ArrayBufferLike | Uint8Array | string | null | undefined, ignoreSpace?: boolean): ArrayBuffer;
|
|
4
|
+
export declare function fromBase64(data: ArrayBufferLike | Uint8Array | string | null | undefined): ArrayBuffer;
|
|
5
|
+
export declare function fromBase64Url(data: ArrayBufferLike | Uint8Array | string | null | undefined): ArrayBuffer;
|
|
6
|
+
export declare function toBase64Url(data: ArrayBufferLike): string;
|
|
7
|
+
export declare function toHex(data: ArrayBufferLike, space?: boolean): string;
|
|
8
|
+
//# sourceMappingURL=DatArrayBuffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatArrayBuffer.d.ts","sourceRoot":"","sources":["../../src/util/DatArrayBuffer.ts"],"names":[],"mappings":"AAIA,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,EAAE,IAAI,EAAE,eAAe,GAAC,UAAU,GAAG,WAAW,CAEtG;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,WAAW,CAWxF;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,WAAW,GAAE,OAAe,GAAG,WAAW,CAKzH;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,WAAW,CAK9F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,WAAW,CAKjG;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAEzD;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,GAAE,OAAe,GAAG,MAAM,CAE3E"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { DatBytes, DatUint8Array } from "../index.js";
|
|
2
|
+
const UTF8_ENCODER = new TextEncoder();
|
|
3
|
+
export function concat(arr1, arr2) {
|
|
4
|
+
return DatUint8Array.concat(arr1, arr2).buffer;
|
|
5
|
+
}
|
|
6
|
+
export function from(data) {
|
|
7
|
+
if (data instanceof ArrayBuffer) {
|
|
8
|
+
return data;
|
|
9
|
+
}
|
|
10
|
+
else if (DatBytes.isEmpty(data)) {
|
|
11
|
+
return new ArrayBuffer(0);
|
|
12
|
+
}
|
|
13
|
+
else if (typeof data === 'string') {
|
|
14
|
+
return UTF8_ENCODER.encode(data).buffer;
|
|
15
|
+
}
|
|
16
|
+
else if (data instanceof Uint8Array) {
|
|
17
|
+
return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
|
|
18
|
+
}
|
|
19
|
+
throw new Error('Unsupported Type');
|
|
20
|
+
}
|
|
21
|
+
export function fromHex(data, ignoreSpace = false) {
|
|
22
|
+
if (typeof data === 'string') {
|
|
23
|
+
return from(DatUint8Array.fromHex(data, ignoreSpace));
|
|
24
|
+
}
|
|
25
|
+
return from(data);
|
|
26
|
+
}
|
|
27
|
+
export function fromBase64(data) {
|
|
28
|
+
if (typeof data === 'string') {
|
|
29
|
+
return from(DatUint8Array.fromBase64(data));
|
|
30
|
+
}
|
|
31
|
+
return from(data);
|
|
32
|
+
}
|
|
33
|
+
export function fromBase64Url(data) {
|
|
34
|
+
if (typeof data === 'string') {
|
|
35
|
+
return from(DatUint8Array.fromBase64Url(data));
|
|
36
|
+
}
|
|
37
|
+
return from(data);
|
|
38
|
+
}
|
|
39
|
+
export function toBase64Url(data) {
|
|
40
|
+
return DatUint8Array.toBase64Url(DatUint8Array.from(data));
|
|
41
|
+
}
|
|
42
|
+
export function toHex(data, space = false) {
|
|
43
|
+
return DatUint8Array.toHex(DatUint8Array.from(data), space);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=DatArrayBuffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatArrayBuffer.js","sourceRoot":"","sources":["../../src/util/DatArrayBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;AAEvC,MAAM,UAAU,MAAM,CAAC,IAAgC,EAAE,IAAgC;IACrF,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAsD;IACvE,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC5C,CAAC;SAAM,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAgB,CAAC;IAChG,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAsD,EAAE,cAAuB,KAAK;IACxG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAsD;IAC7E,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAsD;IAChF,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAqB;IAC7C,OAAO,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAqB,EAAE,QAAiB,KAAK;IAC/D,OAAO,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;AAC/D,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function from(data: ArrayBufferLike | Uint8Array): SharedArrayBuffer;
|
|
2
|
+
export declare function toArrayBuffer(data: ArrayBufferLike): ArrayBuffer;
|
|
3
|
+
export declare function toSharedArrayBuffer(data: ArrayBufferLike): SharedArrayBuffer;
|
|
4
|
+
//# sourceMappingURL=DatArrayBufferLike.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatArrayBufferLike.d.ts","sourceRoot":"","sources":["../../src/util/DatArrayBufferLike.ts"],"names":[],"mappings":"AAEA,wBAAgB,IAAI,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAG,iBAAiB,CAUxE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAShE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,iBAAiB,CAS5E"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { DatArrayBuffer } from "../index.js";
|
|
2
|
+
export function from(data) {
|
|
3
|
+
if (data instanceof Uint8Array) {
|
|
4
|
+
const buffer = data.buffer;
|
|
5
|
+
if (buffer instanceof SharedArrayBuffer) {
|
|
6
|
+
return buffer;
|
|
7
|
+
}
|
|
8
|
+
else if (buffer instanceof ArrayBuffer) {
|
|
9
|
+
return toSharedArrayBuffer(DatArrayBuffer.from(data));
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return toSharedArrayBuffer(data);
|
|
13
|
+
}
|
|
14
|
+
export function toArrayBuffer(data) {
|
|
15
|
+
if (data instanceof ArrayBuffer) {
|
|
16
|
+
return data;
|
|
17
|
+
}
|
|
18
|
+
else if (data instanceof SharedArrayBuffer) {
|
|
19
|
+
const result = new ArrayBuffer(data.byteLength);
|
|
20
|
+
new Uint8Array(result).set(new Uint8Array(data));
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
throw new Error('Unsupported Type');
|
|
24
|
+
}
|
|
25
|
+
export function toSharedArrayBuffer(data) {
|
|
26
|
+
if (data instanceof SharedArrayBuffer) {
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
else if (data instanceof ArrayBuffer) {
|
|
30
|
+
const result = new SharedArrayBuffer(data.byteLength);
|
|
31
|
+
new Uint8Array(result).set(new Uint8Array(data));
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
throw new Error('Unsupported Type');
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=DatArrayBufferLike.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatArrayBufferLike.js","sourceRoot":"","sources":["../../src/util/DatArrayBufferLike.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,IAAI,CAAC,IAAgC;IACjD,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,YAAY,iBAAiB,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC;QAClB,CAAC;aAAM,IAAG,MAAM,YAAY,WAAW,EAAE,CAAC;YACtC,OAAO,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,CAAC;IACL,CAAC;IACD,OAAO,mBAAmB,CAAC,IAAuB,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAqB;IAC/C,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAqB;IACrD,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function isEmpty(data: ArrayBufferLike | Uint8Array | string | null | undefined): boolean;
|
|
2
|
+
export declare function toUtf8(data: ArrayBufferLike | Uint8Array | string | null | undefined): string;
|
|
3
|
+
export declare function toBase64Url(data: ArrayBufferLike | Uint8Array | string | null | undefined): string;
|
|
4
|
+
export declare function toHex(data: ArrayBufferLike | Uint8Array | string | null | undefined, space?: boolean): string;
|
|
5
|
+
//# sourceMappingURL=DatBytes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatBytes.d.ts","sourceRoot":"","sources":["../../src/util/DatBytes.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAKvF;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,MAAM,CASrF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,MAAM,CAE1F;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,KAAK,GAAE,OAAe,GAAG,MAAM,CAK5G"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { DatUint8Array } from '../index.js';
|
|
2
|
+
const UTF8_DECODER = new TextDecoder('utf-8', { fatal: true });
|
|
3
|
+
export function isEmpty(data) {
|
|
4
|
+
if (data) {
|
|
5
|
+
return !(typeof data === 'string' || data.byteLength);
|
|
6
|
+
}
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
export function toUtf8(data) {
|
|
10
|
+
if (!data) {
|
|
11
|
+
return '';
|
|
12
|
+
}
|
|
13
|
+
else if (typeof data === 'string') {
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
else if (data instanceof Uint8Array || data instanceof ArrayBuffer || data instanceof SharedArrayBuffer) {
|
|
17
|
+
return UTF8_DECODER.decode(data);
|
|
18
|
+
}
|
|
19
|
+
throw new Error('Unsupported Type');
|
|
20
|
+
}
|
|
21
|
+
export function toBase64Url(data) {
|
|
22
|
+
return DatUint8Array.toBase64Url(DatUint8Array.from(data));
|
|
23
|
+
}
|
|
24
|
+
export function toHex(data, space = false) {
|
|
25
|
+
if (typeof data === 'string') {
|
|
26
|
+
throw new Error('Already String, Use ArrayBufferLike, Uint8Array, null, undefined');
|
|
27
|
+
}
|
|
28
|
+
return DatUint8Array.toHex(DatUint8Array.from(data), space);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=DatBytes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatBytes.js","sourceRoot":"","sources":["../../src/util/DatBytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAE1C,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;AAE7D,MAAM,UAAU,OAAO,CAAC,IAAsD;IAC1E,IAAI,IAAI,EAAE,CAAC;QACP,OAAO,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,CAAA;AACf,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAsD;IACzE,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;IACd,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,YAAY,UAAU,IAAI,IAAI,YAAY,WAAW,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;QACxG,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAsD;IAC9E,OAAO,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAsD,EAAE,QAAiB,KAAK;IAChG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;AAC/D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatInteger.d.ts","sourceRoot":"","sources":["../../src/util/DatInteger.ts"],"names":[],"mappings":"AACA,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAC,MAAM,GAAG,MAAM,CAK/C;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,GAAC,SAAqB,EAAE,GAAG,GAAE,MAAM,GAAC,SAAqB,GAAG,OAAO,CAWnH"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function parse(no) {
|
|
2
|
+
if (typeof no === 'string') {
|
|
3
|
+
no = no ? Number(no) : Number.NaN;
|
|
4
|
+
}
|
|
5
|
+
return Number.isSafeInteger(no) ? no : Number.NaN;
|
|
6
|
+
}
|
|
7
|
+
export function isBetween(no, min = undefined, max = undefined) {
|
|
8
|
+
if (!Number.isSafeInteger(no)) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
if (typeof min == 'number' && !(no >= min)) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
if (typeof max == 'number' && !(no <= max)) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=DatInteger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatInteger.js","sourceRoot":"","sources":["../../src/util/DatInteger.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,KAAK,CAAC,EAAiB;IACnC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QACzB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAU,EAAE,MAAwB,SAAS,EAAE,MAAwB,SAAS;IACtG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,GAAG,IAAI,QAAQ,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,GAAG,IAAI,QAAQ,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function concat(arr1: ArrayBufferLike | Uint8Array, arr2: ArrayBufferLike | Uint8Array): Uint8Array<ArrayBuffer>;
|
|
2
|
+
export declare function from(data: ArrayBufferLike | Uint8Array | string | null | undefined): Uint8Array<ArrayBuffer>;
|
|
3
|
+
export declare function fromHex(data: ArrayBufferLike | Uint8Array | string | null | undefined, ignoreSpace?: boolean): Uint8Array<ArrayBuffer>;
|
|
4
|
+
export declare function fromBase64(data: ArrayBufferLike | Uint8Array | string | null | undefined): Uint8Array<ArrayBuffer>;
|
|
5
|
+
export declare function fromBase64Url(data: ArrayBufferLike | Uint8Array | string | null | undefined): Uint8Array<ArrayBuffer>;
|
|
6
|
+
export declare function toBase64Url(data: Uint8Array): string;
|
|
7
|
+
export declare function toHex(data: Uint8Array, space?: boolean): string;
|
|
8
|
+
//# sourceMappingURL=DatUint8Array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatUint8Array.d.ts","sourceRoot":"","sources":["../../src/util/DatUint8Array.ts"],"names":[],"mappings":"AAOA,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,EAAE,IAAI,EAAE,eAAe,GAAC,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CAOlH;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAiBpG;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,WAAW,GAAE,OAAe,GAAG,UAAU,CAAC,WAAW,CAAC,CAKrI;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAQ1G;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAQ7G;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEpD;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,GAAE,OAAe,GAAG,MAAM,CAOtE"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { DatBytes, DatArrayBufferLike } from "../index.js";
|
|
2
|
+
const UTF8_ENCODER = new TextEncoder();
|
|
3
|
+
function removeSpace(data) {
|
|
4
|
+
return data.replace(/\s+/g, '');
|
|
5
|
+
}
|
|
6
|
+
export function concat(arr1, arr2) {
|
|
7
|
+
const a1 = from(arr1);
|
|
8
|
+
const a2 = from(arr2);
|
|
9
|
+
const result = new Uint8Array(a1.length + a2.length);
|
|
10
|
+
result.set(a1, 0);
|
|
11
|
+
result.set(a2, a1.length);
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
14
|
+
export function from(data) {
|
|
15
|
+
if (data instanceof Uint8Array) {
|
|
16
|
+
if (data.buffer instanceof ArrayBuffer) {
|
|
17
|
+
return data;
|
|
18
|
+
}
|
|
19
|
+
else if (data.buffer instanceof SharedArrayBuffer) {
|
|
20
|
+
return from(DatArrayBufferLike.toArrayBuffer(data.buffer));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else if (DatBytes.isEmpty(data)) {
|
|
24
|
+
return new Uint8Array(0);
|
|
25
|
+
}
|
|
26
|
+
else if (typeof data === 'string') {
|
|
27
|
+
return UTF8_ENCODER.encode(data);
|
|
28
|
+
}
|
|
29
|
+
else if (data instanceof ArrayBuffer) {
|
|
30
|
+
return new Uint8Array(data, 0, data.byteLength);
|
|
31
|
+
}
|
|
32
|
+
else if (data instanceof SharedArrayBuffer) {
|
|
33
|
+
return from(DatArrayBufferLike.toArrayBuffer(data));
|
|
34
|
+
}
|
|
35
|
+
throw new Error('Unsupported Type');
|
|
36
|
+
}
|
|
37
|
+
export function fromHex(data, ignoreSpace = false) {
|
|
38
|
+
if (typeof data === 'string') {
|
|
39
|
+
return Uint8Array.fromHex(ignoreSpace ? removeSpace(data) : data);
|
|
40
|
+
}
|
|
41
|
+
return from(data);
|
|
42
|
+
}
|
|
43
|
+
export function fromBase64(data) {
|
|
44
|
+
if (typeof data === 'string') {
|
|
45
|
+
return Uint8Array.fromBase64(data, {
|
|
46
|
+
"alphabet": "base64",
|
|
47
|
+
"lastChunkHandling": "loose"
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return from(data);
|
|
51
|
+
}
|
|
52
|
+
export function fromBase64Url(data) {
|
|
53
|
+
if (typeof data === 'string') {
|
|
54
|
+
return Uint8Array.fromBase64(data, {
|
|
55
|
+
"alphabet": "base64url",
|
|
56
|
+
"lastChunkHandling": "loose"
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return from(data);
|
|
60
|
+
}
|
|
61
|
+
export function toBase64Url(data) {
|
|
62
|
+
return data.toBase64({ "alphabet": "base64url", omitPadding: true });
|
|
63
|
+
}
|
|
64
|
+
export function toHex(data, space = false) {
|
|
65
|
+
const hex = data.toHex();
|
|
66
|
+
if (space) {
|
|
67
|
+
return (hex.match(/.{2}/g) || []).join(' ');
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return hex;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=DatUint8Array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatUint8Array.js","sourceRoot":"","sources":["../../src/util/DatUint8Array.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function now(): number;
|
|
2
|
+
export declare function from(date: Date): number;
|
|
3
|
+
export declare function isPast(unixtime: number): boolean;
|
|
4
|
+
export declare function isNotPast(unixtime: number): boolean;
|
|
5
|
+
export declare function isFuture(unixtime: number): boolean;
|
|
6
|
+
//# sourceMappingURL=DatUnixtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatUnixtime.d.ts","sourceRoot":"","sources":["../../src/util/DatUnixtime.ts"],"names":[],"mappings":"AAAA,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEvC;AAED,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function now() {
|
|
2
|
+
return from(new Date());
|
|
3
|
+
}
|
|
4
|
+
export function from(date) {
|
|
5
|
+
return Math.floor(date.getTime() / 1000);
|
|
6
|
+
}
|
|
7
|
+
export function isPast(unixtime) {
|
|
8
|
+
return unixtime < now();
|
|
9
|
+
}
|
|
10
|
+
export function isNotPast(unixtime) {
|
|
11
|
+
return unixtime >= now();
|
|
12
|
+
}
|
|
13
|
+
export function isFuture(unixtime) {
|
|
14
|
+
return unixtime > now();
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=DatUnixtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatUnixtime.js","sourceRoot":"","sources":["../../src/util/DatUnixtime.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG;IACf,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAU;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,QAAgB;IACnC,OAAO,QAAQ,GAAG,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB;IACtC,OAAO,QAAQ,IAAI,GAAG,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACrC,OAAO,QAAQ,GAAG,GAAG,EAAE,CAAC;AAC5B,CAAC"}
|