saro-dat 3.3.0 → 4.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 CHANGED
@@ -1,16 +1,16 @@
1
- export type DatCryptoAlgorithm = "AES128GCMN" | "AES256GCMN";
1
+ export type DatCryptoAlgorithm = "IV-AES128-GCM" | "IV-AES256-GCM";
2
2
  export declare const DatCryptoAlgorithms: DatCryptoAlgorithm[];
3
3
  type CryptoConfig = {
4
4
  name: string;
5
5
  length: number;
6
6
  };
7
- export declare class DatCryptoKey {
7
+ export declare class DatCrypto {
8
8
  private readonly config;
9
9
  readonly algorithm: DatCryptoAlgorithm;
10
10
  readonly key: CryptoKey;
11
11
  constructor(algorithm: DatCryptoAlgorithm, key: CryptoKey, config?: CryptoConfig);
12
- static generate(algorithm: DatCryptoAlgorithm): Promise<DatCryptoKey>;
13
- static imports(algorithm: string, base64: string): Promise<DatCryptoKey>;
12
+ static generate(algorithm: DatCryptoAlgorithm): Promise<DatCrypto>;
13
+ static imports(algorithm: string, base64: string): Promise<DatCrypto>;
14
14
  exports(): Promise<string>;
15
15
  encrypt(data: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<ArrayBuffer>;
16
16
  decrypt(data: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<ArrayBuffer>;
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAEA,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;AAerD,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"}
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG,eAAe,CAAC;AACnE,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,EAAuC,CAAC;AAE5F,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAerD,qBAAa,SAAS;IAClB,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,SAAS,CAAC;WAQ3D,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IASrE,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,8 +1,8 @@
1
1
  import { DatArrayBuffer, } from "./index.js";
2
- export const DatCryptoAlgorithms = ["AES128GCMN", "AES256GCMN"];
2
+ export const DatCryptoAlgorithms = ["IV-AES128-GCM", "IV-AES256-GCM"];
3
3
  const CRYPTO_CONFIG = {
4
- "AES128GCMN": { name: "AES-GCM", length: 128 },
5
- "AES256GCMN": { name: "AES-GCM", length: 256 },
4
+ "IV-AES128-GCM": { name: "AES-GCM", length: 128 },
5
+ "IV-AES256-GCM": { name: "AES-GCM", length: 256 },
6
6
  };
7
7
  function getCryptoConfig(algorithm) {
8
8
  const config = CRYPTO_CONFIG[algorithm];
@@ -11,7 +11,7 @@ function getCryptoConfig(algorithm) {
11
11
  }
12
12
  throw new Error(`Unsupported DAT Crypto Algorithm: ${algorithm}`);
13
13
  }
14
- export class DatCryptoKey {
14
+ export class DatCrypto {
15
15
  config;
16
16
  algorithm;
17
17
  key;
@@ -23,13 +23,13 @@ export class DatCryptoKey {
23
23
  static async generate(algorithm) {
24
24
  const config = getCryptoConfig(algorithm);
25
25
  const key = await crypto.subtle.generateKey({ name: config.name, length: config.length }, true, ["encrypt", "decrypt"]);
26
- return new DatCryptoKey(algorithm, key, config);
26
+ return new DatCrypto(algorithm, key, config);
27
27
  }
28
28
  static async imports(algorithm, base64) {
29
29
  const config = getCryptoConfig(algorithm);
30
30
  const bytes = DatArrayBuffer.fromBase64Url(base64);
31
31
  const key = await crypto.subtle.importKey("raw", bytes, { name: config.name }, true, ["encrypt", "decrypt"]);
32
- return new DatCryptoKey(algorithm, key, config);
32
+ return new DatCrypto(algorithm, key, config);
33
33
  }
34
34
  async exports() {
35
35
  return DatArrayBuffer.toBase64Url(await crypto.subtle.exportKey("raw", this.key));
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,17 @@
1
- import { DatCryptoKey, DatSignatureKey, DatSignatureKeyOutOption } from "./index.js";
1
+ import { DatCrypto, DatSignature } from "./index.js";
2
2
  export declare class DatCertificate {
3
3
  readonly cid: bigint;
4
- readonly _signatureKey: DatSignatureKey;
5
- readonly _cryptoKey: DatCryptoKey;
6
- readonly _datIssueBegin: bigint;
7
- readonly _datIssueEnd: bigint;
8
- readonly _datTtl: bigint;
9
- constructor(cid: bigint | number, signatureKey: DatSignatureKey, cryptoKey: DatCryptoKey, datIssueBegin: number | bigint | string, datIssueEnd: number | bigint | string, datTtl: number | bigint | string);
10
- exports(datSignatureKeyOutOption: DatSignatureKeyOutOption): Promise<string>;
4
+ readonly signatureKey: DatSignature;
5
+ readonly cryptoKey: DatCrypto;
6
+ readonly datIssueBegin: bigint;
7
+ readonly datIssueEnd: bigint;
8
+ readonly datTtl: bigint;
9
+ constructor(cid: bigint | number | string, signatureKey: DatSignature, cryptoKey: DatCrypto, datIssueBegin: number | bigint | string, datIssueEnd: number | bigint | string, datTtl: number | bigint | string);
10
+ exports(verifyOnly?: boolean): Promise<string>;
11
11
  static imports(format: string): Promise<DatCertificate>;
12
12
  issuable(): boolean;
13
13
  expired(): boolean;
14
- hasSigningKey(): boolean;
14
+ signable(): boolean;
15
+ pair(): boolean;
15
16
  }
16
17
  //# sourceMappingURL=dat.certificate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dat.certificate.d.ts","sourceRoot":"","sources":["../src/dat.certificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAc,eAAe,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAGhG,qBAAa,cAAc;IACvB,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,aAAa,EAAE,eAAe,CAAC;IAC/C,SAAgB,UAAU,EAAE,YAAY,CAAC;IACzC,SAAgB,cAAc,EAAE,MAAM,CAAC;IACvC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,OAAO,EAAE,MAAM,CAAC;gBAG5B,GAAG,EAAE,MAAM,GAAC,MAAM,EAClB,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,YAAY,EACvB,aAAa,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,EACnC,WAAW,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,EACjC,MAAM,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM;IAY1B,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;WAYrE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAc7D,QAAQ,IAAI,OAAO;IAInB,OAAO,IAAI,OAAO;IAIlB,aAAa,IAAI,OAAO;CAG3B"}
1
+ {"version":3,"file":"dat.certificate.d.ts","sourceRoot":"","sources":["../src/dat.certificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAc,YAAY,EAAE,MAAM,YAAY,CAAC;AAGhE,qBAAa,cAAc;IACvB,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,YAAY,EAAE,YAAY,CAAC;IAC3C,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAG3B,GAAG,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,EACzB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,EACnC,WAAW,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,EACjC,MAAM,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM;IAU1B,OAAO,CAAC,UAAU,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC;WAY9C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiB7D,QAAQ,IAAI,OAAO;IAInB,OAAO,IAAI,OAAO;IAIlB,QAAQ,IAAI,OAAO;IAInB,IAAI,IAAI,OAAO;CAGlB"}
@@ -1,53 +1,57 @@
1
- import { DatCryptoKey, DatInteger, DatSignatureKey, } from "./index.js";
1
+ import { DatCrypto, DatInteger, DatSignature, } from "./index.js";
2
2
  import { Unixtime } from "infinite-unixtime";
3
3
  export class DatCertificate {
4
4
  cid;
5
- _signatureKey;
6
- _cryptoKey;
7
- _datIssueBegin;
8
- _datIssueEnd;
9
- _datTtl;
5
+ signatureKey;
6
+ cryptoKey;
7
+ datIssueBegin;
8
+ datIssueEnd;
9
+ datTtl;
10
10
  constructor(cid, signatureKey, cryptoKey, datIssueBegin, datIssueEnd, datTtl) {
11
- cid = DatInteger.toCid(cid, `Invalid cid(Certificate ID) is HEX ${cid}`);
12
- this.cid = cid;
13
- this._signatureKey = signatureKey;
14
- this._cryptoKey = cryptoKey;
15
- this._datIssueBegin = DatInteger.toBigInt(datIssueBegin, `Invalid: datIssueBegin is positive int or 0 ${datIssueBegin}`, 0n);
16
- this._datIssueEnd = DatInteger.toBigInt(datIssueEnd, `Invalid: datIssueEnd is positive int or 0 ${datIssueEnd}`, 0n);
17
- this._datTtl = DatInteger.toBigInt(datTtl, `Invalid: datTtl is positive int or 0 ${datTtl}`, 0n);
11
+ this.cid = DatInteger.toCid(cid, `Invalid cid(Certificate ID) is HEX ${cid}`);
12
+ this.signatureKey = signatureKey;
13
+ this.cryptoKey = cryptoKey;
14
+ this.datIssueBegin = DatInteger.toBigInt(datIssueBegin, `Invalid: datIssueBegin is positive int or 0 ${datIssueBegin}`, 0n);
15
+ this.datIssueEnd = DatInteger.toBigInt(datIssueEnd, `Invalid: datIssueEnd is positive int or 0 ${datIssueEnd}`, 0n);
16
+ this.datTtl = DatInteger.toBigInt(datTtl, `Invalid: datTtl is positive int or 0 ${datTtl}`, 0n);
18
17
  }
19
- async exports(datSignatureKeyOutOption) {
18
+ async exports(verifyOnly = false) {
20
19
  const cid = this.cid.toString(16);
21
- const signatureAlgorithm = this._signatureKey.algorithm;
22
- const signatureKey = await this._signatureKey.exports(datSignatureKeyOutOption);
23
- const cryptoAlg = this._cryptoKey.algorithm;
24
- const cryptoKey = await this._cryptoKey.exports();
25
- const datIssueBegin = this._datIssueBegin;
26
- const datIssueEnd = this._datIssueEnd;
27
- const datTtl = this._datTtl;
28
- return `${cid}.${signatureAlgorithm}.${signatureKey}.${cryptoAlg}.${cryptoKey}.${datIssueBegin}.${datIssueEnd}.${datTtl}`;
20
+ const issuedAt = this.datIssueBegin.toString();
21
+ const issuanceDuration = (this.datIssueEnd - this.datIssueBegin).toString();
22
+ const ttl = this.datTtl.toString();
23
+ const sigAlgo = this.signatureKey.algorithm;
24
+ const cryptoAlgo = this.cryptoKey.algorithm;
25
+ const sigKey = await this.signatureKey.exports(verifyOnly);
26
+ const cryptoKey = await this.cryptoKey.exports();
27
+ return `${cid}.${issuedAt}.${issuanceDuration}.${ttl}.${sigAlgo}.${cryptoAlgo}.${sigKey}.${cryptoKey}`;
29
28
  }
30
29
  static async imports(format) {
31
- const split = format.split(".");
32
- if (split.length == 8) {
33
- const cid = DatInteger.toCid(split[0], `Invalid cid(Certificate ID) is HEX ${split[0]}`);
34
- const signatureKey = await DatSignatureKey.imports(split[1], split[2]);
35
- const cryptoKey = await DatCryptoKey.imports(split[3], split[4]);
36
- const datIssueBegin = Number(split[5]);
37
- const datIssueEnd = Number(split[6]);
38
- const datTtl = Number(split[7]);
39
- return new DatCertificate(cid, signatureKey, cryptoKey, datIssueBegin, datIssueEnd, datTtl);
30
+ const parts = format.split(".");
31
+ if (parts.length !== 8) {
32
+ throw new Error("Invalid Certificate format");
40
33
  }
41
- throw new Error("Invalid Certificate format");
34
+ const cid = DatInteger.toCid(parts[0], `Invalid cid(Certificate ID) is HEX ${parts[0]}`);
35
+ const issuedAt = DatInteger.toBigInt(parts[1]);
36
+ const issuanceDuration = DatInteger.toBigInt(parts[2]);
37
+ const ttl = DatInteger.toBigInt(parts[3]);
38
+ const sigAlgo = parts[4];
39
+ const cryptoAlgo = parts[5];
40
+ const signatureKey = await DatSignature.imports(sigAlgo, parts[6]);
41
+ const cryptoKey = await DatCrypto.imports(cryptoAlgo, parts[7]);
42
+ return new DatCertificate(cid, signatureKey, cryptoKey, issuedAt, issuedAt + issuanceDuration, ttl);
42
43
  }
43
44
  issuable() {
44
- return this.hasSigningKey() && Unixtime.now().between(this._datIssueBegin, this._datIssueEnd, true);
45
+ return this.signable() && Unixtime.now().between(this.datIssueBegin, this.datIssueEnd, true);
45
46
  }
46
47
  expired() {
47
- return Unixtime.now().after(this._datIssueEnd + this._datTtl, true);
48
+ return Unixtime.now().after(this.datIssueEnd + this.datTtl, true);
48
49
  }
49
- hasSigningKey() {
50
- return this._signatureKey.hasSigningKey();
50
+ signable() {
51
+ return this.signatureKey.signable();
52
+ }
53
+ pair() {
54
+ return this.signatureKey.pair();
51
55
  }
52
56
  }
53
57
  //# sourceMappingURL=dat.certificate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dat.certificate.js","sourceRoot":"","sources":["../src/dat.certificate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dat.certificate.js","sourceRoot":"","sources":["../src/dat.certificate.ts"],"names":[],"mappings":"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"}
package/dist/dat.d.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  export declare class Dat {
2
2
  readonly dat: string;
3
- readonly _format: boolean;
4
- readonly _expire: number;
5
- readonly _cid: bigint;
6
- readonly _plain: ArrayBuffer;
7
- readonly _secure: ArrayBuffer;
8
- readonly _signature: ArrayBuffer;
3
+ readonly format: boolean;
4
+ readonly expire: number;
5
+ readonly cid: bigint;
6
+ readonly plainBytes: ArrayBuffer;
7
+ readonly secureBytes: ArrayBuffer;
8
+ readonly signature: ArrayBuffer;
9
9
  constructor(dat: string | undefined | null);
10
10
  static from(dat: Dat | string | undefined | null): Dat;
11
11
  expired(): boolean;
12
- _body(): string;
12
+ body(): string;
13
13
  }
14
14
  export declare class DatPayload {
15
15
  readonly plainBytes: ArrayBuffer;
package/dist/dat.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dat.d.ts","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"AAGA,qBAAa,GAAG;IACZ,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAM;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAS;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAK;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAM;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAsB;IAClD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAsB;IACnD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAsB;gBAE1C,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,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,UAAU;IACnB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEtB,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;IAKnD,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,QAAQ,IAAI,MAAM;IAIlB,cAAc,IAAI,MAAM;CAG3B"}
1
+ {"version":3,"file":"dat.d.ts","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"AAGA,qBAAa,GAAG;IACZ,SAAgB,GAAG,EAAE,MAAM,CAAM;IACjC,SAAgB,MAAM,EAAE,OAAO,CAAS;IACxC,SAAgB,MAAM,EAAE,MAAM,CAAK;IACnC,SAAgB,GAAG,EAAE,MAAM,CAAM;IACjC,SAAgB,UAAU,EAAE,WAAW,CAAsB;IAC7D,SAAgB,WAAW,EAAE,WAAW,CAAsB;IAC9D,SAAgB,SAAS,EAAE,WAAW,CAAsB;gBAEhD,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,SAAgB,UAAU,EAAE,WAAW,CAAC;IACxC,SAAgB,WAAW,EAAE,WAAW,CAAC;gBAE7B,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;IAKnD,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,QAAQ,IAAI,MAAM;IAIlB,cAAc,IAAI,MAAM;CAG3B"}
package/dist/dat.js CHANGED
@@ -2,23 +2,23 @@ import { DatArrayBuffer, DatBytes, DatInteger, } from "./index.js";
2
2
  import { Unixtime } from "infinite-unixtime";
3
3
  export class Dat {
4
4
  dat = '';
5
- _format = false;
6
- _expire = 0;
7
- _cid = 0n;
8
- _plain = new ArrayBuffer(0);
9
- _secure = new ArrayBuffer(0);
10
- _signature = new ArrayBuffer(0);
5
+ format = false;
6
+ expire = 0;
7
+ cid = 0n;
8
+ plainBytes = new ArrayBuffer(0);
9
+ secureBytes = new ArrayBuffer(0);
10
+ signature = new ArrayBuffer(0);
11
11
  constructor(dat) {
12
12
  if (dat) {
13
13
  const parts = (this.dat = dat || '').split('.');
14
14
  if (dat && parts.length == 5) {
15
15
  try {
16
- this._expire = DatInteger.parse(parts[0]);
17
- this._cid = DatInteger.toCid(parts[1]);
18
- this._plain = DatArrayBuffer.fromBase64Url(parts[2]);
19
- this._secure = DatArrayBuffer.fromBase64Url(parts[3]);
20
- this._signature = DatArrayBuffer.fromBase64Url(parts[4]);
21
- this._format = (this._signature.byteLength > 0 && this._expire >= 0);
16
+ this.expire = DatInteger.parse(parts[0]);
17
+ this.cid = DatInteger.toCid(parts[1]);
18
+ this.plainBytes = DatArrayBuffer.fromBase64Url(parts[2]);
19
+ this.secureBytes = DatArrayBuffer.fromBase64Url(parts[3]);
20
+ this.signature = DatArrayBuffer.fromBase64Url(parts[4]);
21
+ this.format = (this.signature.byteLength > 0 && this.expire >= 0);
22
22
  }
23
23
  catch (e) { }
24
24
  }
@@ -31,9 +31,9 @@ export class Dat {
31
31
  return new Dat(dat);
32
32
  }
33
33
  expired() {
34
- return !this._format || Unixtime.now().after(this._expire, true);
34
+ return !this.format || Unixtime.now().after(this.expire, true);
35
35
  }
36
- _body() {
36
+ body() {
37
37
  return this.dat.substring(0, this.dat.lastIndexOf('.'));
38
38
  }
39
39
  }
@@ -51,7 +51,7 @@ export class DatPayload {
51
51
  return DatBytes.toUtf8(this.secureBytes);
52
52
  }
53
53
  toString() {
54
- return `${DatBytes.toBase64Url(this.plainBytes)} ${DatBytes.toBase64Url(this.secureBytes)}`;
54
+ return `${DatArrayBuffer.toBase64Url(this.plainBytes)} ${DatArrayBuffer.toBase64Url(this.secureBytes)}`;
55
55
  }
56
56
  toUnsafeString() {
57
57
  return `${this.plain} ${this.secure}`;
package/dist/dat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dat.js","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dat.js","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { Dat, DatCertificate, DatPayload, DatSignatureKeyOutOption } from "./index.js";
1
+ import { Dat, DatCertificate, DatPayload } from "./index.js";
2
2
  export declare class DatManager {
3
3
  private readonly issuer;
4
4
  private readonly certificates;
5
5
  constructor(issuer?: DatCertificate | null, certificates?: DatCertificate[]);
6
6
  static from(inputCertificates: DatCertificate[]): DatManager;
7
7
  static imports(format: string): Promise<DatManager>;
8
- exports(datSignatureKeyOutOption: DatSignatureKeyOutOption): Promise<string>;
8
+ exports(verifyOnly?: boolean): Promise<string>;
9
9
  find(cid: bigint): DatCertificate | null;
10
10
  issue(plain: ArrayBufferLike | Uint8Array | string | null | undefined, secure: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<string>;
11
11
  parse(dat: Dat | string | undefined | null): Promise<DatPayload>;
@@ -1 +1 @@
1
- {"version":3,"file":"dat.manager.d.ts","sourceRoot":"","sources":["../src/dat.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EAGH,cAAc,EACd,UAAU,EACV,wBAAwB,EAC3B,MAAM,YAAY,CAAC;AAGpB,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;gBAEpC,MAAM,GAAE,cAAc,GAAG,IAAW,EAAE,YAAY,GAAE,cAAc,EAAO;IAKrF,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,EAAE,GAAG,UAAU;WA0B/C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IASnD,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAIlC,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,KAAK,CAAC,GAAG,EAAE,GAAG,GAAC,MAAM,GAAC,SAAS,GAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;WAWnD,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,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;WAWtK,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,GAAC,MAAM,GAAC,SAAS,GAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;CAavG"}
1
+ {"version":3,"file":"dat.manager.d.ts","sourceRoot":"","sources":["../src/dat.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAA4B,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGtF,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;gBAEpC,MAAM,GAAE,cAAc,GAAG,IAAW,EAAE,YAAY,GAAE,cAAc,EAAO;IAKrF,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,EAAE,GAAG,UAAU;WA0B/C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAQnD,OAAO,CAAC,UAAU,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3D,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAIlC,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,KAAK,CAAC,GAAG,EAAE,GAAG,GAAC,MAAM,GAAC,SAAS,GAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;WAYnD,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,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;WAWtK,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,GAAC,MAAM,GAAC,SAAS,GAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;CAavG"}
@@ -19,24 +19,23 @@ export class DatManager {
19
19
  certificates.push(certificate);
20
20
  }
21
21
  certificates.sort((a, b) => {
22
- if (a._datIssueEnd == b._datIssueEnd) {
22
+ if (a.datIssueEnd == b.datIssueEnd) {
23
23
  return 0;
24
24
  }
25
25
  else {
26
- return a._datIssueEnd < b._datIssueEnd ? -1 : 1;
26
+ return a.datIssueEnd < b.datIssueEnd ? -1 : 1;
27
27
  }
28
28
  });
29
29
  const issuer = certificates.findLast(e => e.issuable()) || null;
30
30
  return new DatManager(issuer, certificates);
31
31
  }
32
32
  static async imports(format) {
33
- const certificates = await Promise.all(format.split('\n')
34
- .map(async (e) => await DatCertificate.imports(e.trim()))
35
- .filter(e => !!e));
33
+ const lines = format.split('\n').map(e => e.trim()).filter(e => e !== '');
34
+ const certificates = await Promise.all(lines.map(async (e) => await DatCertificate.imports(e)));
36
35
  return DatManager.from(certificates);
37
36
  }
38
- async exports(datSignatureKeyOutOption) {
39
- return (await Promise.all(this.certificates.map(e => e.exports(datSignatureKeyOutOption)))).join('\n');
37
+ async exports(verifyOnly = false) {
38
+ return (await Promise.all(this.certificates.map(e => e.exports(verifyOnly)))).join('\n');
40
39
  }
41
40
  find(cid) {
42
41
  return this.certificates.find(e => e.cid === cid) || null;
@@ -48,10 +47,11 @@ export class DatManager {
48
47
  throw new Error("Invalid DAT: Signing Key Does Not Exist");
49
48
  }
50
49
  async parse(dat) {
51
- if (!(dat = Dat.from(dat))._format) {
50
+ dat = Dat.from(dat);
51
+ if (!dat.format) {
52
52
  throw new Error("Invalid DAT: Format");
53
53
  }
54
- const certificate = this.find(dat._cid);
54
+ const certificate = this.find(dat.cid);
55
55
  if (certificate != null) {
56
56
  return DatManager.parse(certificate, dat);
57
57
  }
@@ -59,26 +59,26 @@ export class DatManager {
59
59
  }
60
60
  static async issue(certificate, plain, secure) {
61
61
  const now = Unixtime.now().time;
62
- const expire = now + certificate._datTtl;
62
+ const expire = now + certificate.datTtl;
63
63
  const cid = certificate.cid.toString(16);
64
64
  const plainBase64 = DatBytes.toBase64Url(plain);
65
- const securedBase64 = DatArrayBuffer.toBase64Url(await certificate._cryptoKey.encrypt(DatArrayBuffer.from(secure)));
65
+ const securedBase64 = DatArrayBuffer.toBase64Url(await certificate.cryptoKey.encrypt(DatArrayBuffer.from(secure)));
66
66
  const body = `${expire}.${cid}.${plainBase64}.${securedBase64}`;
67
- const signature = DatArrayBuffer.toBase64Url(await certificate._signatureKey.sign(body));
67
+ const signature = DatArrayBuffer.toBase64Url(await certificate.signatureKey.sign(body));
68
68
  return `${body}.${signature}`;
69
69
  }
70
70
  static async parse(certificate, dat) {
71
71
  dat = Dat.from(dat);
72
- if (!dat._format) {
72
+ if (!dat.format) {
73
73
  throw new Error("Invalid DAT: Format");
74
74
  }
75
75
  if (dat.expired()) {
76
76
  throw new Error("Invalid DAT: Expired");
77
77
  }
78
- if (!await certificate._signatureKey.verify(dat._body(), dat._signature)) {
78
+ if (!await certificate.signatureKey.verify(dat.body(), dat.signature)) {
79
79
  throw new Error('Invalid DAT: Signature');
80
80
  }
81
- return new DatPayload(dat._plain, await certificate._cryptoKey.decrypt(dat._secure));
81
+ return new DatPayload(dat.plainBytes, await certificate.cryptoKey.decrypt(dat.secureBytes));
82
82
  }
83
83
  }
84
84
  //# sourceMappingURL=dat.manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dat.manager.js","sourceRoot":"","sources":["../src/dat.manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dat.manager.js","sourceRoot":"","sources":["../src/dat.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,GAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,MAAM,OAAO,UAAU;IACF,MAAM,CAAwB;IAC9B,YAAY,CAAmB;IAEhD,YAAY,SAAgC,IAAI,EAAE,eAAiC,EAAE;QACjF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,iBAAmC;QAC3C,IAAI,YAAY,GAAqB,EAAE,CAAC;QAExC,KAAK,MAAM,WAAW,IAAI,iBAAiB,EAAE,CAAC;YAC1C,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,4DAA4D,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;YACnG,CAAC;YACD,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;gBACxB,SAAS;YACb,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBACjC,OAAO,CAAC,CAAC;YACb,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC;QAEhE,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAc;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAC1D,CAAC;QACF,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,aAAsB,KAAK;QACrC,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5F,CAAC;IAED,IAAI,CAAC,GAAW;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAuD,EAAE,MAAwD;QACzH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAA8B;QACtC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACtB,OAAO,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAA2B,EAAE,KAAuD,EAAE,MAAwD;QAC7J,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAChC,MAAM,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC;QACxC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnH,MAAM,IAAI,GAAG,GAAG,MAAM,IAAI,GAAG,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;QAChE,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxF,OAAO,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAA2B,EAAE,GAA8B;QAC1E,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,MAAM,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IAC/F,CAAC;CACJ"}
@@ -1,24 +1,28 @@
1
- export type DatSignatureAlgorithm = "P256" | "P384" | "P521";
1
+ export type DatSignatureAlgorithm = "HMAC-SHA256-MFS" | "HMAC-SHA384-MFS" | "HMAC-SHA512-MFS" | "ECDSA-P256" | "ECDSA-P384" | "ECDSA-P521";
2
2
  export declare const DatSignatureAlgorithms: DatSignatureAlgorithm[];
3
- export type DatSignatureKeyOutOption = "FULL" | "SIGNING" | "VERIFYING";
4
- export declare const DatSignatureKeyOutOptions: DatSignatureKeyOutOption[];
5
3
  type SignatureConfig = {
6
4
  name: string;
7
- curve: string;
8
- hash: string;
5
+ hash: {
6
+ name: string;
7
+ };
8
+ namedCurve?: string;
9
+ privateLen?: number;
10
+ publicLen?: number;
11
+ hmacLen?: number;
9
12
  };
10
- export declare class DatSignatureKey {
13
+ export declare class DatSignature {
11
14
  private readonly config;
12
15
  readonly algorithm: DatSignatureAlgorithm;
13
16
  private readonly signingKey;
14
17
  private readonly verifyingKey;
15
- constructor(algorithm: DatSignatureAlgorithm, SigningKey: CryptoKey | null, VerifyingKey: CryptoKey, config?: SignatureConfig);
16
- static generate(algorithm: DatSignatureAlgorithm): Promise<DatSignatureKey>;
17
- static imports(algorithm: string, format: string): Promise<DatSignatureKey>;
18
- exports(option: DatSignatureKeyOutOption): Promise<string>;
18
+ constructor(algorithm: DatSignatureAlgorithm, signingKey: CryptoKey | null, verifyingKey: CryptoKey, config?: SignatureConfig);
19
+ static generate(algorithm: DatSignatureAlgorithm): Promise<DatSignature>;
20
+ static imports(algorithm: string, base64: string): Promise<DatSignature>;
21
+ exports(verifyOnly?: boolean): Promise<string>;
19
22
  sign(body: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<ArrayBuffer>;
20
23
  verify(body: ArrayBufferLike | Uint8Array | string | null | undefined, signature: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<boolean>;
21
- hasSigningKey(): boolean;
24
+ signable(): boolean;
25
+ pair(): boolean;
22
26
  }
23
27
  export {};
24
28
  //# sourceMappingURL=signature.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAKA,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;AA6BrE,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"}
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,qBAAqB,GAC7B,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GACzD,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;AAE/C,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,EAGzD,CAAC;AAEF,KAAK,eAAe,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAmBF,qBAAa,YAAY;IACrB,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,YAAY,CAAC;WAmBjE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAqExE,OAAO,CAAC,UAAU,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBrD,IAAI,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAqB1F,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,eAAe,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBnK,QAAQ,IAAI,OAAO;IAInB,IAAI,IAAI,OAAO;CAGlB"}
package/dist/signature.js CHANGED
@@ -1,20 +1,16 @@
1
1
  import { DatArrayBuffer, DatUint8Array, } from "./index.js";
2
- import { p256, p384, p521 } from '@noble/curves/nist.js';
3
- export const DatSignatureAlgorithms = ["P256", "P384", "P521"];
4
- export const DatSignatureKeyOutOptions = ["FULL", "SIGNING", "VERIFYING"];
2
+ export const DatSignatureAlgorithms = [
3
+ "HMAC-SHA256-MFS", "HMAC-SHA384-MFS", "HMAC-SHA512-MFS",
4
+ "ECDSA-P256", "ECDSA-P384", "ECDSA-P521"
5
+ ];
5
6
  const SIGNATURE_CONFIG = {
6
- "P256": { name: "ECDSA", curve: 'P-256', hash: 'SHA-256' },
7
- "P384": { name: "ECDSA", curve: 'P-384', hash: 'SHA-384' },
8
- "P521": { name: "ECDSA", curve: 'P-521', hash: 'SHA-512' },
7
+ "HMAC-SHA256-MFS": { name: "HMAC", hash: { name: "SHA-256" }, hmacLen: 32 },
8
+ "HMAC-SHA384-MFS": { name: "HMAC", hash: { name: "SHA-384" }, hmacLen: 48 },
9
+ "HMAC-SHA512-MFS": { name: "HMAC", hash: { name: "SHA-512" }, hmacLen: 64 },
10
+ "ECDSA-P256": { name: "ECDSA", namedCurve: "P-256", hash: { name: "SHA-256" }, privateLen: 32, publicLen: 65 },
11
+ "ECDSA-P384": { name: "ECDSA", namedCurve: "P-384", hash: { name: "SHA-384" }, privateLen: 48, publicLen: 97 },
12
+ "ECDSA-P521": { name: "ECDSA", namedCurve: "P-521", hash: { name: "SHA-512" }, privateLen: 66, publicLen: 133 },
9
13
  };
10
- function toDatSignatureKeyOutOption(option) {
11
- switch (option) {
12
- case "FULL":
13
- case "SIGNING":
14
- case "VERIFYING": return option;
15
- }
16
- throw new Error(`Unsupported DAT Signature Key Out Option: ${option}`);
17
- }
18
14
  function getCryptoConfig(algorithm) {
19
15
  const config = SIGNATURE_CONFIG[algorithm];
20
16
  if (config) {
@@ -22,64 +18,88 @@ function getCryptoConfig(algorithm) {
22
18
  }
23
19
  throw new Error(`Unsupported DAT Signature Algorithm: ${algorithm}`);
24
20
  }
25
- export class DatSignatureKey {
21
+ export class DatSignature {
26
22
  config;
27
23
  algorithm;
28
24
  signingKey;
29
25
  verifyingKey;
30
- constructor(algorithm, SigningKey, VerifyingKey, config = getCryptoConfig(algorithm)) {
26
+ constructor(algorithm, signingKey, verifyingKey, config = getCryptoConfig(algorithm)) {
31
27
  this.algorithm = algorithm;
32
- this.signingKey = SigningKey;
33
- this.verifyingKey = VerifyingKey;
28
+ this.signingKey = signingKey;
29
+ this.verifyingKey = verifyingKey;
34
30
  this.config = config;
35
31
  }
36
32
  static async generate(algorithm) {
37
33
  const config = getCryptoConfig(algorithm);
38
- const { publicKey, privateKey } = await crypto.subtle.generateKey({ name: config.name, namedCurve: config.curve, }, true, ["sign", "verify"]);
39
- return new DatSignatureKey(algorithm, privateKey, publicKey, config);
34
+ if (config.name === "HMAC") {
35
+ const key = await crypto.subtle.generateKey({ name: "HMAC", hash: config.hash, length: config.hmacLen * 8 }, true, ["sign", "verify"]);
36
+ return new DatSignature(algorithm, key, key, config);
37
+ }
38
+ else {
39
+ const { publicKey, privateKey } = await crypto.subtle.generateKey({ name: "ECDSA", namedCurve: config.namedCurve }, true, ["sign", "verify"]);
40
+ return new DatSignature(algorithm, privateKey, publicKey, config);
41
+ }
40
42
  }
41
- static async imports(algorithm, format) {
43
+ static async imports(algorithm, base64) {
42
44
  const config = getCryptoConfig(algorithm);
43
- if (!format) {
44
- throw new Error(`Invalid DAT Signature Key Format`);
45
- }
46
- const parts = format.split("~");
47
- let signingKeyBase64 = null;
48
- let verifyingKeyBase64 = null;
49
- if (parts.length == 1) { // signing key only
50
- if (parts[0]) {
51
- signingKeyBase64 = parts[0] || null;
45
+ const bytes = DatUint8Array.fromBase64Url(base64);
46
+ if (config.name === "HMAC") {
47
+ if (bytes.length !== config.hmacLen) {
48
+ throw new Error(`Invalid HMAC key length: expected ${config.hmacLen}, got ${bytes.length}`);
52
49
  }
50
+ const key = await crypto.subtle.importKey("raw", bytes, { name: "HMAC", hash: config.hash }, true, ["sign", "verify"]);
51
+ return new DatSignature(algorithm, key, key, config);
53
52
  }
54
- else if (parts.length == 2) {
55
- if (parts[0]) {
56
- signingKeyBase64 = parts[0] || null;
53
+ else {
54
+ const privateLen = config.privateLen;
55
+ const publicLen = config.publicLen;
56
+ let signingKey = null;
57
+ let verifyingKey;
58
+ if (bytes.length === privateLen + publicLen) {
59
+ const privateBytes = bytes.slice(0, privateLen);
60
+ const publicBytes = bytes.slice(privateLen);
61
+ // Import public key
62
+ verifyingKey = await crypto.subtle.importKey("raw", publicBytes, { name: "ECDSA", namedCurve: config.namedCurve }, true, ["verify"]);
63
+ // Import private key using JWK to include X, Y from publicBytes
64
+ // uncompressed point format: 0x04 || X || Y
65
+ const xBytes = publicBytes.slice(1, 1 + (publicLen - 1) / 2);
66
+ const yBytes = publicBytes.slice(1 + (publicLen - 1) / 2);
67
+ const jwk = {
68
+ kty: "EC",
69
+ crv: config.namedCurve,
70
+ d: DatUint8Array.toBase64Url(privateBytes),
71
+ x: DatUint8Array.toBase64Url(xBytes),
72
+ y: DatUint8Array.toBase64Url(yBytes),
73
+ ext: true,
74
+ };
75
+ signingKey = await crypto.subtle.importKey("jwk", jwk, { name: "ECDSA", namedCurve: config.namedCurve }, true, ["sign"]);
57
76
  }
58
- if (parts[1]) {
59
- verifyingKeyBase64 = parts[1] || null;
77
+ else if (bytes.length === publicLen) {
78
+ verifyingKey = await crypto.subtle.importKey("raw", bytes, { name: "ECDSA", namedCurve: config.namedCurve }, true, ["verify"]);
60
79
  }
80
+ else {
81
+ throw new Error(`Invalid ECDSA key length`);
82
+ }
83
+ return new DatSignature(algorithm, signingKey, verifyingKey, config);
61
84
  }
62
- // 현재는 EC 계열밖에 없어서 따로 예외처리 하진 않는다.
63
- // 검증키가 추가되면 이부분도 바뀌어야 한다.
64
- let keyPair = await toEcdsaKeyPair(config, signingKeyBase64, verifyingKeyBase64);
65
- return new DatSignatureKey(algorithm, keyPair.privateKey, keyPair.publicKey, config);
66
85
  }
67
- async exports(option) {
68
- option = toDatSignatureKeyOutOption(option);
69
- let rv = "";
70
- if (option == "FULL" || option == "SIGNING") {
71
- if (this.signingKey) {
72
- let jwk = await crypto.subtle.exportKey("jwk", this.signingKey);
73
- rv += jwk.d;
86
+ async exports(verifyOnly = false) {
87
+ if (this.config.name === "HMAC") {
88
+ const bytes = await crypto.subtle.exportKey("raw", this.verifyingKey);
89
+ return DatArrayBuffer.toBase64Url(bytes);
90
+ }
91
+ else {
92
+ if (verifyOnly || !this.signingKey) {
93
+ const bytes = await crypto.subtle.exportKey("raw", this.verifyingKey);
94
+ return DatArrayBuffer.toBase64Url(bytes);
74
95
  }
75
96
  else {
76
- throw new Error(`Signature key is not supported - verifying only key`);
97
+ // Export private (raw) + public (raw uncompressed)
98
+ const jwk = await crypto.subtle.exportKey("jwk", this.signingKey);
99
+ const key = DatArrayBuffer.concat(DatArrayBuffer.fromBase64Url(jwk.d), await crypto.subtle.exportKey("raw", this.verifyingKey));
100
+ return DatArrayBuffer.toBase64Url(key);
77
101
  }
78
102
  }
79
- if (option == "FULL" || option == "VERIFYING") {
80
- rv += '~' + DatArrayBuffer.toBase64Url(await crypto.subtle.exportKey("raw", this.verifyingKey));
81
- }
82
- return rv;
83
103
  }
84
104
  async sign(body) {
85
105
  if (!this.signingKey) {
@@ -89,65 +109,31 @@ export class DatSignatureKey {
89
109
  if (!bytes.byteLength) {
90
110
  throw new Error(`Sign Error - body is empty`);
91
111
  }
92
- return crypto.subtle.sign({ name: this.config.name, hash: { name: this.config.hash }, }, this.signingKey, bytes);
112
+ if (this.config.name === "HMAC") {
113
+ return crypto.subtle.sign({ name: "HMAC" }, this.signingKey, bytes);
114
+ }
115
+ else {
116
+ return crypto.subtle.sign({ name: "ECDSA", hash: this.config.hash }, this.signingKey, bytes);
117
+ }
93
118
  }
94
119
  async verify(body, signature) {
95
120
  const bodyBytes = DatArrayBuffer.from(body);
96
121
  if (!bodyBytes.byteLength) {
97
122
  return false;
98
123
  }
99
- return crypto.subtle.verify({ name: this.config.name, hash: { name: this.config.hash }, }, this.verifyingKey, DatArrayBuffer.fromBase64Url(signature), bodyBytes);
124
+ const sigBytes = DatArrayBuffer.fromBase64Url(signature);
125
+ if (this.config.name === "HMAC") {
126
+ return crypto.subtle.verify({ name: "HMAC" }, this.verifyingKey, sigBytes, bodyBytes);
127
+ }
128
+ else {
129
+ return crypto.subtle.verify({ name: "ECDSA", hash: this.config.hash }, this.verifyingKey, sigBytes, bodyBytes);
130
+ }
100
131
  }
101
- hasSigningKey() {
132
+ signable() {
102
133
  return this.signingKey !== null;
103
134
  }
104
- }
105
- async function toEcdsaKeyPair(config, privateKeyBase64, publicKeyBase64) {
106
- let ecdsa;
107
- switch (config.curve) {
108
- case "P-256":
109
- ecdsa = p256;
110
- break;
111
- case "P-384":
112
- ecdsa = p384;
113
- break;
114
- case "P-521":
115
- ecdsa = p521;
116
- break;
117
- default:
118
- throw new Error(`Unsupported DAT Signature Algorithm: ${config.curve}`);
119
- }
120
- let privateKey = null;
121
- let privateKeyBytes = null;
122
- if (privateKeyBase64) {
123
- privateKeyBytes = DatUint8Array.fromBase64Url(privateKeyBase64);
124
- // d로부터 공개 키(Point) 계산
125
- const publicPoint = ecdsa.getPublicKey(privateKeyBytes, false);
126
- // 곡선별 좌표 길이 계산: (전체 길이 - 1) / 2 - 좌표 추출
127
- const coordinateLen = (publicPoint.length - 1) / 2;
128
- const xBytes = publicPoint.slice(1, 1 + coordinateLen);
129
- const yBytes = publicPoint.slice(1 + coordinateLen, 1 + 2 * coordinateLen);
130
- const jwk = {
131
- kty: "EC",
132
- crv: config.curve,
133
- d: privateKeyBase64,
134
- x: DatUint8Array.toBase64Url(xBytes),
135
- y: DatUint8Array.toBase64Url(yBytes),
136
- ext: true,
137
- };
138
- privateKey = await crypto.subtle.importKey("jwk", jwk, { name: "ECDSA", namedCurve: config.curve }, true, ["sign"]);
139
- }
140
- let publicKeyBytes;
141
- if (publicKeyBase64) {
142
- publicKeyBytes = DatArrayBuffer.fromBase64Url(publicKeyBase64);
143
- }
144
- else if (privateKeyBytes?.byteLength) {
145
- publicKeyBytes = DatArrayBuffer.from(ecdsa.getPublicKey(privateKeyBytes, false));
146
- }
147
- else {
148
- throw new Error(`Invalid DAT Signature Key Format`);
135
+ pair() {
136
+ return this.config.name === "ECDSA";
149
137
  }
150
- let publicKey = await crypto.subtle.importKey("raw", publicKeyBytes, { name: config.name, namedCurve: config.curve }, true, ["verify"]);
151
- return { privateKey, publicKey };
152
138
  }
153
139
  //# sourceMappingURL=signature.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signature.js","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,aAAa,GAAE,MAAM,YAAY,CAAC;AAE1D,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,uBAAuB,CAAC;AAIvD,MAAM,CAAC,MAAM,sBAAsB,GAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,yBAAyB,GAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAStG,MAAM,gBAAgB,GAAoC;IACtD,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1D,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1D,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;CAC7D,CAAC;AAEF,SAAS,0BAA0B,CAAC,MAAc;IAC9C,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,MAAM,CAAC;QAAC,KAAK,SAAS,CAAC;QAAC,KAAK,WAAW,CAAC,CAAC,OAAO,MAAM,CAAC;IACjE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,MAAM,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACtC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,EAAE,CAAC,CAAC;AACzE,CAAC;AAGD,MAAM,OAAO,eAAe;IACP,MAAM,CAAkB;IACzB,SAAS,CAAwB;IAChC,UAAU,CAAmB;IAC7B,YAAY,CAAY;IAEzC,YACI,SAAgC,EAChC,UAA4B,EAC5B,YAAuB,EACvB,SAA0B,eAAe,CAAC,SAAS,CAAC;QAEpD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAgC;QAClD,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;QACzC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAC7D,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,GAAE,EAAC,IAAI,EACnD,CAAC,MAAM,EAAE,QAAQ,CAAC,CACrB,CAAC;QACF,OAAO,IAAI,eAAe,CAAC,SAAkC,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,MAAc;QAClD,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,gBAAgB,GAAgB,IAAI,CAAC;QACzC,IAAI,kBAAkB,GAAgB,IAAI,CAAC;QAE3C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,mBAAmB;YACxC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACX,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YACxC,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACX,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YACxC,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACX,kBAAkB,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YAC1C,CAAC;QACL,CAAC;QAED,kCAAkC;QAClC,0BAA0B;QAC1B,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QACjF,OAAO,IAAI,eAAe,CAAC,SAAkC,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAgC;QAC1C,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAChE,EAAE,IAAI,GAAG,CAAC,CAAG,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAC3E,CAAC;QACL,CAAC;QACD,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;YAC5C,EAAE,IAAI,GAAG,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;QACnG,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAsD;QAC7D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CACrB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAE,EAC5D,IAAI,CAAC,UAAU,EAAE,KAAK,CACzB,CAAA;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAsD,EAAE,SAA2D;QAC5H,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CACvB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAE,EAC5D,IAAI,CAAC,YAAY,EACjB,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,SAAS,CACrD,CAAA;IACL,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;IACpC,CAAC;CACJ;AAGD,KAAK,UAAU,cAAc,CAAC,MAAuB,EAAE,gBAA6B,EAAE,eAA4B;IAC9G,IAAI,KAAY,CAAC;IACjB,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,OAAO;YAAE,KAAK,GAAG,IAAI,CAAC;YAAC,MAAM;QAClC,KAAK,OAAO;YAAE,KAAK,GAAG,IAAI,CAAC;YAAC,MAAM;QAClC,KAAK,OAAO;YAAE,KAAK,GAAG,IAAI,CAAC;YAAC,MAAM;QAClC;YACI,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,UAAU,GAAqB,IAAI,CAAC;IACxC,IAAI,eAAe,GAAsB,IAAI,CAAC;IAE9C,IAAI,gBAAgB,EAAE,CAAC;QACnB,eAAe,GAAG,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAChE,sBAAsB;QACtB,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAE/D,wCAAwC;QACxC,MAAM,aAAa,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;QAE3E,MAAM,GAAG,GAAG;YACR,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,MAAM,CAAC,KAAK;YACjB,CAAC,EAAE,gBAAgB;YACnB,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC;YACpC,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC;YACpC,GAAG,EAAE,IAAI;SACZ,CAAC;QAEF,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CACtC,KAAK,EACL,GAAG,EACH,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,EAC3C,IAAI,EACJ,CAAC,MAAM,CAAC,CACX,CAAC;IACN,CAAC;IAED,IAAI,cAA2B,CAAC;IAEhC,IAAI,eAAe,EAAE,CAAC;QAClB,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;IAClE,CAAC;SAAM,IAAI,eAAe,EAAE,UAAU,EAAE,CAAC;QACrC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAA;IACpF,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,SAAS,GAAc,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CACpD,KAAK,EAAE,cAAc,EACrB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,EAC/C,IAAI,EACJ,CAAC,QAAQ,CAAC,CACb,CAAA;IAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "saro-dat",
3
- "version": "3.3.0",
3
+ "version": "4.0.0",
4
4
  "description": "Distributed Access Token",
5
5
  "keywords": [
6
6
  "dat",
@@ -41,8 +41,7 @@
41
41
  "prepublishOnly": "npm run build"
42
42
  },
43
43
  "dependencies": {
44
- "@noble/curves": "^2.2.0",
45
- "infinite-unixtime": "^1.1.3"
44
+ "infinite-unixtime": "^1.1.4"
46
45
  },
47
46
  "devDependencies": {
48
47
  "@types/node": "^25.7.0",