@opentdf/sdk 0.2.0-beta.1758 → 0.2.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/README.md +45 -38
- package/dist/cjs/src/access.js +47 -11
- package/dist/cjs/src/auth/auth.js +5 -5
- package/dist/cjs/src/auth/oidc-clientcredentials-provider.js +1 -1
- package/dist/cjs/src/auth/oidc-externaljwt-provider.js +1 -1
- package/dist/cjs/src/auth/oidc-refreshtoken-provider.js +1 -1
- package/dist/cjs/src/auth/oidc.js +1 -1
- package/dist/cjs/src/auth/providers.js +1 -1
- package/dist/cjs/src/concurrency.js +3 -4
- package/dist/cjs/src/encodings/base64.js +4 -4
- package/dist/cjs/src/encodings/hex.js +5 -6
- package/dist/cjs/src/encodings/index.js +18 -8
- package/dist/cjs/src/errors.js +1 -1
- package/dist/cjs/src/index.js +28 -318
- package/dist/cjs/src/nanoclients.js +285 -0
- package/dist/cjs/src/nanoindex.js +47 -0
- package/dist/cjs/src/nanotdf/Client.js +18 -8
- package/dist/cjs/src/nanotdf/NanoTDF.js +1 -1
- package/dist/cjs/src/nanotdf/decrypt.js +2 -2
- package/dist/cjs/src/nanotdf/encrypt-dataset.js +2 -2
- package/dist/cjs/src/nanotdf/encrypt.js +2 -2
- package/dist/cjs/src/nanotdf/helpers/calculateByCurve.js +3 -4
- package/dist/cjs/src/nanotdf/helpers/getHkdfSalt.js +2 -2
- package/dist/cjs/src/nanotdf/models/Ciphers.js +3 -3
- package/dist/cjs/src/nanotdf/models/EcCurves.js +3 -3
- package/dist/cjs/src/nanotdf/models/Header.js +1 -1
- package/dist/cjs/src/nanotdf/models/Payload.js +1 -1
- package/dist/cjs/src/nanotdf/models/Policy/AbstractPolicy.js +1 -1
- package/dist/cjs/src/nanotdf/models/Policy/EmbeddedPolicy.js +1 -1
- package/dist/cjs/src/nanotdf/models/Policy/PolicyFactory.js +1 -1
- package/dist/cjs/src/nanotdf/models/ResourceLocator.js +1 -1
- package/dist/cjs/src/nanotdf/models/Signature.js +1 -1
- package/dist/cjs/src/nanotdf-crypto/ciphers.js +1 -1
- package/dist/cjs/src/nanotdf-crypto/decrypt.js +2 -2
- package/dist/cjs/src/nanotdf-crypto/digest.js +2 -2
- package/dist/cjs/src/nanotdf-crypto/ecdsaSignature.js +4 -5
- package/dist/cjs/src/nanotdf-crypto/encrypt.js +2 -2
- package/dist/cjs/src/nanotdf-crypto/exportCryptoKey.js +2 -2
- package/dist/cjs/src/nanotdf-crypto/generateKeyPair.js +2 -2
- package/dist/cjs/src/nanotdf-crypto/generateRandomNumber.js +2 -2
- package/dist/cjs/src/nanotdf-crypto/index.js +21 -13
- package/dist/cjs/src/nanotdf-crypto/keyAgreement.js +10 -8
- package/dist/cjs/src/nanotdf-crypto/pemPublicToCrypto.js +20 -11
- package/dist/cjs/src/opentdf.js +251 -0
- package/dist/cjs/src/policy/api.js +2 -3
- package/dist/cjs/src/policy/granter.js +3 -4
- package/dist/cjs/src/seekable.js +157 -0
- package/dist/cjs/src/tdf/AttributeObject.js +2 -4
- package/dist/cjs/src/tdf/Policy.js +1 -2
- package/dist/cjs/src/utils.js +12 -14
- package/dist/cjs/src/version.js +6 -2
- package/dist/cjs/tdf3/index.js +27 -15
- package/dist/cjs/tdf3/src/assertions.js +25 -11
- package/dist/cjs/tdf3/src/binary.js +1 -1
- package/dist/cjs/tdf3/src/ciphers/aes-gcm-cipher.js +1 -1
- package/dist/cjs/tdf3/src/ciphers/symmetric-cipher-base.js +1 -1
- package/dist/cjs/tdf3/src/client/DecoratedReadableStream.js +7 -74
- package/dist/cjs/tdf3/src/client/builders.js +26 -22
- package/dist/cjs/tdf3/src/client/index.js +88 -61
- package/dist/cjs/tdf3/src/client/validation.js +3 -3
- package/dist/cjs/tdf3/src/crypto/crypto-utils.js +1 -1
- package/dist/cjs/tdf3/src/crypto/index.js +18 -18
- package/dist/cjs/tdf3/src/index.js +22 -11
- package/dist/cjs/tdf3/src/models/attribute-set.js +1 -1
- package/dist/cjs/tdf3/src/models/encryption-information.js +3 -3
- package/dist/cjs/tdf3/src/models/key-access.js +67 -35
- package/dist/cjs/tdf3/src/models/policy.js +3 -3
- package/dist/cjs/tdf3/src/tdf.js +177 -151
- package/dist/cjs/tdf3/src/utils/buffer-crc32.js +2 -3
- package/dist/cjs/tdf3/src/utils/index.js +30 -28
- package/dist/cjs/tdf3/src/utils/keysplit.js +4 -5
- package/dist/cjs/tdf3/src/utils/unwrap.js +21 -0
- package/dist/cjs/tdf3/src/utils/zip-reader.js +4 -4
- package/dist/cjs/tdf3/src/utils/zip-writer.js +4 -4
- package/dist/types/src/access.d.ts +3 -0
- package/dist/types/src/access.d.ts.map +1 -1
- package/dist/types/src/auth/providers.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +5 -136
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/nanoclients.d.ts +107 -0
- package/dist/types/src/nanoclients.d.ts.map +1 -0
- package/dist/types/src/nanoindex.d.ts +5 -0
- package/dist/types/src/nanoindex.d.ts.map +1 -0
- package/dist/types/src/nanotdf/enum/CipherEnum.d.ts +1 -1
- package/dist/types/src/nanotdf/enum/CipherEnum.d.ts.map +1 -1
- package/dist/types/src/nanotdf/enum/PolicyTypeEnum.d.ts +1 -1
- package/dist/types/src/nanotdf/enum/PolicyTypeEnum.d.ts.map +1 -1
- package/dist/types/src/nanotdf/models/DefaultParams.d.ts +1 -1
- package/dist/types/src/nanotdf/models/ResourceLocator.d.ts.map +1 -1
- package/dist/types/src/nanotdf-crypto/generateKeyPair.d.ts +1 -1
- package/dist/types/src/nanotdf-crypto/generateKeyPair.d.ts.map +1 -1
- package/dist/types/src/nanotdf-crypto/generateRandomNumber.d.ts +1 -1
- package/dist/types/src/nanotdf-crypto/generateRandomNumber.d.ts.map +1 -1
- package/dist/types/src/nanotdf-crypto/index.d.ts +2 -3
- package/dist/types/src/nanotdf-crypto/index.d.ts.map +1 -1
- package/dist/types/src/nanotdf-crypto/keyAgreement.d.ts.map +1 -1
- package/dist/types/src/opentdf.d.ts +110 -0
- package/dist/types/src/opentdf.d.ts.map +1 -0
- package/dist/types/src/seekable.d.ts +39 -0
- package/dist/types/src/seekable.d.ts.map +1 -0
- package/dist/types/src/tdf/AttributeObject.d.ts +0 -2
- package/dist/types/src/tdf/AttributeObject.d.ts.map +1 -1
- package/dist/types/src/tdf/NanoTDF/NanoTDF.d.ts +2 -2
- package/dist/types/src/tdf/NanoTDF/NanoTDF.d.ts.map +1 -1
- package/dist/types/src/tdf/Policy.d.ts.map +1 -1
- package/dist/types/src/tdf/PolicyObject.d.ts +0 -1
- package/dist/types/src/tdf/PolicyObject.d.ts.map +1 -1
- package/dist/types/src/utils.d.ts +0 -1
- package/dist/types/src/utils.d.ts.map +1 -1
- package/dist/types/src/version.d.ts +4 -0
- package/dist/types/src/version.d.ts.map +1 -1
- package/dist/types/tdf3/index.d.ts +3 -2
- package/dist/types/tdf3/index.d.ts.map +1 -1
- package/dist/types/tdf3/src/assertions.d.ts +3 -3
- package/dist/types/tdf3/src/assertions.d.ts.map +1 -1
- package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts +1 -13
- package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts.map +1 -1
- package/dist/types/tdf3/src/client/builders.d.ts +43 -37
- package/dist/types/tdf3/src/client/builders.d.ts.map +1 -1
- package/dist/types/tdf3/src/client/index.d.ts +8 -9
- package/dist/types/tdf3/src/client/index.d.ts.map +1 -1
- package/dist/types/tdf3/src/client/validation.d.ts +3 -3
- package/dist/types/tdf3/src/client/validation.d.ts.map +1 -1
- package/dist/types/tdf3/src/crypto/crypto-utils.d.ts.map +1 -1
- package/dist/types/tdf3/src/index.d.ts +1 -1
- package/dist/types/tdf3/src/index.d.ts.map +1 -1
- package/dist/types/tdf3/src/models/key-access.d.ts +63 -15
- package/dist/types/tdf3/src/models/key-access.d.ts.map +1 -1
- package/dist/types/tdf3/src/models/manifest.d.ts +2 -0
- package/dist/types/tdf3/src/models/manifest.d.ts.map +1 -1
- package/dist/types/tdf3/src/models/policy.d.ts +0 -1
- package/dist/types/tdf3/src/models/policy.d.ts.map +1 -1
- package/dist/types/tdf3/src/tdf.d.ts +20 -24
- package/dist/types/tdf3/src/tdf.d.ts.map +1 -1
- package/dist/types/tdf3/src/utils/index.d.ts +0 -2
- package/dist/types/tdf3/src/utils/index.d.ts.map +1 -1
- package/dist/types/tdf3/src/utils/unwrap.d.ts +2 -0
- package/dist/types/tdf3/src/utils/unwrap.d.ts.map +1 -0
- package/dist/types/tdf3/src/utils/zip-reader.d.ts +1 -1
- package/dist/types/tdf3/src/utils/zip-reader.d.ts.map +1 -1
- package/dist/types/tdf3/src/utils/zip-writer.d.ts +2 -2
- package/dist/web/src/access.js +40 -7
- package/dist/web/src/auth/auth.js +1 -1
- package/dist/web/src/auth/oidc-clientcredentials-provider.js +1 -1
- package/dist/web/src/auth/oidc-externaljwt-provider.js +1 -1
- package/dist/web/src/auth/oidc-refreshtoken-provider.js +1 -1
- package/dist/web/src/auth/oidc.js +1 -1
- package/dist/web/src/auth/providers.js +1 -1
- package/dist/web/src/concurrency.js +1 -1
- package/dist/web/src/encodings/base64.js +1 -1
- package/dist/web/src/encodings/hex.js +1 -1
- package/dist/web/src/errors.js +1 -1
- package/dist/web/src/index.js +6 -310
- package/dist/web/src/nanoclients.js +280 -0
- package/dist/web/src/nanoindex.js +5 -0
- package/dist/web/src/nanotdf/Client.js +1 -1
- package/dist/web/src/nanotdf/NanoTDF.js +1 -1
- package/dist/web/src/nanotdf/encrypt-dataset.js +1 -1
- package/dist/web/src/nanotdf/encrypt.js +1 -1
- package/dist/web/src/nanotdf/models/Ciphers.js +1 -1
- package/dist/web/src/nanotdf/models/EcCurves.js +1 -1
- package/dist/web/src/nanotdf/models/Header.js +1 -1
- package/dist/web/src/nanotdf/models/Payload.js +1 -1
- package/dist/web/src/nanotdf/models/Policy/AbstractPolicy.js +1 -1
- package/dist/web/src/nanotdf/models/Policy/EmbeddedPolicy.js +1 -1
- package/dist/web/src/nanotdf/models/Policy/PolicyFactory.js +1 -1
- package/dist/web/src/nanotdf/models/ResourceLocator.js +1 -1
- package/dist/web/src/nanotdf/models/Signature.js +1 -1
- package/dist/web/src/nanotdf-crypto/ciphers.js +1 -1
- package/dist/web/src/nanotdf-crypto/ecdsaSignature.js +1 -1
- package/dist/web/src/nanotdf-crypto/generateKeyPair.js +2 -2
- package/dist/web/src/nanotdf-crypto/generateRandomNumber.js +2 -2
- package/dist/web/src/nanotdf-crypto/index.js +3 -4
- package/dist/web/src/nanotdf-crypto/keyAgreement.js +9 -6
- package/dist/web/src/nanotdf-crypto/pemPublicToCrypto.js +1 -1
- package/dist/web/src/opentdf.js +242 -0
- package/dist/web/src/policy/api.js +1 -1
- package/dist/web/src/policy/granter.js +1 -1
- package/dist/web/src/seekable.js +148 -0
- package/dist/web/src/tdf/AttributeObject.js +1 -2
- package/dist/web/src/tdf/Policy.js +1 -2
- package/dist/web/src/utils.js +2 -3
- package/dist/web/src/version.js +5 -1
- package/dist/web/tdf3/index.js +3 -2
- package/dist/web/tdf3/src/assertions.js +21 -6
- package/dist/web/tdf3/src/binary.js +1 -1
- package/dist/web/tdf3/src/ciphers/aes-gcm-cipher.js +1 -1
- package/dist/web/tdf3/src/ciphers/symmetric-cipher-base.js +1 -1
- package/dist/web/tdf3/src/client/DecoratedReadableStream.js +4 -68
- package/dist/web/tdf3/src/client/builders.js +26 -22
- package/dist/web/tdf3/src/client/index.js +69 -52
- package/dist/web/tdf3/src/client/validation.js +1 -1
- package/dist/web/tdf3/src/crypto/crypto-utils.js +1 -1
- package/dist/web/tdf3/src/crypto/index.js +1 -1
- package/dist/web/tdf3/src/index.js +2 -2
- package/dist/web/tdf3/src/models/attribute-set.js +1 -1
- package/dist/web/tdf3/src/models/encryption-information.js +3 -3
- package/dist/web/tdf3/src/models/key-access.js +47 -24
- package/dist/web/tdf3/src/models/policy.js +1 -1
- package/dist/web/tdf3/src/tdf.js +149 -130
- package/dist/web/tdf3/src/utils/buffer-crc32.js +1 -1
- package/dist/web/tdf3/src/utils/index.js +1 -5
- package/dist/web/tdf3/src/utils/keysplit.js +1 -1
- package/dist/web/tdf3/src/utils/unwrap.js +18 -0
- package/dist/web/tdf3/src/utils/zip-reader.js +1 -1
- package/dist/web/tdf3/src/utils/zip-writer.js +1 -1
- package/package.json +45 -42
- package/src/access.ts +37 -1
- package/src/index.ts +5 -435
- package/src/nanoclients.ts +405 -0
- package/src/nanoindex.ts +4 -0
- package/src/nanotdf-crypto/generateKeyPair.ts +1 -1
- package/src/nanotdf-crypto/generateRandomNumber.ts +1 -1
- package/src/nanotdf-crypto/index.ts +2 -3
- package/src/nanotdf-crypto/keyAgreement.ts +14 -7
- package/src/opentdf.ts +473 -0
- package/{tdf3/src/utils/chunkers.ts → src/seekable.ts} +69 -20
- package/src/tdf/AttributeObject.ts +0 -3
- package/src/tdf/Policy.ts +0 -1
- package/src/tdf/PolicyObject.ts +0 -1
- package/src/utils.ts +1 -3
- package/src/version.ts +5 -0
- package/tdf3/index.ts +14 -2
- package/tdf3/src/assertions.ts +33 -8
- package/tdf3/src/client/DecoratedReadableStream.ts +2 -78
- package/tdf3/src/client/builders.ts +44 -26
- package/tdf3/src/client/index.ts +101 -86
- package/tdf3/src/index.ts +1 -1
- package/tdf3/src/models/encryption-information.ts +2 -2
- package/tdf3/src/models/key-access.ts +120 -38
- package/tdf3/src/models/manifest.ts +3 -0
- package/tdf3/src/models/policy.ts +0 -1
- package/tdf3/src/tdf.ts +251 -207
- package/tdf3/src/utils/index.ts +0 -5
- package/tdf3/src/utils/unwrap.ts +17 -0
- package/tdf3/src/utils/zip-reader.ts +1 -1
- package/dist/cjs/src/nanotdf-crypto/importRawKey.js +0 -18
- package/dist/cjs/tdf3/src/templates/default.html.js +0 -98
- package/dist/cjs/tdf3/src/templates/escaper.js +0 -15
- package/dist/cjs/tdf3/src/templates/index.js +0 -12
- package/dist/cjs/tdf3/src/utils/chunkers.js +0 -114
- package/dist/cjs/tdf3/src/version.js +0 -6
- package/dist/types/src/nanotdf-crypto/importRawKey.d.ts +0 -13
- package/dist/types/src/nanotdf-crypto/importRawKey.d.ts.map +0 -1
- package/dist/types/tdf3/src/templates/default.html.d.ts +0 -8
- package/dist/types/tdf3/src/templates/default.html.d.ts.map +0 -1
- package/dist/types/tdf3/src/templates/escaper.d.ts +0 -6
- package/dist/types/tdf3/src/templates/escaper.d.ts.map +0 -1
- package/dist/types/tdf3/src/templates/index.d.ts +0 -3
- package/dist/types/tdf3/src/templates/index.d.ts.map +0 -1
- package/dist/types/tdf3/src/utils/chunkers.d.ts +0 -29
- package/dist/types/tdf3/src/utils/chunkers.d.ts.map +0 -1
- package/dist/types/tdf3/src/version.d.ts +0 -3
- package/dist/types/tdf3/src/version.d.ts.map +0 -1
- package/dist/web/src/nanotdf-crypto/importRawKey.js +0 -15
- package/dist/web/tdf3/src/templates/default.html.js +0 -96
- package/dist/web/tdf3/src/templates/escaper.js +0 -10
- package/dist/web/tdf3/src/templates/index.js +0 -3
- package/dist/web/tdf3/src/utils/chunkers.js +0 -107
- package/dist/web/tdf3/src/version.js +0 -3
- package/src/nanotdf-crypto/importRawKey.ts +0 -19
- package/tdf3/src/templates/default.html.ts +0 -105
- package/tdf3/src/templates/escaper.ts +0 -10
- package/tdf3/src/templates/index.ts +0 -2
- package/tdf3/src/version.ts +0 -2
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.OpenTDF = exports.RewrapCache = exports.isPublicKeyAlgorithm = exports.TDF3Client = void 0;
|
|
7
|
+
const errors_js_1 = require("./errors.js");
|
|
8
|
+
const nanoclients_js_1 = require("./nanoclients.js");
|
|
9
|
+
var index_js_1 = require("../tdf3/src/client/index.js");
|
|
10
|
+
Object.defineProperty(exports, "TDF3Client", { enumerable: true, get: function () { return index_js_1.Client; } });
|
|
11
|
+
const NanoTDF_js_1 = __importDefault(require("./nanotdf/NanoTDF.js"));
|
|
12
|
+
const decrypt_js_1 = __importDefault(require("./nanotdf/decrypt.js"));
|
|
13
|
+
const Client_js_1 = __importDefault(require("./nanotdf/Client.js"));
|
|
14
|
+
const seekable_js_1 = require("./seekable.js");
|
|
15
|
+
const index_js_2 = require("../tdf3/src/client/index.js");
|
|
16
|
+
const access_js_1 = require("./access.js");
|
|
17
|
+
Object.defineProperty(exports, "isPublicKeyAlgorithm", { enumerable: true, get: function () { return access_js_1.isPublicKeyAlgorithm; } });
|
|
18
|
+
const defaultRewrapCacheOptions = {
|
|
19
|
+
bypass: false,
|
|
20
|
+
maxAge: 300000,
|
|
21
|
+
pollInterval: 500,
|
|
22
|
+
};
|
|
23
|
+
// Cache for headers of nanotdf collections.
|
|
24
|
+
// This allows the SDK to quickly open multiple entries of the same collection.
|
|
25
|
+
// It has a demon that removes all keys that have not been accessed in the last 5 minutes.
|
|
26
|
+
// To cancel the demon, and clear the cache, call `close()`.
|
|
27
|
+
class RewrapCache {
|
|
28
|
+
constructor(opts) {
|
|
29
|
+
const { bypass, maxAge, pollInterval } = { ...defaultRewrapCacheOptions, ...opts };
|
|
30
|
+
if (bypass) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
this.cache = new Map();
|
|
34
|
+
this.closer = setInterval(() => {
|
|
35
|
+
const now = Date.now();
|
|
36
|
+
const c = this.cache;
|
|
37
|
+
if (!c) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
for (const [key, value] of c.entries()) {
|
|
41
|
+
if (now - value.lastAccessTime > maxAge) {
|
|
42
|
+
c.delete(key);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}, pollInterval);
|
|
46
|
+
}
|
|
47
|
+
get(key) {
|
|
48
|
+
if (!this.cache) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
const entry = this.cache.get(key);
|
|
52
|
+
if (entry) {
|
|
53
|
+
entry.lastAccessTime = Date.now();
|
|
54
|
+
return entry.value;
|
|
55
|
+
}
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
set(key, value) {
|
|
59
|
+
if (!this.cache) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
this.cache.set(key, { lastAccessTime: Date.now(), value });
|
|
63
|
+
}
|
|
64
|
+
close() {
|
|
65
|
+
if (this.closer !== undefined) {
|
|
66
|
+
clearInterval(this.closer);
|
|
67
|
+
delete this.closer;
|
|
68
|
+
delete this.cache;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.RewrapCache = RewrapCache;
|
|
73
|
+
// SDK for dealing with OpenTDF data and policy services.
|
|
74
|
+
class OpenTDF {
|
|
75
|
+
constructor({ authProvider, dpopKeys, defaultCreateOptions, defaultReadOptions, disableDPoP, policyEndpoint, rewrapCacheOptions, }) {
|
|
76
|
+
this.authProvider = authProvider;
|
|
77
|
+
this.defaultCreateOptions = defaultCreateOptions || {};
|
|
78
|
+
this.defaultReadOptions = defaultReadOptions || {};
|
|
79
|
+
this.dpopEnabled = !!disableDPoP;
|
|
80
|
+
this.policyEndpoint = policyEndpoint || '';
|
|
81
|
+
this.rewrapCache = new RewrapCache(rewrapCacheOptions);
|
|
82
|
+
this.tdf3Client = new index_js_2.Client({
|
|
83
|
+
authProvider,
|
|
84
|
+
dpopKeys,
|
|
85
|
+
kasEndpoint: 'https://disallow.all.invalid',
|
|
86
|
+
policyEndpoint,
|
|
87
|
+
});
|
|
88
|
+
this.dpopKeys =
|
|
89
|
+
dpopKeys ??
|
|
90
|
+
crypto.subtle.generateKey({
|
|
91
|
+
name: 'RSASSA-PKCS1-v1_5',
|
|
92
|
+
hash: 'SHA-256',
|
|
93
|
+
modulusLength: 2048,
|
|
94
|
+
publicExponent: new Uint8Array([0x01, 0x00, 0x01]),
|
|
95
|
+
}, true, ['sign', 'verify']);
|
|
96
|
+
}
|
|
97
|
+
async createNanoTDF(opts) {
|
|
98
|
+
opts = { ...this.defaultCreateOptions, ...opts };
|
|
99
|
+
const collection = await this.createNanoTDFCollection(opts);
|
|
100
|
+
try {
|
|
101
|
+
return await collection.encrypt(opts.source);
|
|
102
|
+
}
|
|
103
|
+
finally {
|
|
104
|
+
await collection.close();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Creates a new collection object, which can be used to encrypt a series of data with the same policy.
|
|
109
|
+
* @returns
|
|
110
|
+
*/
|
|
111
|
+
async createNanoTDFCollection(opts) {
|
|
112
|
+
opts = { ...this.defaultCreateOptions, ...opts };
|
|
113
|
+
return new Collection(this.authProvider, opts);
|
|
114
|
+
}
|
|
115
|
+
async createZTDF(opts) {
|
|
116
|
+
opts = { ...this.defaultCreateOptions, ...opts };
|
|
117
|
+
const oldStream = await this.tdf3Client.encrypt({
|
|
118
|
+
source: await (0, seekable_js_1.sourceToStream)(opts.source),
|
|
119
|
+
assertionConfigs: opts.assertionConfigs,
|
|
120
|
+
autoconfigure: !!opts.autoconfigure,
|
|
121
|
+
defaultKASEndpoint: opts.defaultKASEndpoint,
|
|
122
|
+
byteLimit: opts.byteLimit,
|
|
123
|
+
mimeType: opts.mimeType,
|
|
124
|
+
scope: {
|
|
125
|
+
attributes: opts.attributes,
|
|
126
|
+
},
|
|
127
|
+
splitPlan: opts.splitPlan,
|
|
128
|
+
windowSize: opts.windowSize,
|
|
129
|
+
wrappingKeyAlgorithm: opts.wrappingKeyAlgorithm,
|
|
130
|
+
});
|
|
131
|
+
const stream = oldStream.stream;
|
|
132
|
+
stream.manifest = Promise.resolve(oldStream.manifest);
|
|
133
|
+
stream.metadata = Promise.resolve(oldStream.metadata);
|
|
134
|
+
return stream;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Decrypts a nanotdf object. Optionally, stores the collection header and its DEK.
|
|
138
|
+
* @param ciphertext
|
|
139
|
+
*/
|
|
140
|
+
async read(opts) {
|
|
141
|
+
opts = { ...this.defaultReadOptions, ...opts };
|
|
142
|
+
const chunker = await (0, seekable_js_1.fromSource)(opts.source);
|
|
143
|
+
const prefix = await chunker(0, 3);
|
|
144
|
+
// switch for prefix, if starts with `PK` in ascii, or `L1L` in ascii:
|
|
145
|
+
if (prefix[0] === 0x50 && prefix[1] === 0x4b) {
|
|
146
|
+
const allowList = new access_js_1.OriginAllowList(opts.allowedKASEndpoints ?? [], opts.ignoreAllowlist);
|
|
147
|
+
const oldStream = await this.tdf3Client.decrypt({
|
|
148
|
+
source: opts.source,
|
|
149
|
+
allowList,
|
|
150
|
+
assertionVerificationKeys: opts.assertionVerificationKeys,
|
|
151
|
+
noVerifyAssertions: opts.noVerify,
|
|
152
|
+
wrappingKeyAlgorithm: opts.wrappingKeyAlgorithm,
|
|
153
|
+
});
|
|
154
|
+
const stream = oldStream.stream;
|
|
155
|
+
stream.metadata = Promise.resolve(oldStream.metadata);
|
|
156
|
+
return stream;
|
|
157
|
+
}
|
|
158
|
+
else if (prefix[0] === 0x4c && prefix[1] === 0x31 && prefix[2] === 0x4c) {
|
|
159
|
+
const ciphertext = await chunker();
|
|
160
|
+
const nanotdf = NanoTDF_js_1.default.from(ciphertext);
|
|
161
|
+
const cachedDEK = this.rewrapCache.get(nanotdf.header.ephemeralPublicKey);
|
|
162
|
+
if (cachedDEK) {
|
|
163
|
+
const r = await streamify((0, decrypt_js_1.default)(cachedDEK, nanotdf));
|
|
164
|
+
r.header = nanotdf.header;
|
|
165
|
+
return r;
|
|
166
|
+
}
|
|
167
|
+
const nc = new Client_js_1.default({
|
|
168
|
+
allowedKases: opts.allowedKASEndpoints,
|
|
169
|
+
authProvider: this.authProvider,
|
|
170
|
+
ignoreAllowList: opts.ignoreAllowlist,
|
|
171
|
+
dpopEnabled: this.dpopEnabled,
|
|
172
|
+
dpopKeys: this.dpopKeys,
|
|
173
|
+
kasEndpoint: opts.allowedKASEndpoints?.[0] || 'https://disallow.all.invalid',
|
|
174
|
+
});
|
|
175
|
+
// TODO: The version number should be fetched from the API
|
|
176
|
+
const version = '0.0.1';
|
|
177
|
+
// Rewrap key on every request
|
|
178
|
+
const dek = await nc.rewrapKey(nanotdf.header.toBuffer(), nanotdf.header.getKasRewrapUrl(), nanotdf.header.magicNumberVersion, version);
|
|
179
|
+
if (!dek) {
|
|
180
|
+
// These should have thrown already.
|
|
181
|
+
throw new Error('internal: key rewrap failure');
|
|
182
|
+
}
|
|
183
|
+
this.rewrapCache.set(nanotdf.header.ephemeralPublicKey, dek);
|
|
184
|
+
const r = await streamify((0, decrypt_js_1.default)(dek, nanotdf));
|
|
185
|
+
r.header = nanotdf.header;
|
|
186
|
+
return r;
|
|
187
|
+
}
|
|
188
|
+
throw new errors_js_1.InvalidFileError(`unsupported format; prefix not recognized ${prefix}`);
|
|
189
|
+
}
|
|
190
|
+
close() {
|
|
191
|
+
this.rewrapCache.close();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.OpenTDF = OpenTDF;
|
|
195
|
+
async function streamify(ab) {
|
|
196
|
+
const stream = new ReadableStream({
|
|
197
|
+
start(controller) {
|
|
198
|
+
ab.then((arrayBuffer) => {
|
|
199
|
+
controller.enqueue(new Uint8Array(arrayBuffer));
|
|
200
|
+
controller.close();
|
|
201
|
+
});
|
|
202
|
+
},
|
|
203
|
+
});
|
|
204
|
+
return stream;
|
|
205
|
+
}
|
|
206
|
+
class Collection {
|
|
207
|
+
constructor(authProvider, opts) {
|
|
208
|
+
if (opts.signers || opts.signingKeyID) {
|
|
209
|
+
throw new errors_js_1.ConfigurationError('ntdf signing not implemented');
|
|
210
|
+
}
|
|
211
|
+
if (opts.autoconfigure) {
|
|
212
|
+
throw new errors_js_1.ConfigurationError('autoconfigure not implemented');
|
|
213
|
+
}
|
|
214
|
+
if (opts.ecdsaBindingKeyID) {
|
|
215
|
+
throw new errors_js_1.ConfigurationError('custom binding key not implemented');
|
|
216
|
+
}
|
|
217
|
+
switch (opts.bindingType) {
|
|
218
|
+
case 'ecdsa':
|
|
219
|
+
this.encryptOptions = { ecdsaBinding: true };
|
|
220
|
+
break;
|
|
221
|
+
case 'gmac':
|
|
222
|
+
this.encryptOptions = { ecdsaBinding: false };
|
|
223
|
+
break;
|
|
224
|
+
}
|
|
225
|
+
this.client = new nanoclients_js_1.NanoTDFDatasetClient({
|
|
226
|
+
authProvider,
|
|
227
|
+
kasEndpoint: opts.defaultKASEndpoint ?? 'https://disallow.all.invalid',
|
|
228
|
+
maxKeyIterations: opts.maxKeyIterations,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
async encrypt(source) {
|
|
232
|
+
if (!this.client) {
|
|
233
|
+
throw new errors_js_1.ConfigurationError('Collection is closed');
|
|
234
|
+
}
|
|
235
|
+
const chunker = await (0, seekable_js_1.fromSource)(source);
|
|
236
|
+
const cipherChunk = await this.client.encrypt(await chunker(), this.encryptOptions);
|
|
237
|
+
const stream = new ReadableStream({
|
|
238
|
+
start(controller) {
|
|
239
|
+
controller.enqueue(new Uint8Array(cipherChunk));
|
|
240
|
+
controller.close();
|
|
241
|
+
},
|
|
242
|
+
});
|
|
243
|
+
// TODO: client's header object is private
|
|
244
|
+
// stream.header = this.client.header;
|
|
245
|
+
return stream;
|
|
246
|
+
}
|
|
247
|
+
async close() {
|
|
248
|
+
delete this.client;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnRkZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcGVudGRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDJDQUFtRTtBQUNuRSxxREFBbUc7QUFDbkcsd0RBQW1FO0FBQTFELHNHQUFBLE1BQU0sT0FBYztBQUM3QixzRUFBMkM7QUFDM0Msc0VBQWtEO0FBQ2xELG9FQUF5QztBQUV6QywrQ0FBd0U7QUFDeEUsMERBQW1FO0FBTW5FLDJDQUFnRztBQXFCOUYscUdBckJvRCxnQ0FBb0IsT0FxQnBEO0FBeUp0QixNQUFNLHlCQUF5QixHQUFpQztJQUM5RCxNQUFNLEVBQUUsS0FBSztJQUNiLE1BQU0sRUFBRSxNQUFNO0lBQ2QsWUFBWSxFQUFFLEdBQUc7Q0FDbEIsQ0FBQztBQUVGLDRDQUE0QztBQUM1QywrRUFBK0U7QUFDL0UsMEZBQTBGO0FBQzFGLDREQUE0RDtBQUM1RCxNQUFhLFdBQVc7SUFHdEIsWUFBWSxJQUF5QjtRQUNuQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLEdBQUcseUJBQXlCLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUNuRixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQzdCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN2QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDUCxPQUFPO1lBQ1QsQ0FBQztZQUNELEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVB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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.attributeFQNsAsValues =
|
|
3
|
+
exports.attributeFQNsAsValues = attributeFQNsAsValues;
|
|
4
4
|
const errors_js_1 = require("../errors.js");
|
|
5
5
|
const utils_js_1 = require("../utils.js");
|
|
6
6
|
async function attributeFQNsAsValues(kasUrl, authProvider, ...fqns) {
|
|
@@ -54,5 +54,4 @@ async function attributeFQNsAsValues(kasUrl, authProvider, ...fqns) {
|
|
|
54
54
|
}
|
|
55
55
|
return values;
|
|
56
56
|
}
|
|
57
|
-
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BvbGljeS9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQTBEO0FBRTFELDBDQUFxQztBQUc5QixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLE1BQWMsRUFDZCxZQUEwQixFQUMxQixHQUFHLElBQWM7SUFFakIsTUFBTSxHQUFHLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUNsQyxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtRQUN0QixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztLQUN6QjtJQUNELEdBQUcsQ0FBQyxNQUFNLENBQUMsK0JBQStCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyw2Q0FBNkMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRSxNQUFNLFFBQVEsR0FBRyxJQUFBLGlCQUFNLEVBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUM1RSxNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0scUJBQXFCLEdBQUcsRUFBRSxDQUFDO0lBQ2hELE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLFNBQVMsQ0FBQztRQUN2QyxHQUFHO1FBQ0gsT0FBTyxFQUFFLEVBQUU7UUFDWCxNQUFNLEVBQUUsS0FBSztLQUNkLENBQUMsQ0FBQztJQUNILElBQUksUUFBa0IsQ0FBQztJQUN2QixJQUFJO1FBQ0YsUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDOUIsSUFBSSxFQUFFLE1BQU07WUFDWixXQUFXLEVBQUUsYUFBYTtZQUMxQixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87WUFDcEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsY0FBYyxFQUFFLGFBQWE7U0FDOUIsQ0FBQyxDQUFDO0tBQ0o7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE1BQU0sSUFBSSx3QkFBWSxDQUFDLGtCQUFrQixHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUN2RTtJQUVELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1FBQ2hCLE1BQU0sSUFBSSx3QkFBWSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxPQUFPLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7S0FDakc7SUFFRCxJQUFJLElBQXNDLENBQUM7SUFDM0MsSUFBSTtRQUNGLElBQUksR0FBRyxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFxQyxDQUFDO0tBQ3BFO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixNQUFNLElBQUksd0JBQVksQ0FBQyx5QkFBeUIsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDOUU7SUFFRCxNQUFNLE1BQU0sR0FBWSxFQUFFLENBQUM7SUFDM0IsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7UUFDL0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUU7WUFDYixPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxHQUFHLCtCQUErQixDQUFDLENBQUM7WUFDakYsU0FBUztTQUNWO1FBQ0QsSUFBSSxFQUFFLENBQUMsU0FBUyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDdkMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztTQUNuQztRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3ZCO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQXZERCxzREF1REMifQ==
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BvbGljeS9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSxzREF1REM7QUE1REQsNENBQTBEO0FBRTFELDBDQUFxQztBQUc5QixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLE1BQWMsRUFDZCxZQUEwQixFQUMxQixHQUFHLElBQWM7SUFFakIsTUFBTSxHQUFHLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUNsQyxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDRCxHQUFHLENBQUMsTUFBTSxDQUFDLCtCQUErQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELEdBQUcsQ0FBQyxNQUFNLENBQUMsNkNBQTZDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEUsTUFBTSxRQUFRLEdBQUcsSUFBQSxpQkFBTSxFQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNyQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDNUUsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztJQUNoRCxNQUFNLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDdkMsR0FBRztRQUNILE9BQU8sRUFBRSxFQUFFO1FBQ1gsTUFBTSxFQUFFLEtBQUs7S0FDZCxDQUFDLENBQUM7SUFDSCxJQUFJLFFBQWtCLENBQUM7SUFDdkIsSUFBSSxDQUFDO1FBQ0gsUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDOUIsSUFBSSxFQUFFLE1BQU07WUFDWixXQUFXLEVBQUUsYUFBYTtZQUMxQixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87WUFDcEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsY0FBYyxFQUFFLGFBQWE7U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksd0JBQVksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLHdCQUFZLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLE9BQU8sUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsSUFBSSxJQUFzQyxDQUFDO0lBQzNDLElBQUksQ0FBQztRQUNILElBQUksR0FBRyxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFxQyxDQUFDO0lBQ3JFLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLHdCQUFZLENBQUMseUJBQXlCLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBWSxFQUFFLENBQUM7SUFDM0IsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsR0FBRywrQkFBK0IsQ0FBQyxDQUFDO1lBQ2pGLFNBQVM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsU0FBUyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN4QyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyJ9
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.booleanOperatorFor = booleanOperatorFor;
|
|
4
|
+
exports.plan = plan;
|
|
4
5
|
const errors_js_1 = require("../errors.js");
|
|
5
6
|
function booleanOperatorFor(rule) {
|
|
6
7
|
if (!rule) {
|
|
@@ -16,7 +17,6 @@ function booleanOperatorFor(rule) {
|
|
|
16
17
|
return 'hierarchy';
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
|
-
exports.booleanOperatorFor = booleanOperatorFor;
|
|
20
20
|
function plan(dataAttrs) {
|
|
21
21
|
// KASes by value
|
|
22
22
|
const grants = {};
|
|
@@ -88,7 +88,6 @@ function plan(dataAttrs) {
|
|
|
88
88
|
}
|
|
89
89
|
return simplify(kcs, kasInfo);
|
|
90
90
|
}
|
|
91
|
-
exports.plan = plan;
|
|
92
91
|
function simplify(clauses, kasInfo) {
|
|
93
92
|
const conjunction = {};
|
|
94
93
|
function keyFor(kases) {
|
|
@@ -143,4 +142,4 @@ function simplify(clauses, kasInfo) {
|
|
|
143
142
|
}
|
|
144
143
|
return t;
|
|
145
144
|
}
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wb2xpY3kvZ3JhbnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFDQSxnREFhQztBQUVELG9CQXVFQztBQTNIRCw0Q0FBa0Q7QUFxQ2xELFNBQWdCLGtCQUFrQixDQUFDLElBQXdCO0lBQ3pELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSyxzQ0FBc0MsQ0FBQztRQUM1QyxLQUFLLGlDQUFpQztZQUNwQyxPQUFPLE9BQU8sQ0FBQztRQUNqQixLQUFLLGlDQUFpQztZQUNwQyxPQUFPLE9BQU8sQ0FBQztRQUNqQixLQUFLLG9DQUFvQztZQUN2QyxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLElBQUksQ0FBQyxTQUFrQjtJQUNyQyxpQkFBaUI7SUFDakIsTUFBTSxNQUFNLEdBQWdDLEVBQUUsQ0FBQztJQUMvQyx3QkFBd0I7SUFDeEIsTUFBTSxPQUFPLEdBQW9DLEVBQUUsQ0FBQztJQUNwRCwrQkFBK0I7SUFDL0IsTUFBTSxRQUFRLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFDeEMsZ0RBQWdEO0lBQ2hELE1BQU0sVUFBVSxHQUFvQyxFQUFFLENBQUM7SUFDdkQsMkJBQTJCO0lBQzNCLE1BQU0sU0FBUyxHQUEwQixFQUFFLENBQUM7SUFFNUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBc0IsRUFBVyxFQUFFO1FBQ2pFLElBQUksQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQzFC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
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fromDataSource = exports.fromSource = exports.fromUrl = exports.fromString = exports.fromBuffer = exports.fromBrowserFile = void 0;
|
|
4
|
+
exports.sourceToStream = sourceToStream;
|
|
5
|
+
const errors_js_1 = require("./errors.js");
|
|
6
|
+
/**
|
|
7
|
+
* Creates a seekable object from a browser file object.
|
|
8
|
+
* @param fileRef the browser file data
|
|
9
|
+
*/
|
|
10
|
+
const fromBrowserFile = (fileRef) => {
|
|
11
|
+
return async (byteStart, byteEnd) => {
|
|
12
|
+
if (byteStart === undefined) {
|
|
13
|
+
return new Uint8Array(await fileRef.arrayBuffer());
|
|
14
|
+
}
|
|
15
|
+
const chunkBlob = fileRef.slice(byteStart, byteEnd);
|
|
16
|
+
const arrayBuffer = await new Response(chunkBlob).arrayBuffer();
|
|
17
|
+
return new Uint8Array(arrayBuffer);
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
exports.fromBrowserFile = fromBrowserFile;
|
|
21
|
+
const fromBuffer = (source) => {
|
|
22
|
+
return (byteStart, byteEnd) => {
|
|
23
|
+
return Promise.resolve(source.slice(byteStart, byteEnd));
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
exports.fromBuffer = fromBuffer;
|
|
27
|
+
const fromString = (source) => {
|
|
28
|
+
return (0, exports.fromBuffer)(new TextEncoder().encode(source));
|
|
29
|
+
};
|
|
30
|
+
exports.fromString = fromString;
|
|
31
|
+
async function sleep(ms) {
|
|
32
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
33
|
+
}
|
|
34
|
+
async function getRemoteChunk(url, range) {
|
|
35
|
+
// loop with fetch for three times, with an exponential backoff
|
|
36
|
+
// if the fetch fails with a network error
|
|
37
|
+
// this is to handle transient network errors
|
|
38
|
+
const errors = [];
|
|
39
|
+
for (let i = 0; i < 3; i++) {
|
|
40
|
+
let res;
|
|
41
|
+
try {
|
|
42
|
+
res = await fetch(url, {
|
|
43
|
+
redirect: 'follow', // manual, *follow, error
|
|
44
|
+
...(range && {
|
|
45
|
+
headers: {
|
|
46
|
+
Range: `bytes=${range}`,
|
|
47
|
+
},
|
|
48
|
+
}),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
console.warn(`fetch failed with network error [${e}], retrying...`);
|
|
53
|
+
sleep(2 ** i * 1000);
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (!res.ok) {
|
|
57
|
+
if (res.status === 416) {
|
|
58
|
+
throw new errors_js_1.InvalidFileError(`${res.status}: range not satisfiable: requested [${range}] from [${url}]; response [${res.statusText}]`);
|
|
59
|
+
}
|
|
60
|
+
else if (res.status === 404) {
|
|
61
|
+
throw new errors_js_1.InvalidFileError(`${res.status}: [${url}] not found; response: [${res.statusText}]`);
|
|
62
|
+
}
|
|
63
|
+
console.warn(`fetch failed with status [${res.status}: ${res.statusText}], retrying...`);
|
|
64
|
+
// waits for 1, 2, 4 seconds
|
|
65
|
+
sleep(2 ** i * 1000);
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const data = await res.arrayBuffer();
|
|
69
|
+
if (!data) {
|
|
70
|
+
throw new errors_js_1.NetworkError(`empty response for range request: requested [${range}] from [${url}]`);
|
|
71
|
+
}
|
|
72
|
+
return new Uint8Array(data);
|
|
73
|
+
}
|
|
74
|
+
throw new AggregateError(errors, 'fetch failed after 3 retries');
|
|
75
|
+
}
|
|
76
|
+
const fromUrl = async (location) => {
|
|
77
|
+
return async (byteStart, byteEnd) => {
|
|
78
|
+
if (byteStart === undefined) {
|
|
79
|
+
return getRemoteChunk(location);
|
|
80
|
+
}
|
|
81
|
+
let rangeHeader = `${byteStart}`;
|
|
82
|
+
if (byteEnd && byteEnd < 0) {
|
|
83
|
+
// NOTE: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range
|
|
84
|
+
throw Error('negative end unsupported');
|
|
85
|
+
}
|
|
86
|
+
else if (byteEnd) {
|
|
87
|
+
rangeHeader += `-${byteEnd - 1}`;
|
|
88
|
+
}
|
|
89
|
+
return await getRemoteChunk(location, rangeHeader);
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
exports.fromUrl = fromUrl;
|
|
93
|
+
const fromSource = async ({ type, location }) => {
|
|
94
|
+
switch (type) {
|
|
95
|
+
case 'buffer':
|
|
96
|
+
if (!(location instanceof Uint8Array)) {
|
|
97
|
+
throw new errors_js_1.ConfigurationError('Invalid data source; must be uint8 array');
|
|
98
|
+
}
|
|
99
|
+
return (0, exports.fromBuffer)(location);
|
|
100
|
+
case 'chunker':
|
|
101
|
+
if (!(location instanceof Function)) {
|
|
102
|
+
throw new errors_js_1.ConfigurationError('Invalid data source; must be uint8 array');
|
|
103
|
+
}
|
|
104
|
+
return location;
|
|
105
|
+
case 'file-browser':
|
|
106
|
+
if (!(location instanceof Blob)) {
|
|
107
|
+
throw new errors_js_1.ConfigurationError('Invalid data source; must be at least a Blob');
|
|
108
|
+
}
|
|
109
|
+
return (0, exports.fromBrowserFile)(location);
|
|
110
|
+
case 'remote':
|
|
111
|
+
if (typeof location !== 'string') {
|
|
112
|
+
throw new errors_js_1.ConfigurationError('Invalid data source; url not provided');
|
|
113
|
+
}
|
|
114
|
+
return (0, exports.fromUrl)(location);
|
|
115
|
+
case 'stream':
|
|
116
|
+
return (0, exports.fromBuffer)(new Uint8Array(await new Response(location).arrayBuffer()));
|
|
117
|
+
default:
|
|
118
|
+
throw new errors_js_1.ConfigurationError(`Data source type not defined, or not supported: ${type}}`);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
exports.fromSource = fromSource;
|
|
122
|
+
async function sourceToStream(source) {
|
|
123
|
+
switch (source.type) {
|
|
124
|
+
case 'stream':
|
|
125
|
+
return source.location;
|
|
126
|
+
case 'file-browser':
|
|
127
|
+
return source.location.stream();
|
|
128
|
+
case 'chunker': {
|
|
129
|
+
const chunkSize = 8 * 1024 * 1024; // 8 megabytes
|
|
130
|
+
let offset = 0;
|
|
131
|
+
return new ReadableStream({
|
|
132
|
+
async pull(controller) {
|
|
133
|
+
const chunk = await source.location(offset, offset + chunkSize);
|
|
134
|
+
if (chunk.length === 0) {
|
|
135
|
+
controller.close();
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
controller.enqueue(chunk);
|
|
139
|
+
offset += chunk.length;
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
default: {
|
|
144
|
+
const chunker = await (0, exports.fromSource)(source);
|
|
145
|
+
return new ReadableStream({
|
|
146
|
+
async start(controller) {
|
|
147
|
+
const chunk = await chunker();
|
|
148
|
+
controller.enqueue(chunk);
|
|
149
|
+
controller.close();
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Deprected name, prefer `fromSource`
|
|
156
|
+
exports.fromDataSource = exports.fromSource;
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vla2FibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Vla2FibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNklBLHdDQWdDQztBQTdLRCwyQ0FBaUY7QUFvQmpGOzs7R0FHRztBQUNJLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBYSxFQUFXLEVBQUU7SUFDeEQsT0FBTyxLQUFLLEVBQUUsU0FBa0IsRUFBRSxPQUFnQixFQUF1QixFQUFFO1FBQ3pFLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxVQUFVLENBQUMsTUFBTSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRSxPQUFPLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVRXLFFBQUEsZUFBZSxtQkFTMUI7QUFFSyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQWtCLEVBQVcsRUFBRTtJQUN4RCxPQUFPLENBQUMsU0FBa0IsRUFBRSxPQUFnQixFQUFFLEVBQUU7UUFDOUMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBSlcsUUFBQSxVQUFVLGNBSXJCO0FBRUssTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRTtJQUNwRCxPQUFPLElBQUEsa0JBQVUsRUFBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFN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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createAttribute =
|
|
3
|
+
exports.createAttribute = createAttribute;
|
|
4
4
|
async function createAttribute(attribute, pubKey, kasUrl) {
|
|
5
5
|
return {
|
|
6
6
|
attribute,
|
|
@@ -8,8 +8,6 @@ async function createAttribute(attribute, pubKey, kasUrl) {
|
|
|
8
8
|
displayName: '',
|
|
9
9
|
pubKey: pubKey.publicKey,
|
|
10
10
|
kasUrl,
|
|
11
|
-
schemaVersion: '1.1.0',
|
|
12
11
|
};
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXR0cmlidXRlT2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RkZi9BdHRyaWJ1dGVPYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBYU8sS0FBSyxVQUFVLGVBQWUsQ0FDbkMsU0FBaUIsRUFDakIsTUFBd0IsRUFDeEIsTUFBYztJQUVkLE9BQU87UUFDTCxTQUFTO1FBQ1QsU0FBUyxFQUFFLEtBQUs7UUFDaEIsV0FBVyxFQUFFLEVBQUU7UUFDZixNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVM7UUFDeEIsTUFBTTtRQUNOLGFBQWEsRUFBRSxPQUFPO0tBQ3ZCLENBQUM7QUFDSixDQUFDO0FBYkQsMENBYUMifQ==
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXR0cmlidXRlT2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RkZi9BdHRyaWJ1dGVPYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSwwQ0FZQztBQVpNLEtBQUssVUFBVSxlQUFlLENBQ25DLFNBQWlCLEVBQ2pCLE1BQXdCLEVBQ3hCLE1BQWM7SUFFZCxPQUFPO1FBQ0wsU0FBUztRQUNULFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFdBQVcsRUFBRSxFQUFFO1FBQ2YsTUFBTSxFQUFFLE1BQU0sQ0FBQyxTQUFTO1FBQ3hCLE1BQU07S0FDUCxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -8,7 +8,6 @@ class Policy {
|
|
|
8
8
|
this.dataAttributesList = [];
|
|
9
9
|
this.dissemList = [];
|
|
10
10
|
}
|
|
11
|
-
// private schemaVersionStr = Policy.CURRENT_VERSION;
|
|
12
11
|
/**
|
|
13
12
|
* Adds a group of entities, to the Policy's dissem list
|
|
14
13
|
*
|
|
@@ -48,4 +47,4 @@ class Policy {
|
|
|
48
47
|
}
|
|
49
48
|
exports.Policy = Policy;
|
|
50
49
|
Policy.CURRENT_VERSION = '1.1.0';
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RkZi9Qb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQWtDO0FBRWxDLE1BQWEsTUFBTTtJQUFuQjtRQUdVLFlBQU8sR0FBRyxJQUFBLFNBQUksR0FBRSxDQUFDO1FBQ2pCLHVCQUFrQixHQUFzQixFQUFFLENBQUM7UUFDM0MsZUFBVSxHQUFhLEVBQUUsQ0FBQztJQXlDcEMsQ0FBQztJQXZDQzs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxRQUFrQjtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBRWxDLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM3RCxPQUFPLEtBQUssS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFDLFNBQTBCO1FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTztZQUNsQixJQUFJLEVBQUU7Z0JBQ0osY0FBYyxFQUFFLElBQUksQ0FBQyxrQkFBa0I7Z0JBQ3ZDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTthQUN4QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBN0NILHdCQThDQztBQTdDUSxzQkFBZSxHQUFHLE9BQU8sQUFBVixDQUFXIn0=
|
package/dist/cjs/src/utils.js
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.estimateSkewFromHeaders = exports.estimateSkew = exports.rstrip = void 0;
|
|
4
|
+
exports.validateSecureUrl = validateSecureUrl;
|
|
5
|
+
exports.padSlashToUrl = padSlashToUrl;
|
|
6
|
+
exports.isBrowser = isBrowser;
|
|
7
|
+
exports.addNewLines = addNewLines;
|
|
8
|
+
exports.cryptoPublicToPem = cryptoPublicToPem;
|
|
9
|
+
exports.pemToCryptoPublicKey = pemToCryptoPublicKey;
|
|
10
|
+
exports.extractPemFromKeyString = extractPemFromKeyString;
|
|
4
11
|
const jose_1 = require("jose");
|
|
5
12
|
const index_js_1 = require("./encodings/index.js");
|
|
6
|
-
const
|
|
13
|
+
const pemPublicToCrypto_js_1 = require("./nanotdf-crypto/pemPublicToCrypto.js");
|
|
7
14
|
const errors_js_1 = require("./errors.js");
|
|
8
15
|
/**
|
|
9
16
|
* Check to see if the given URL is 'secure'. This assumes:
|
|
@@ -34,20 +41,15 @@ function validateSecureUrl(url) {
|
|
|
34
41
|
}
|
|
35
42
|
return true;
|
|
36
43
|
}
|
|
37
|
-
exports.validateSecureUrl = validateSecureUrl;
|
|
38
44
|
function padSlashToUrl(u) {
|
|
39
45
|
if (u.endsWith('/')) {
|
|
40
46
|
return u;
|
|
41
47
|
}
|
|
42
48
|
return `${u}/`;
|
|
43
49
|
}
|
|
44
|
-
exports.padSlashToUrl = padSlashToUrl;
|
|
45
50
|
function isBrowser() {
|
|
46
51
|
return typeof window !== 'undefined'; // eslint-disable-line
|
|
47
52
|
}
|
|
48
|
-
exports.isBrowser = isBrowser;
|
|
49
|
-
const isFirefox = () => isBrowser() && 'InstallTrigger' in window;
|
|
50
|
-
exports.isFirefox = isFirefox;
|
|
51
53
|
const rstrip = (str, suffix = ' ') => {
|
|
52
54
|
while (str && suffix && str.endsWith(suffix)) {
|
|
53
55
|
str = str.slice(0, -suffix.length);
|
|
@@ -103,7 +105,6 @@ function addNewLines(str) {
|
|
|
103
105
|
}
|
|
104
106
|
return finalString;
|
|
105
107
|
}
|
|
106
|
-
exports.addNewLines = addNewLines;
|
|
107
108
|
async function cryptoPublicToPem(publicKey) {
|
|
108
109
|
if (publicKey.type !== 'public') {
|
|
109
110
|
throw new errors_js_1.ConfigurationError('incorrect key type');
|
|
@@ -113,20 +114,18 @@ async function cryptoPublicToPem(publicKey) {
|
|
|
113
114
|
const pem = addNewLines(b64);
|
|
114
115
|
return `-----BEGIN PUBLIC KEY-----\r\n${pem}-----END PUBLIC KEY-----`;
|
|
115
116
|
}
|
|
116
|
-
exports.cryptoPublicToPem = cryptoPublicToPem;
|
|
117
117
|
async function pemToCryptoPublicKey(pem) {
|
|
118
118
|
if (/-----BEGIN PUBLIC KEY-----/.test(pem)) {
|
|
119
|
-
return (0,
|
|
119
|
+
return (0, pemPublicToCrypto_js_1.pemPublicToCrypto)(pem);
|
|
120
120
|
}
|
|
121
121
|
else if (/-----BEGIN CERTIFICATE-----/.test(pem)) {
|
|
122
|
-
return (0,
|
|
122
|
+
return (0, pemPublicToCrypto_js_1.pemCertToCrypto)(pem);
|
|
123
123
|
}
|
|
124
124
|
// This can happen in several circumstances:
|
|
125
125
|
// - When parsing a PEM key from a KAS server
|
|
126
126
|
// - When converting between PEM and CryptoKey formats for user provided session keys (e.g. for DPoP)
|
|
127
127
|
throw new TypeError(`unsupported pem type [${pem}]`);
|
|
128
128
|
}
|
|
129
|
-
exports.pemToCryptoPublicKey = pemToCryptoPublicKey;
|
|
130
129
|
async function extractPemFromKeyString(keyString) {
|
|
131
130
|
let pem = keyString;
|
|
132
131
|
// Skip the public key extraction if we find that the KAS url provides a
|
|
@@ -137,5 +136,4 @@ async function extractPemFromKeyString(keyString) {
|
|
|
137
136
|
}
|
|
138
137
|
return pem;
|
|
139
138
|
}
|
|
140
|
-
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQThDO0FBRTlDLG1EQUE4QztBQUM5Qyx3REFBK0U7QUFDL0UsMkNBQWlEO0FBRWpEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxHQUFXO0lBQzNDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM3QixJQUFJLHdEQUF3RCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN0RSxPQUFPLENBQUMsSUFBSSxDQUFDLDhCQUE4QixHQUFHLEdBQUcsQ0FBQyxDQUFDO0tBQ3BEO1NBQU0sSUFDTCxzREFBc0QsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ2hFLHlEQUF5RCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFDbkU7UUFDQSxPQUFPLENBQUMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEdBQUcsQ0FBQyxDQUFDO0tBQ2pEO1NBQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxzRUFBc0UsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUM1RixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBZEQsOENBY0M7QUFFRCxTQUFnQixhQUFhLENBQUMsQ0FBUztJQUNyQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDbkIsT0FBTyxDQUFDLENBQUM7S0FDVjtJQUNELE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQztBQUNqQixDQUFDO0FBTEQsc0NBS0M7QUFFRCxTQUFnQixTQUFTO0lBQ3ZCLE9BQU8sT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsc0JBQXNCO0FBQzlELENBQUM7QUFGRCw4QkFFQztB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
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0JBLDhDQWNDO0FBRUQsc0NBS0M7QUFFRCw4QkFFQztBQWdERCxrQ0FXQztBQUVELDhDQVNDO0FBRUQsb0RBVUM7QUFFRCwwREFXQztBQTVJRCwrQkFBOEM7QUFFOUMsbURBQThDO0FBQzlDLGdGQUEyRjtBQUMzRiwyQ0FBaUQ7QUFFakQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLEdBQVc7SUFDM0MsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzdCLElBQUksd0RBQXdELENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkUsT0FBTyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDO1NBQU0sSUFDTCxzREFBc0QsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ2hFLHlEQUF5RCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFDbkUsQ0FBQztRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQztTQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakMsT0FBTyxDQUFDLEtBQUssQ0FBQyxzRUFBc0UsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUM1RixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsQ0FBUztJQUNyQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUM7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
|