saro-dat 1.1.2 → 2.0.1
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 +18 -25
- 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 +8 -10
- 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 +27 -19
- 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 +23 -39
- 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.misc.js → util/DatInteger.js} +3 -6
- 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/util.base64.d.ts +0 -6
- package/dist/util.base64.d.ts.map +0 -1
- package/dist/util.base64.js +0 -29
- package/dist/util.base64.js.map +0 -1
- package/dist/util.bytes.d.ts +0 -17
- package/dist/util.bytes.d.ts.map +0 -1
- package/dist/util.bytes.js +0 -85
- package/dist/util.bytes.js.map +0 -1
- package/dist/util.es6.d.ts +0 -7
- package/dist/util.es6.d.ts.map +0 -1
- package/dist/util.es6.js +0 -43
- package/dist/util.es6.js.map +0 -1
- package/dist/util.hex.d.ts +0 -4
- package/dist/util.hex.d.ts.map +0 -1
- package/dist/util.hex.js +0 -33
- package/dist/util.hex.js.map +0 -1
- package/dist/util.misc.d.ts +0 -4
- package/dist/util.misc.d.ts.map +0 -1
- package/dist/util.misc.js.map +0 -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;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"}
|
package/dist/crypto.js
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
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 },
|
|
5
6
|
};
|
|
6
|
-
function unsupportedAlgorithm(algorithm) {
|
|
7
|
-
return new Error(`Unsupported DAT Crypto Algorithm: ${algorithm}`);
|
|
8
|
-
}
|
|
9
7
|
function getCryptoConfig(algorithm) {
|
|
10
8
|
const config = CRYPTO_CONFIG[algorithm];
|
|
11
9
|
if (config) {
|
|
12
10
|
return config;
|
|
13
11
|
}
|
|
14
|
-
throw
|
|
12
|
+
throw new Error(`Unsupported DAT Crypto Algorithm: ${algorithm}`);
|
|
15
13
|
}
|
|
16
14
|
export class DatCryptoKey {
|
|
17
15
|
config;
|
|
@@ -29,44 +27,39 @@ export class DatCryptoKey {
|
|
|
29
27
|
}
|
|
30
28
|
static async imports(algorithm, base64) {
|
|
31
29
|
const config = getCryptoConfig(algorithm);
|
|
32
|
-
const bytes =
|
|
30
|
+
const bytes = DatArrayBuffer.fromBase64Url(base64);
|
|
33
31
|
const key = await crypto.subtle.importKey("raw", bytes, { name: config.name }, true, ["encrypt", "decrypt"]);
|
|
34
32
|
return new DatCryptoKey(algorithm, key, config);
|
|
35
33
|
}
|
|
36
34
|
async exports() {
|
|
37
|
-
return toBase64Url(await crypto.subtle.exportKey("raw", this.key));
|
|
35
|
+
return DatArrayBuffer.toBase64Url(await crypto.subtle.exportKey("raw", this.key));
|
|
38
36
|
}
|
|
39
37
|
async encrypt(data) {
|
|
40
|
-
|
|
41
|
-
if (!
|
|
42
|
-
return
|
|
38
|
+
const buffer = DatArrayBuffer.from(data);
|
|
39
|
+
if (!buffer.byteLength) {
|
|
40
|
+
return buffer;
|
|
43
41
|
}
|
|
44
42
|
if (this.config.name == "AES-GCM") {
|
|
45
43
|
const nonce = new Uint8Array(12);
|
|
46
44
|
crypto.getRandomValues(nonce);
|
|
47
|
-
const encrypt = await crypto.subtle.encrypt({ name: this.config.name, iv: nonce }, this.key,
|
|
48
|
-
return
|
|
45
|
+
const encrypt = await crypto.subtle.encrypt({ name: this.config.name, iv: nonce }, this.key, buffer);
|
|
46
|
+
return DatArrayBuffer.concat(nonce, encrypt);
|
|
49
47
|
}
|
|
50
|
-
throw
|
|
48
|
+
throw new Error(`Unsupported DAT Crypto Algorithm: ${this.algorithm}`);
|
|
51
49
|
}
|
|
52
50
|
async decrypt(data) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
else if (!(data instanceof ArrayBuffer)) {
|
|
57
|
-
data = toArrayBuffer(data);
|
|
58
|
-
}
|
|
59
|
-
if (!data.byteLength) {
|
|
60
|
-
return data;
|
|
51
|
+
const buffer = DatArrayBuffer.fromBase64Url(data);
|
|
52
|
+
if (!buffer.byteLength) {
|
|
53
|
+
return buffer;
|
|
61
54
|
}
|
|
62
55
|
if (this.config.name == "AES-GCM") {
|
|
63
|
-
if (
|
|
56
|
+
if (buffer.byteLength <= 12) {
|
|
64
57
|
throw new Error("Invalid data length");
|
|
65
58
|
}
|
|
66
|
-
const nonce =
|
|
67
|
-
return await crypto.subtle.decrypt({ name: this.config.name, iv: nonce }, this.key,
|
|
59
|
+
const nonce = buffer.slice(0, 12);
|
|
60
|
+
return await crypto.subtle.decrypt({ name: this.config.name, iv: nonce }, this.key, buffer.slice(12));
|
|
68
61
|
}
|
|
69
|
-
throw
|
|
62
|
+
throw new Error(`Unsupported DAT Crypto Algorithm: ${this.algorithm}`);
|
|
70
63
|
}
|
|
71
64
|
}
|
|
72
65
|
//# sourceMappingURL=crypto.js.map
|
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":"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"}
|
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,EAAG,MAAM,YAAY,CAAC;AAE/E,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;IAmBhD,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 {
|
|
1
|
+
import { Dat, DatKey, } from "./index.js";
|
|
2
2
|
export class DatBank {
|
|
3
3
|
issueKey;
|
|
4
4
|
verifyKeys;
|
|
@@ -7,18 +7,17 @@ export class DatBank {
|
|
|
7
7
|
this.verifyKeys = verifyKeys;
|
|
8
8
|
}
|
|
9
9
|
static async imports(format) {
|
|
10
|
-
const now = nowUnixtime();
|
|
11
10
|
const lines = format.split('\n').map(e => e.trim()).filter(e => !!e);
|
|
12
11
|
let keys = [];
|
|
13
12
|
for (const line of lines) {
|
|
14
13
|
const key = await DatKey.imports(line);
|
|
15
14
|
if (keys.find(e => e.kid === key.kid)) {
|
|
16
|
-
|
|
15
|
+
throw new Error(`Invalid DAT KEYS - Duplicate KID ${key.kid}`);
|
|
17
16
|
}
|
|
18
17
|
keys.push(key);
|
|
19
18
|
}
|
|
20
19
|
keys.sort((a, b) => a.issueBegin - b.issueBegin);
|
|
21
|
-
const issueKey = keys.findLast(e => e.
|
|
20
|
+
const issueKey = keys.findLast(e => e.isIssuable()) || null;
|
|
22
21
|
return new DatBank(issueKey, keys);
|
|
23
22
|
}
|
|
24
23
|
async exports(datSignatureKeyOutOption) {
|
|
@@ -34,15 +33,14 @@ export class DatBank {
|
|
|
34
33
|
throw new Error("Invalid DAT: Signing Key Does Not Exist");
|
|
35
34
|
}
|
|
36
35
|
async toPayload(dat) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return Promise.reject("Invalid DAT: Format");
|
|
36
|
+
if (!(dat = Dat.from(dat)).format) {
|
|
37
|
+
throw new Error("Invalid DAT: Format");
|
|
40
38
|
}
|
|
41
|
-
const key =
|
|
39
|
+
const key = this.find(dat.kid);
|
|
42
40
|
if (key != null) {
|
|
43
|
-
return key.toPayload(
|
|
41
|
+
return key.toPayload(dat);
|
|
44
42
|
}
|
|
45
|
-
|
|
43
|
+
throw new Error("Invalid DAT: KID Not Found");
|
|
46
44
|
}
|
|
47
45
|
}
|
|
48
46
|
//# sourceMappingURL=dat.bank.js.map
|
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":"AAAA,OAAO,EAAC,GAAG,EAAE,MAAM,GAAyC,MAAM,YAAY,CAAC;AAE/E,MAAM,OAAO,OAAO;IACC,QAAQ,CAAgB;IACxB,UAAU,CAAW;IAEtC,YAAY,WAA0B,IAAI,EAAE,aAAuB,EAAE;QACjE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,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,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,IAAI,GAAa,EAAE,CAAC;QAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC;QAE5D,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,wBAAkD;QAC5D,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxG,CAAC;IAED,IAAI,CAAC,GAAW;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAuD,EAAE,MAAwD;QACzH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAA8B;QAC1C,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACd,OAAO,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;CACJ"}
|
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 (
|
|
73
|
-
|
|
71
|
+
dat = Dat.from(dat);
|
|
72
|
+
if (!dat.format) {
|
|
73
|
+
throw new Error("Invalid DAT: Format");
|
|
74
74
|
}
|
|
75
|
-
if (
|
|
76
|
-
|
|
75
|
+
if (dat.expired()) {
|
|
76
|
+
throw new Error("Invalid DAT: Expired");
|
|
77
77
|
}
|
|
78
|
-
if (!await this.signatureKey.verify(
|
|
79
|
-
|
|
78
|
+
if (!await this.signatureKey.verify(dat.body(), dat.signature)) {
|
|
79
|
+
throw new Error('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 this.hasSigningKey() && 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;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"}
|