@opentdf/sdk 0.4.1-rc.37 → 0.5.0-beta.42
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/cjs/src/access/access-fetch.js +2 -1
- package/dist/cjs/src/access/access-rpc.js +11 -5
- package/dist/cjs/src/access/constants.js +6 -0
- package/dist/cjs/src/access.js +39 -4
- package/dist/cjs/src/auth/oidc-clientcredentials-provider.js +4 -2
- package/dist/cjs/src/auth/oidc-externaljwt-provider.js +5 -3
- package/dist/cjs/src/auth/oidc-refreshtoken-provider.js +19 -3
- package/dist/cjs/src/auth/oidc.js +9 -8
- package/dist/cjs/src/auth/providers.js +7 -1
- package/dist/cjs/src/index.js +4 -2
- package/dist/cjs/src/nanoclients.js +4 -4
- package/dist/cjs/src/nanotdf/Client.js +10 -6
- package/dist/cjs/src/opentdf.js +102 -13
- package/dist/cjs/src/platform/authorization/v2/authorization_pb.js +112 -0
- package/dist/cjs/src/platform/buf/validate/validate_pb.js +114 -170
- package/dist/cjs/src/platform/common/common_pb.js +16 -5
- package/dist/cjs/src/platform/entity/entity_pb.js +51 -0
- package/dist/cjs/src/platform/entityresolution/entity_resolution_pb.js +1 -1
- package/dist/cjs/src/platform/entityresolution/v2/entity_resolution_pb.js +49 -0
- package/dist/cjs/src/platform/google/api/annotations_pb.js +1 -1
- package/dist/cjs/src/platform/google/api/http_pb.js +3 -3
- package/dist/cjs/src/platform/kas/kas_pb.js +2 -2
- package/dist/cjs/src/platform/policy/attributes/attributes_pb.js +12 -2
- package/dist/cjs/src/platform/policy/kasregistry/key_access_server_registry_pb.js +57 -4
- package/dist/cjs/src/platform/policy/keymanagement/key_management_pb.js +2 -2
- package/dist/cjs/src/platform/policy/namespaces/namespaces_pb.js +31 -4
- package/dist/cjs/src/platform/policy/objects_pb.js +116 -42
- package/dist/cjs/src/platform/policy/obligations/obligations_pb.js +159 -0
- package/dist/cjs/src/platform/policy/registeredresources/registered_resources_pb.js +20 -15
- package/dist/cjs/src/platform/policy/resourcemapping/resource_mapping_pb.js +2 -3
- package/dist/cjs/src/platform/policy/selectors_pb.js +1 -1
- package/dist/cjs/src/platform/policy/subjectmapping/subject_mapping_pb.js +2 -3
- package/dist/cjs/src/platform/policy/unsafe/unsafe_pb.js +2 -4
- package/dist/cjs/src/platform.js +20 -3
- package/dist/cjs/src/policy/api.js +27 -7
- package/dist/cjs/src/policy/granter.js +75 -48
- package/dist/cjs/src/seekable.js +32 -1
- package/dist/cjs/src/utils.js +85 -3
- package/dist/cjs/src/version.js +1 -1
- package/dist/cjs/tdf3/src/assertions.js +39 -2
- package/dist/cjs/tdf3/src/client/DecoratedReadableStream.js +8 -1
- package/dist/cjs/tdf3/src/client/builders.js +13 -1
- package/dist/cjs/tdf3/src/client/index.js +213 -54
- package/dist/cjs/tdf3/src/client/validation.js +3 -3
- package/dist/cjs/tdf3/src/tdf.js +42 -9
- package/dist/cjs/tdf3/src/utils/unwrap.js +2 -2
- package/dist/types/src/access/access-fetch.d.ts +1 -0
- package/dist/types/src/access/access-fetch.d.ts.map +1 -1
- package/dist/types/src/access/access-rpc.d.ts +2 -1
- package/dist/types/src/access/access-rpc.d.ts.map +1 -1
- package/dist/types/src/access/constants.d.ts +3 -0
- package/dist/types/src/access/constants.d.ts.map +1 -0
- package/dist/types/src/access.d.ts +30 -1
- package/dist/types/src/access.d.ts.map +1 -1
- package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts +1 -1
- package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts.map +1 -1
- package/dist/types/src/auth/oidc-externaljwt-provider.d.ts +1 -1
- package/dist/types/src/auth/oidc-externaljwt-provider.d.ts.map +1 -1
- package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts +15 -1
- package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts.map +1 -1
- package/dist/types/src/auth/oidc.d.ts +4 -0
- package/dist/types/src/auth/oidc.d.ts.map +1 -1
- package/dist/types/src/auth/providers.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/nanotdf/Client.d.ts +8 -1
- package/dist/types/src/nanotdf/Client.d.ts.map +1 -1
- package/dist/types/src/opentdf.d.ts +137 -6
- package/dist/types/src/opentdf.d.ts.map +1 -1
- package/dist/types/src/platform/authorization/v2/authorization_pb.d.ts +439 -0
- package/dist/types/src/platform/authorization/v2/authorization_pb.d.ts.map +1 -0
- package/dist/types/src/platform/buf/validate/validate_pb.d.ts +495 -370
- package/dist/types/src/platform/buf/validate/validate_pb.d.ts.map +1 -1
- package/dist/types/src/platform/common/common_pb.d.ts +36 -0
- package/dist/types/src/platform/common/common_pb.d.ts.map +1 -1
- package/dist/types/src/platform/entity/entity_pb.d.ts +130 -0
- package/dist/types/src/platform/entity/entity_pb.d.ts.map +1 -0
- package/dist/types/src/platform/entityresolution/entity_resolution_pb.d.ts +4 -0
- package/dist/types/src/platform/entityresolution/entity_resolution_pb.d.ts.map +1 -1
- package/dist/types/src/platform/entityresolution/v2/entity_resolution_pb.d.ts +136 -0
- package/dist/types/src/platform/entityresolution/v2/entity_resolution_pb.d.ts.map +1 -0
- package/dist/types/src/platform/google/api/http_pb.d.ts.map +1 -1
- package/dist/types/src/platform/kas/kas_pb.d.ts +5 -0
- package/dist/types/src/platform/kas/kas_pb.d.ts.map +1 -1
- package/dist/types/src/platform/policy/attributes/attributes_pb.d.ts +44 -13
- package/dist/types/src/platform/policy/attributes/attributes_pb.d.ts.map +1 -1
- package/dist/types/src/platform/policy/kasregistry/key_access_server_registry_pb.d.ts +329 -24
- package/dist/types/src/platform/policy/kasregistry/key_access_server_registry_pb.d.ts.map +1 -1
- package/dist/types/src/platform/policy/keymanagement/key_management_pb.d.ts +20 -1
- package/dist/types/src/platform/policy/keymanagement/key_management_pb.d.ts.map +1 -1
- package/dist/types/src/platform/policy/namespaces/namespaces_pb.d.ts +143 -5
- package/dist/types/src/platform/policy/namespaces/namespaces_pb.d.ts.map +1 -1
- package/dist/types/src/platform/policy/objects_pb.d.ts +382 -33
- package/dist/types/src/platform/policy/objects_pb.d.ts.map +1 -1
- package/dist/types/src/platform/policy/obligations/obligations_pb.d.ts +670 -0
- package/dist/types/src/platform/policy/obligations/obligations_pb.d.ts.map +1 -0
- package/dist/types/src/platform/policy/registeredresources/registered_resources_pb.d.ts +67 -0
- package/dist/types/src/platform/policy/registeredresources/registered_resources_pb.d.ts.map +1 -1
- package/dist/types/src/platform/policy/resourcemapping/resource_mapping_pb.d.ts.map +1 -1
- package/dist/types/src/platform/policy/selectors_pb.d.ts +18 -0
- package/dist/types/src/platform/policy/selectors_pb.d.ts.map +1 -1
- package/dist/types/src/platform/policy/subjectmapping/subject_mapping_pb.d.ts.map +1 -1
- package/dist/types/src/platform/policy/unsafe/unsafe_pb.d.ts +18 -4
- package/dist/types/src/platform/policy/unsafe/unsafe_pb.d.ts.map +1 -1
- package/dist/types/src/platform.d.ts +21 -0
- package/dist/types/src/platform.d.ts.map +1 -1
- package/dist/types/src/policy/api.d.ts +2 -0
- package/dist/types/src/policy/api.d.ts.map +1 -1
- package/dist/types/src/policy/granter.d.ts +11 -6
- package/dist/types/src/policy/granter.d.ts.map +1 -1
- package/dist/types/src/seekable.d.ts +31 -0
- package/dist/types/src/seekable.d.ts.map +1 -1
- package/dist/types/src/utils.d.ts +61 -2
- package/dist/types/src/utils.d.ts.map +1 -1
- package/dist/types/src/version.d.ts +1 -1
- package/dist/types/tdf3/src/assertions.d.ts +4 -0
- package/dist/types/tdf3/src/assertions.d.ts.map +1 -1
- package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts +6 -0
- package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts.map +1 -1
- package/dist/types/tdf3/src/client/builders.d.ts +14 -0
- package/dist/types/tdf3/src/client/builders.d.ts.map +1 -1
- package/dist/types/tdf3/src/client/index.d.ts +25 -4
- 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/tdf.d.ts +3 -1
- package/dist/types/tdf3/src/tdf.d.ts.map +1 -1
- package/dist/types/tdf3/src/utils/unwrap.d.ts.map +1 -1
- package/dist/web/src/access/access-fetch.js +2 -1
- package/dist/web/src/access/access-rpc.js +11 -5
- package/dist/web/src/access/constants.js +3 -0
- package/dist/web/src/access.js +37 -3
- package/dist/web/src/auth/oidc-clientcredentials-provider.js +4 -2
- package/dist/web/src/auth/oidc-externaljwt-provider.js +5 -3
- package/dist/web/src/auth/oidc-refreshtoken-provider.js +19 -3
- package/dist/web/src/auth/oidc.js +9 -8
- package/dist/web/src/auth/providers.js +7 -1
- package/dist/web/src/index.js +2 -1
- package/dist/web/src/nanoclients.js +4 -4
- package/dist/web/src/nanotdf/Client.js +11 -7
- package/dist/web/src/opentdf.js +102 -13
- package/dist/web/src/platform/authorization/v2/authorization_pb.js +109 -0
- package/dist/web/src/platform/buf/validate/validate_pb.js +113 -169
- package/dist/web/src/platform/common/common_pb.js +15 -4
- package/dist/web/src/platform/entity/entity_pb.js +48 -0
- package/dist/web/src/platform/entityresolution/entity_resolution_pb.js +1 -1
- package/dist/web/src/platform/entityresolution/v2/entity_resolution_pb.js +46 -0
- package/dist/web/src/platform/google/api/annotations_pb.js +1 -1
- package/dist/web/src/platform/google/api/http_pb.js +3 -3
- package/dist/web/src/platform/kas/kas_pb.js +2 -2
- package/dist/web/src/platform/policy/attributes/attributes_pb.js +12 -2
- package/dist/web/src/platform/policy/kasregistry/key_access_server_registry_pb.js +55 -3
- package/dist/web/src/platform/policy/keymanagement/key_management_pb.js +2 -2
- package/dist/web/src/platform/policy/namespaces/namespaces_pb.js +30 -3
- package/dist/web/src/platform/policy/objects_pb.js +114 -41
- package/dist/web/src/platform/policy/obligations/obligations_pb.js +156 -0
- package/dist/web/src/platform/policy/registeredresources/registered_resources_pb.js +19 -14
- package/dist/web/src/platform/policy/resourcemapping/resource_mapping_pb.js +2 -3
- package/dist/web/src/platform/policy/selectors_pb.js +1 -1
- package/dist/web/src/platform/policy/subjectmapping/subject_mapping_pb.js +2 -3
- package/dist/web/src/platform/policy/unsafe/unsafe_pb.js +2 -4
- package/dist/web/src/platform.js +20 -3
- package/dist/web/src/policy/api.js +26 -7
- package/dist/web/src/policy/granter.js +75 -48
- package/dist/web/src/seekable.js +32 -1
- package/dist/web/src/utils.js +84 -3
- package/dist/web/src/version.js +1 -1
- package/dist/web/tdf3/src/assertions.js +38 -2
- package/dist/web/tdf3/src/client/DecoratedReadableStream.js +8 -1
- package/dist/web/tdf3/src/client/builders.js +13 -1
- package/dist/web/tdf3/src/client/index.js +215 -57
- package/dist/web/tdf3/src/client/validation.js +3 -3
- package/dist/web/tdf3/src/tdf.js +42 -9
- package/dist/web/tdf3/src/utils/unwrap.js +2 -2
- package/package.json +7 -5
- package/src/access/access-fetch.ts +1 -0
- package/src/access/access-rpc.ts +13 -4
- package/src/access/constants.ts +2 -0
- package/src/access.ts +54 -2
- package/src/auth/oidc-clientcredentials-provider.ts +4 -0
- package/src/auth/oidc-externaljwt-provider.ts +5 -1
- package/src/auth/oidc-refreshtoken-provider.ts +19 -1
- package/src/auth/oidc.ts +12 -7
- package/src/auth/providers.ts +6 -0
- package/src/index.ts +1 -0
- package/src/nanoclients.ts +3 -3
- package/src/nanotdf/Client.ts +28 -6
- package/src/opentdf.ts +205 -73
- package/src/platform/authorization/v2/authorization_pb.ts +503 -0
- package/src/platform/buf/validate/validate_pb.ts +529 -401
- package/src/platform/common/common_pb.ts +48 -3
- package/src/platform/entity/entity_pb.ts +154 -0
- package/src/platform/entityresolution/entity_resolution_pb.ts +4 -0
- package/src/platform/entityresolution/v2/entity_resolution_pb.ts +170 -0
- package/src/platform/google/api/annotations_pb.ts +1 -1
- package/src/platform/google/api/http_pb.ts +2 -2
- package/src/platform/kas/kas_pb.ts +6 -1
- package/src/platform/policy/attributes/attributes_pb.ts +46 -16
- package/src/platform/policy/kasregistry/key_access_server_registry_pb.ts +371 -27
- package/src/platform/policy/keymanagement/key_management_pb.ts +24 -2
- package/src/platform/policy/namespaces/namespaces_pb.ts +163 -7
- package/src/platform/policy/objects_pb.ts +474 -59
- package/src/platform/policy/obligations/obligations_pb.ts +788 -0
- package/src/platform/policy/registeredresources/registered_resources_pb.ts +80 -13
- package/src/platform/policy/resourcemapping/resource_mapping_pb.ts +1 -2
- package/src/platform/policy/selectors_pb.ts +18 -0
- package/src/platform/policy/subjectmapping/subject_mapping_pb.ts +1 -2
- package/src/platform/policy/unsafe/unsafe_pb.ts +21 -6
- package/src/platform.ts +29 -5
- package/src/policy/api.ts +37 -6
- package/src/policy/granter.ts +82 -56
- package/src/seekable.ts +31 -0
- package/src/utils.ts +88 -2
- package/src/version.ts +1 -1
- package/tdf3/src/assertions.ts +52 -1
- package/tdf3/src/client/DecoratedReadableStream.ts +9 -0
- package/tdf3/src/client/builders.ts +16 -0
- package/tdf3/src/client/index.ts +309 -73
- package/tdf3/src/client/validation.ts +2 -2
- package/tdf3/src/tdf.ts +53 -9
- package/tdf3/src/utils/unwrap.ts +2 -1
package/tdf3/src/tdf.ts
CHANGED
|
@@ -55,6 +55,7 @@ import { ZipReader, ZipWriter, keyMerge, concatUint8, buffToString } from './uti
|
|
|
55
55
|
import { CentralDirectory } from './utils/zip-reader.js';
|
|
56
56
|
import { ztdfSalt } from './crypto/salt.js';
|
|
57
57
|
import { Payload } from './models/payload.js';
|
|
58
|
+
import { getRequiredObligationFQNs } from '../../src/utils.js';
|
|
58
59
|
|
|
59
60
|
// TODO: input validation on manifest JSON
|
|
60
61
|
const DEFAULT_SEGMENT_SIZE = 1024 * 1024;
|
|
@@ -147,10 +148,12 @@ export type EncryptConfiguration = {
|
|
|
147
148
|
keyForEncryption: KeyInfo;
|
|
148
149
|
keyForManifest: KeyInfo;
|
|
149
150
|
assertionConfigs?: AssertionConfig[];
|
|
151
|
+
systemMetadataAssertion?: boolean;
|
|
150
152
|
tdfSpecVersion?: string;
|
|
151
153
|
};
|
|
152
154
|
|
|
153
155
|
export type DecryptConfiguration = {
|
|
156
|
+
fulfillableObligations: string[];
|
|
154
157
|
allowedKases?: string[];
|
|
155
158
|
allowList?: OriginAllowList;
|
|
156
159
|
authProvider: AuthProvider;
|
|
@@ -197,8 +200,15 @@ export type RewrapResponse = {
|
|
|
197
200
|
*/
|
|
198
201
|
export async function fetchKasPublicKey(
|
|
199
202
|
kas: string,
|
|
200
|
-
algorithm?: KasPublicKeyAlgorithm
|
|
203
|
+
algorithm?: KasPublicKeyAlgorithm,
|
|
204
|
+
kid?: string
|
|
201
205
|
): Promise<KasPublicKeyInfo> {
|
|
206
|
+
if (kid) {
|
|
207
|
+
// Some specific thing for fetching a key by kid?
|
|
208
|
+
// Currently this is just "using" `kid` so TypeScript doesn't complain and
|
|
209
|
+
// we can use the type for our cache parameters.
|
|
210
|
+
// So this empty `if` is actually doing something.
|
|
211
|
+
}
|
|
202
212
|
return fetchKasPubKeyV2(kas, algorithm);
|
|
203
213
|
}
|
|
204
214
|
|
|
@@ -527,8 +537,24 @@ export async function writeStream(cfg: EncryptConfiguration): Promise<DecoratedR
|
|
|
527
537
|
manifest.encryptionInformation.integrityInformation.segments = segmentInfos;
|
|
528
538
|
|
|
529
539
|
manifest.encryptionInformation.method.isStreamable = true;
|
|
530
|
-
|
|
531
540
|
const signedAssertions: assertions.Assertion[] = [];
|
|
541
|
+
if (cfg.systemMetadataAssertion) {
|
|
542
|
+
const systemMetadataConfigBase = assertions.getSystemMetadataAssertionConfig();
|
|
543
|
+
const signingKeyForSystemMetadata: AssertionKey = {
|
|
544
|
+
alg: 'HS256', // Default algorithm, can be configured if needed
|
|
545
|
+
key: new Uint8Array(cfg.keyForEncryption.unwrappedKeyBinary.asArrayBuffer()),
|
|
546
|
+
};
|
|
547
|
+
signedAssertions.push(
|
|
548
|
+
await assertions.CreateAssertion(
|
|
549
|
+
aggregateHash,
|
|
550
|
+
{
|
|
551
|
+
...systemMetadataConfigBase, // Spread the properties from the base config
|
|
552
|
+
signingKey: signingKeyForSystemMetadata, // Add the signing key
|
|
553
|
+
},
|
|
554
|
+
cfg.tdfSpecVersion // Pass the TDF spec version
|
|
555
|
+
)
|
|
556
|
+
);
|
|
557
|
+
}
|
|
532
558
|
if (cfg.assertionConfigs && cfg.assertionConfigs.length > 0) {
|
|
533
559
|
await Promise.all(
|
|
534
560
|
cfg.assertionConfigs.map(async (assertionConfig) => {
|
|
@@ -711,6 +737,7 @@ export function splitLookupTableFactory(
|
|
|
711
737
|
type RewrapResponseData = {
|
|
712
738
|
key: Uint8Array;
|
|
713
739
|
metadata: Record<string, unknown>;
|
|
740
|
+
requiredObligations: string[];
|
|
714
741
|
};
|
|
715
742
|
|
|
716
743
|
async function unwrapKey({
|
|
@@ -721,6 +748,7 @@ async function unwrapKey({
|
|
|
721
748
|
concurrencyLimit,
|
|
722
749
|
cryptoService,
|
|
723
750
|
wrappingKeyAlgorithm,
|
|
751
|
+
fulfillableObligations,
|
|
724
752
|
}: {
|
|
725
753
|
manifest: Manifest;
|
|
726
754
|
allowedKases: OriginAllowList;
|
|
@@ -729,6 +757,7 @@ async function unwrapKey({
|
|
|
729
757
|
dpopKeys: CryptoKeyPair;
|
|
730
758
|
cryptoService: CryptoService;
|
|
731
759
|
wrappingKeyAlgorithm?: KasPublicKeyAlgorithm;
|
|
760
|
+
fulfillableObligations: string[];
|
|
732
761
|
}) {
|
|
733
762
|
if (authProvider === undefined) {
|
|
734
763
|
throw new ConfigurationError(
|
|
@@ -764,11 +793,14 @@ async function unwrapKey({
|
|
|
764
793
|
const jwtPayload = { requestBody: requestBodyStr };
|
|
765
794
|
const signedRequestToken = await reqSignature(jwtPayload, dpopKeys.privateKey);
|
|
766
795
|
|
|
767
|
-
const
|
|
796
|
+
const rewrapResp = await fetchWrappedKey(
|
|
768
797
|
url,
|
|
769
798
|
signedRequestToken,
|
|
770
|
-
authProvider
|
|
799
|
+
authProvider,
|
|
800
|
+
fulfillableObligations
|
|
771
801
|
);
|
|
802
|
+
const { entityWrappedKey, metadata, sessionPublicKey } = rewrapResp;
|
|
803
|
+
const requiredObligations = getRequiredObligationFQNs(rewrapResp);
|
|
772
804
|
|
|
773
805
|
if (wrappingKeyAlgorithm === 'ec:secp256r1') {
|
|
774
806
|
const serverEphemeralKey: CryptoKey = await pemPublicToCrypto(sessionPublicKey);
|
|
@@ -786,6 +818,7 @@ async function unwrapKey({
|
|
|
786
818
|
return {
|
|
787
819
|
key: new Uint8Array(dek),
|
|
788
820
|
metadata,
|
|
821
|
+
requiredObligations,
|
|
789
822
|
};
|
|
790
823
|
}
|
|
791
824
|
const key = Binary.fromArrayBuffer(entityWrappedKey);
|
|
@@ -797,6 +830,7 @@ async function unwrapKey({
|
|
|
797
830
|
return {
|
|
798
831
|
key: new Uint8Array(decryptedKeyBinary.asByteArray()),
|
|
799
832
|
metadata,
|
|
833
|
+
requiredObligations,
|
|
800
834
|
};
|
|
801
835
|
}
|
|
802
836
|
|
|
@@ -826,12 +860,20 @@ async function unwrapKey({
|
|
|
826
860
|
splitPromises[splitId] = () => anyPool(poolSize, anyPromises);
|
|
827
861
|
}
|
|
828
862
|
try {
|
|
829
|
-
const
|
|
830
|
-
|
|
831
|
-
const
|
|
863
|
+
const rewrapResponseData = await allPool(poolSize, splitPromises);
|
|
864
|
+
const splitKeys = [];
|
|
865
|
+
const requiredObligations = new Set<string>();
|
|
866
|
+
for (const resp of rewrapResponseData) {
|
|
867
|
+
splitKeys.push(resp.key);
|
|
868
|
+
for (const requiredObligation of resp.requiredObligations) {
|
|
869
|
+
requiredObligations.add(requiredObligation.toLowerCase());
|
|
870
|
+
}
|
|
871
|
+
}
|
|
872
|
+
const reconstructedKey = keyMerge(splitKeys);
|
|
832
873
|
return {
|
|
833
874
|
reconstructedKeyBinary: Binary.fromArrayBuffer(reconstructedKey),
|
|
834
|
-
metadata:
|
|
875
|
+
metadata: rewrapResponseData[0].metadata, // Use metadata from first split
|
|
876
|
+
requiredObligations: [...requiredObligations],
|
|
835
877
|
};
|
|
836
878
|
} catch (e) {
|
|
837
879
|
if (e instanceof AggregateError) {
|
|
@@ -1015,7 +1057,8 @@ export async function decryptStreamFrom(
|
|
|
1015
1057
|
segmentSizeDefault,
|
|
1016
1058
|
segments,
|
|
1017
1059
|
} = manifest.encryptionInformation.integrityInformation;
|
|
1018
|
-
const { metadata, reconstructedKeyBinary } = await unwrapKey({
|
|
1060
|
+
const { metadata, reconstructedKeyBinary, requiredObligations } = await unwrapKey({
|
|
1061
|
+
fulfillableObligations: cfg.fulfillableObligations,
|
|
1019
1062
|
manifest,
|
|
1020
1063
|
authProvider: cfg.authProvider,
|
|
1021
1064
|
allowedKases: allowList,
|
|
@@ -1138,6 +1181,7 @@ export async function decryptStreamFrom(
|
|
|
1138
1181
|
|
|
1139
1182
|
const outputStream = new DecoratedReadableStream(underlyingSource);
|
|
1140
1183
|
|
|
1184
|
+
outputStream.requiredObligations = requiredObligations;
|
|
1141
1185
|
outputStream.manifest = manifest;
|
|
1142
1186
|
outputStream.metadata = metadata;
|
|
1143
1187
|
return outputStream;
|
package/tdf3/src/utils/unwrap.ts
CHANGED
|
@@ -3,7 +3,8 @@ import { InvalidFileError } from '../../../src/errors.js';
|
|
|
3
3
|
|
|
4
4
|
export function unwrapHtml(htmlPayload: Uint8Array): Uint8Array {
|
|
5
5
|
const html = new TextDecoder().decode(htmlPayload);
|
|
6
|
-
const payloadRe =
|
|
6
|
+
const payloadRe =
|
|
7
|
+
/<input\s+[^>]*id=(?:['"]?)data-input(?:['"]?)[^>]*value=(?:['"]?)([a-zA-Z0-9+/=\-_]+)(?:['"]?)/;
|
|
7
8
|
const reResult = payloadRe.exec(html);
|
|
8
9
|
if (!reResult) {
|
|
9
10
|
throw new InvalidFileError('Payload is missing');
|