@opentdf/sdk 0.1.0-beta.1701
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 +52 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/src/access.js +155 -0
- package/dist/cjs/src/auth/Eas.js +60 -0
- package/dist/cjs/src/auth/auth.js +79 -0
- package/dist/cjs/src/auth/oidc-clientcredentials-provider.js +26 -0
- package/dist/cjs/src/auth/oidc-externaljwt-provider.js +33 -0
- package/dist/cjs/src/auth/oidc-refreshtoken-provider.js +34 -0
- package/dist/cjs/src/auth/oidc.js +222 -0
- package/dist/cjs/src/auth/providers.js +143 -0
- package/dist/cjs/src/encodings/base64.js +154 -0
- package/dist/cjs/src/encodings/hex.js +70 -0
- package/dist/cjs/src/encodings/index.js +29 -0
- package/dist/cjs/src/errors.js +138 -0
- package/dist/cjs/src/index.js +344 -0
- package/dist/cjs/src/nanotdf/Client.js +296 -0
- package/dist/cjs/src/nanotdf/NanoTDF.js +94 -0
- package/dist/cjs/src/nanotdf/browser-entry.js +19 -0
- package/dist/cjs/src/nanotdf/constants.js +5 -0
- package/dist/cjs/src/nanotdf/decrypt.js +17 -0
- package/dist/cjs/src/nanotdf/encrypt-dataset.js +38 -0
- package/dist/cjs/src/nanotdf/encrypt.js +132 -0
- package/dist/cjs/src/nanotdf/enum/CipherEnum.js +13 -0
- package/dist/cjs/src/nanotdf/enum/CurveNameEnum.js +15 -0
- package/dist/cjs/src/nanotdf/enum/EncodingEnum.js +8 -0
- package/dist/cjs/src/nanotdf/enum/PolicyTypeEnum.js +11 -0
- package/dist/cjs/src/nanotdf/enum/ProtocolEnum.js +10 -0
- package/dist/cjs/src/nanotdf/enum/ResourceLocatorIdentifierEnum.js +11 -0
- package/dist/cjs/src/nanotdf/helpers/calculateByCurve.js +29 -0
- package/dist/cjs/src/nanotdf/helpers/getHkdfSalt.js +11 -0
- package/dist/cjs/src/nanotdf/index.js +25 -0
- package/dist/cjs/src/nanotdf/interfaces/PolicyInterface.js +3 -0
- package/dist/cjs/src/nanotdf/models/Ciphers.js +61 -0
- package/dist/cjs/src/nanotdf/models/DefaultParams.js +27 -0
- package/dist/cjs/src/nanotdf/models/EcCurves.js +39 -0
- package/dist/cjs/src/nanotdf/models/Header.js +255 -0
- package/dist/cjs/src/nanotdf/models/Payload.js +158 -0
- package/dist/cjs/src/nanotdf/models/Policy/AbstractPolicy.js +73 -0
- package/dist/cjs/src/nanotdf/models/Policy/EmbeddedPolicy.js +82 -0
- package/dist/cjs/src/nanotdf/models/Policy/PolicyFactory.js +38 -0
- package/dist/cjs/src/nanotdf/models/Policy/RemotePolicy.js +62 -0
- package/dist/cjs/src/nanotdf/models/ResourceLocator.js +211 -0
- package/dist/cjs/src/nanotdf/models/Signature.js +77 -0
- package/dist/cjs/src/nanotdf-crypto/ciphers.js +17 -0
- package/dist/cjs/src/nanotdf-crypto/decrypt.js +24 -0
- package/dist/cjs/src/nanotdf-crypto/digest.js +7 -0
- package/dist/cjs/src/nanotdf-crypto/ecdsaSignature.js +83 -0
- package/dist/cjs/src/nanotdf-crypto/encrypt.js +24 -0
- package/dist/cjs/src/nanotdf-crypto/enums.js +52 -0
- package/dist/cjs/src/nanotdf-crypto/exportCryptoKey.js +20 -0
- package/dist/cjs/src/nanotdf-crypto/generateKeyPair.js +13 -0
- package/dist/cjs/src/nanotdf-crypto/generateRandomNumber.js +12 -0
- package/dist/cjs/src/nanotdf-crypto/importRawKey.js +18 -0
- package/dist/cjs/src/nanotdf-crypto/index.js +52 -0
- package/dist/cjs/src/nanotdf-crypto/keyAgreement.js +91 -0
- package/dist/cjs/src/nanotdf-crypto/pemPublicToCrypto.js +225 -0
- package/dist/cjs/src/policy/api.js +58 -0
- package/dist/cjs/src/policy/attributes.js +3 -0
- package/dist/cjs/src/policy/granter.js +146 -0
- package/dist/cjs/src/tdf/AttributeObject.js +15 -0
- package/dist/cjs/src/tdf/AttributeObjectJwt.js +3 -0
- package/dist/cjs/src/tdf/Crypto.js +47 -0
- package/dist/cjs/src/tdf/EntityObject.js +3 -0
- package/dist/cjs/src/tdf/NanoTDF/NanoTDF.js +38 -0
- package/dist/cjs/src/tdf/Policy.js +50 -0
- package/dist/cjs/src/tdf/PolicyObject.js +3 -0
- package/dist/cjs/src/tdf/TypedArray.js +3 -0
- package/dist/cjs/src/tdf/index.js +35 -0
- package/dist/cjs/src/types/index.js +3 -0
- package/dist/cjs/src/utils.js +147 -0
- package/dist/cjs/src/version.js +12 -0
- package/dist/cjs/tdf3/index.js +57 -0
- package/dist/cjs/tdf3/src/assertions.js +118 -0
- package/dist/cjs/tdf3/src/binary.js +153 -0
- package/dist/cjs/tdf3/src/ciphers/aes-gcm-cipher.js +56 -0
- package/dist/cjs/tdf3/src/ciphers/algorithms.js +8 -0
- package/dist/cjs/tdf3/src/ciphers/index.js +8 -0
- package/dist/cjs/tdf3/src/ciphers/symmetric-cipher-base.js +22 -0
- package/dist/cjs/tdf3/src/client/DecoratedReadableStream.js +116 -0
- package/dist/cjs/tdf3/src/client/builders.js +561 -0
- package/dist/cjs/tdf3/src/client/index.js +460 -0
- package/dist/cjs/tdf3/src/client/validation.js +63 -0
- package/dist/cjs/tdf3/src/crypto/crypto-utils.js +116 -0
- package/dist/cjs/tdf3/src/crypto/declarations.js +8 -0
- package/dist/cjs/tdf3/src/crypto/index.js +315 -0
- package/dist/cjs/tdf3/src/index.js +34 -0
- package/dist/cjs/tdf3/src/models/attribute-set.js +122 -0
- package/dist/cjs/tdf3/src/models/encryption-information.js +90 -0
- package/dist/cjs/tdf3/src/models/index.js +25 -0
- package/dist/cjs/tdf3/src/models/key-access.js +103 -0
- package/dist/cjs/tdf3/src/models/manifest.js +3 -0
- package/dist/cjs/tdf3/src/models/payload.js +3 -0
- package/dist/cjs/tdf3/src/models/policy.js +24 -0
- package/dist/cjs/tdf3/src/models/upsert-response.js +3 -0
- package/dist/cjs/tdf3/src/tdf.js +907 -0
- package/dist/cjs/tdf3/src/templates/default.html.js +98 -0
- package/dist/cjs/tdf3/src/templates/escaper.js +15 -0
- package/dist/cjs/tdf3/src/templates/index.js +12 -0
- package/dist/cjs/tdf3/src/utils/buffer-crc32.js +48 -0
- package/dist/cjs/tdf3/src/utils/chunkers.js +106 -0
- package/dist/cjs/tdf3/src/utils/index.js +296 -0
- package/dist/cjs/tdf3/src/utils/keysplit.js +61 -0
- package/dist/cjs/tdf3/src/utils/zip-reader.js +253 -0
- package/dist/cjs/tdf3/src/utils/zip-writer.js +308 -0
- package/dist/cjs/tdf3/src/version.js +6 -0
- package/dist/types/src/access.d.ts +47 -0
- package/dist/types/src/access.d.ts.map +1 -0
- package/dist/types/src/auth/Eas.d.ts +34 -0
- package/dist/types/src/auth/Eas.d.ts.map +1 -0
- package/dist/types/src/auth/auth.d.ts +86 -0
- package/dist/types/src/auth/auth.d.ts.map +1 -0
- package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts +9 -0
- package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts.map +1 -0
- package/dist/types/src/auth/oidc-externaljwt-provider.d.ts +10 -0
- package/dist/types/src/auth/oidc-externaljwt-provider.d.ts.map +1 -0
- package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts +10 -0
- package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts.map +1 -0
- package/dist/types/src/auth/oidc.d.ts +104 -0
- package/dist/types/src/auth/oidc.d.ts.map +1 -0
- package/dist/types/src/auth/providers.d.ts +67 -0
- package/dist/types/src/auth/providers.d.ts.map +1 -0
- package/dist/types/src/encodings/base64.d.ts +18 -0
- package/dist/types/src/encodings/base64.d.ts.map +1 -0
- package/dist/types/src/encodings/hex.d.ts +5 -0
- package/dist/types/src/encodings/hex.d.ts.map +1 -0
- package/dist/types/src/encodings/index.d.ts +3 -0
- package/dist/types/src/encodings/index.d.ts.map +1 -0
- package/dist/types/src/errors.d.ts +72 -0
- package/dist/types/src/errors.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +138 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/nanotdf/Client.d.ts +95 -0
- package/dist/types/src/nanotdf/Client.d.ts.map +1 -0
- package/dist/types/src/nanotdf/NanoTDF.d.ts +25 -0
- package/dist/types/src/nanotdf/NanoTDF.d.ts.map +1 -0
- package/dist/types/src/nanotdf/browser-entry.d.ts +17 -0
- package/dist/types/src/nanotdf/browser-entry.d.ts.map +1 -0
- package/dist/types/src/nanotdf/constants.d.ts +2 -0
- package/dist/types/src/nanotdf/constants.d.ts.map +1 -0
- package/dist/types/src/nanotdf/decrypt.d.ts +9 -0
- package/dist/types/src/nanotdf/decrypt.d.ts.map +1 -0
- package/dist/types/src/nanotdf/encrypt-dataset.d.ts +12 -0
- package/dist/types/src/nanotdf/encrypt-dataset.d.ts.map +1 -0
- package/dist/types/src/nanotdf/encrypt.d.ts +14 -0
- package/dist/types/src/nanotdf/encrypt.d.ts.map +1 -0
- package/dist/types/src/nanotdf/enum/CipherEnum.d.ts +10 -0
- package/dist/types/src/nanotdf/enum/CipherEnum.d.ts.map +1 -0
- package/dist/types/src/nanotdf/enum/CurveNameEnum.d.ts +12 -0
- package/dist/types/src/nanotdf/enum/CurveNameEnum.d.ts.map +1 -0
- package/dist/types/src/nanotdf/enum/EncodingEnum.d.ts +5 -0
- package/dist/types/src/nanotdf/enum/EncodingEnum.d.ts.map +1 -0
- package/dist/types/src/nanotdf/enum/PolicyTypeEnum.d.ts +8 -0
- package/dist/types/src/nanotdf/enum/PolicyTypeEnum.d.ts.map +1 -0
- package/dist/types/src/nanotdf/enum/ProtocolEnum.d.ts +7 -0
- package/dist/types/src/nanotdf/enum/ProtocolEnum.d.ts.map +1 -0
- package/dist/types/src/nanotdf/enum/ResourceLocatorIdentifierEnum.d.ts +8 -0
- package/dist/types/src/nanotdf/enum/ResourceLocatorIdentifierEnum.d.ts.map +1 -0
- package/dist/types/src/nanotdf/helpers/calculateByCurve.d.ts +20 -0
- package/dist/types/src/nanotdf/helpers/calculateByCurve.d.ts.map +1 -0
- package/dist/types/src/nanotdf/helpers/getHkdfSalt.d.ts +9 -0
- package/dist/types/src/nanotdf/helpers/getHkdfSalt.d.ts.map +1 -0
- package/dist/types/src/nanotdf/index.d.ts +9 -0
- package/dist/types/src/nanotdf/index.d.ts.map +1 -0
- package/dist/types/src/nanotdf/interfaces/PolicyInterface.d.ts +17 -0
- package/dist/types/src/nanotdf/interfaces/PolicyInterface.d.ts.map +1 -0
- package/dist/types/src/nanotdf/models/Ciphers.d.ts +14 -0
- package/dist/types/src/nanotdf/models/Ciphers.d.ts.map +1 -0
- package/dist/types/src/nanotdf/models/DefaultParams.d.ts +21 -0
- package/dist/types/src/nanotdf/models/DefaultParams.d.ts.map +1 -0
- package/dist/types/src/nanotdf/models/EcCurves.d.ts +15 -0
- package/dist/types/src/nanotdf/models/EcCurves.d.ts.map +1 -0
- package/dist/types/src/nanotdf/models/Header.d.ts +73 -0
- package/dist/types/src/nanotdf/models/Header.d.ts.map +1 -0
- package/dist/types/src/nanotdf/models/Payload.d.ts +47 -0
- package/dist/types/src/nanotdf/models/Payload.d.ts.map +1 -0
- package/dist/types/src/nanotdf/models/Policy/AbstractPolicy.d.ts +52 -0
- package/dist/types/src/nanotdf/models/Policy/AbstractPolicy.d.ts.map +1 -0
- package/dist/types/src/nanotdf/models/Policy/EmbeddedPolicy.d.ts +35 -0
- package/dist/types/src/nanotdf/models/Policy/EmbeddedPolicy.d.ts.map +1 -0
- package/dist/types/src/nanotdf/models/Policy/PolicyFactory.d.ts +11 -0
- package/dist/types/src/nanotdf/models/Policy/PolicyFactory.d.ts.map +1 -0
- package/dist/types/src/nanotdf/models/Policy/RemotePolicy.d.ts +31 -0
- package/dist/types/src/nanotdf/models/Policy/RemotePolicy.d.ts.map +1 -0
- package/dist/types/src/nanotdf/models/ResourceLocator.d.ts +65 -0
- package/dist/types/src/nanotdf/models/ResourceLocator.d.ts.map +1 -0
- package/dist/types/src/nanotdf/models/Signature.d.ts +33 -0
- package/dist/types/src/nanotdf/models/Signature.d.ts.map +1 -0
- package/dist/types/src/nanotdf-crypto/ciphers.d.ts +8 -0
- package/dist/types/src/nanotdf-crypto/ciphers.d.ts.map +1 -0
- package/dist/types/src/nanotdf-crypto/decrypt.d.ts +14 -0
- package/dist/types/src/nanotdf-crypto/decrypt.d.ts.map +1 -0
- package/dist/types/src/nanotdf-crypto/digest.d.ts +3 -0
- package/dist/types/src/nanotdf-crypto/digest.d.ts.map +1 -0
- package/dist/types/src/nanotdf-crypto/ecdsaSignature.d.ts +35 -0
- package/dist/types/src/nanotdf-crypto/ecdsaSignature.d.ts.map +1 -0
- package/dist/types/src/nanotdf-crypto/encrypt.d.ts +14 -0
- package/dist/types/src/nanotdf-crypto/encrypt.d.ts.map +1 -0
- package/dist/types/src/nanotdf-crypto/enums.d.ts +42 -0
- package/dist/types/src/nanotdf-crypto/enums.d.ts.map +1 -0
- package/dist/types/src/nanotdf-crypto/exportCryptoKey.d.ts +7 -0
- package/dist/types/src/nanotdf-crypto/exportCryptoKey.d.ts.map +1 -0
- package/dist/types/src/nanotdf-crypto/generateKeyPair.d.ts +10 -0
- package/dist/types/src/nanotdf-crypto/generateKeyPair.d.ts.map +1 -0
- package/dist/types/src/nanotdf-crypto/generateRandomNumber.d.ts +5 -0
- package/dist/types/src/nanotdf-crypto/generateRandomNumber.d.ts.map +1 -0
- package/dist/types/src/nanotdf-crypto/importRawKey.d.ts +13 -0
- package/dist/types/src/nanotdf-crypto/importRawKey.d.ts.map +1 -0
- package/dist/types/src/nanotdf-crypto/index.d.ts +12 -0
- package/dist/types/src/nanotdf-crypto/index.d.ts.map +1 -0
- package/dist/types/src/nanotdf-crypto/keyAgreement.d.ts +28 -0
- package/dist/types/src/nanotdf-crypto/keyAgreement.d.ts.map +1 -0
- package/dist/types/src/nanotdf-crypto/pemPublicToCrypto.d.ts +28 -0
- package/dist/types/src/nanotdf-crypto/pemPublicToCrypto.d.ts.map +1 -0
- package/dist/types/src/policy/api.d.ts +4 -0
- package/dist/types/src/policy/api.d.ts.map +1 -0
- package/dist/types/src/policy/attributes.d.ts +95 -0
- package/dist/types/src/policy/attributes.d.ts.map +1 -0
- package/dist/types/src/policy/granter.d.ts +23 -0
- package/dist/types/src/policy/granter.d.ts.map +1 -0
- package/dist/types/src/tdf/AttributeObject.d.ts +13 -0
- package/dist/types/src/tdf/AttributeObject.d.ts.map +1 -0
- package/dist/types/src/tdf/AttributeObjectJwt.d.ts +4 -0
- package/dist/types/src/tdf/AttributeObjectJwt.d.ts.map +1 -0
- package/dist/types/src/tdf/Crypto.d.ts +37 -0
- package/dist/types/src/tdf/Crypto.d.ts.map +1 -0
- package/dist/types/src/tdf/EntityObject.d.ts +18 -0
- package/dist/types/src/tdf/EntityObject.d.ts.map +1 -0
- package/dist/types/src/tdf/NanoTDF/NanoTDF.d.ts +99 -0
- package/dist/types/src/tdf/NanoTDF/NanoTDF.d.ts.map +1 -0
- package/dist/types/src/tdf/Policy.d.ts +28 -0
- package/dist/types/src/tdf/Policy.d.ts.map +1 -0
- package/dist/types/src/tdf/PolicyObject.d.ts +11 -0
- package/dist/types/src/tdf/PolicyObject.d.ts.map +1 -0
- package/dist/types/src/tdf/TypedArray.d.ts +3 -0
- package/dist/types/src/tdf/TypedArray.d.ts.map +1 -0
- package/dist/types/src/tdf/index.d.ts +7 -0
- package/dist/types/src/tdf/index.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +45 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/src/utils.d.ts +45 -0
- package/dist/types/src/utils.d.ts.map +1 -0
- package/dist/types/src/version.d.ts +9 -0
- package/dist/types/src/version.d.ts.map +1 -0
- package/dist/types/tdf3/index.d.ts +16 -0
- package/dist/types/tdf3/index.d.ts.map +1 -0
- package/dist/types/tdf3/src/assertions.d.ts +63 -0
- package/dist/types/tdf3/src/assertions.d.ts.map +1 -0
- package/dist/types/tdf3/src/binary.d.ts +38 -0
- package/dist/types/tdf3/src/binary.d.ts.map +1 -0
- package/dist/types/tdf3/src/ciphers/aes-gcm-cipher.d.ts +18 -0
- package/dist/types/tdf3/src/ciphers/aes-gcm-cipher.d.ts.map +1 -0
- package/dist/types/tdf3/src/ciphers/algorithms.d.ts +4 -0
- package/dist/types/tdf3/src/ciphers/algorithms.d.ts.map +1 -0
- package/dist/types/tdf3/src/ciphers/index.d.ts +3 -0
- package/dist/types/tdf3/src/ciphers/index.d.ts.map +1 -0
- package/dist/types/tdf3/src/ciphers/symmetric-cipher-base.d.ts +14 -0
- package/dist/types/tdf3/src/ciphers/symmetric-cipher-base.d.ts.map +1 -0
- package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts +53 -0
- package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts.map +1 -0
- package/dist/types/tdf3/src/client/builders.d.ts +436 -0
- package/dist/types/tdf3/src/client/builders.d.ts.map +1 -0
- package/dist/types/tdf3/src/client/index.d.ts +139 -0
- package/dist/types/tdf3/src/client/index.d.ts.map +1 -0
- package/dist/types/tdf3/src/client/validation.d.ts +8 -0
- package/dist/types/tdf3/src/client/validation.d.ts.map +1 -0
- package/dist/types/tdf3/src/crypto/crypto-utils.d.ts +34 -0
- package/dist/types/tdf3/src/crypto/crypto-utils.d.ts.map +1 -0
- package/dist/types/tdf3/src/crypto/declarations.d.ts +60 -0
- package/dist/types/tdf3/src/crypto/declarations.d.ts.map +1 -0
- package/dist/types/tdf3/src/crypto/index.d.ts +103 -0
- package/dist/types/tdf3/src/crypto/index.d.ts.map +1 -0
- package/dist/types/tdf3/src/index.d.ts +5 -0
- package/dist/types/tdf3/src/index.d.ts.map +1 -0
- package/dist/types/tdf3/src/models/attribute-set.d.ts +65 -0
- package/dist/types/tdf3/src/models/attribute-set.d.ts.map +1 -0
- package/dist/types/tdf3/src/models/encryption-information.d.ts +49 -0
- package/dist/types/tdf3/src/models/encryption-information.d.ts.map +1 -0
- package/dist/types/tdf3/src/models/index.d.ts +9 -0
- package/dist/types/tdf3/src/models/index.d.ts.map +1 -0
- package/dist/types/tdf3/src/models/key-access.d.ts +42 -0
- package/dist/types/tdf3/src/models/key-access.d.ts.map +1 -0
- package/dist/types/tdf3/src/models/manifest.d.ts +9 -0
- package/dist/types/tdf3/src/models/manifest.d.ts.map +1 -0
- package/dist/types/tdf3/src/models/payload.d.ts +7 -0
- package/dist/types/tdf3/src/models/payload.d.ts.map +1 -0
- package/dist/types/tdf3/src/models/policy.d.ts +13 -0
- package/dist/types/tdf3/src/models/policy.d.ts.map +1 -0
- package/dist/types/tdf3/src/models/upsert-response.d.ts +16 -0
- package/dist/types/tdf3/src/models/upsert-response.d.ts.map +1 -0
- package/dist/types/tdf3/src/tdf.d.ts +152 -0
- package/dist/types/tdf3/src/tdf.d.ts.map +1 -0
- package/dist/types/tdf3/src/templates/default.html.d.ts +8 -0
- package/dist/types/tdf3/src/templates/default.html.d.ts.map +1 -0
- package/dist/types/tdf3/src/templates/escaper.d.ts +6 -0
- package/dist/types/tdf3/src/templates/escaper.d.ts.map +1 -0
- package/dist/types/tdf3/src/templates/index.d.ts +3 -0
- package/dist/types/tdf3/src/templates/index.d.ts.map +1 -0
- package/dist/types/tdf3/src/utils/buffer-crc32.d.ts +2 -0
- package/dist/types/tdf3/src/utils/buffer-crc32.d.ts.map +1 -0
- package/dist/types/tdf3/src/utils/chunkers.d.ts +29 -0
- package/dist/types/tdf3/src/utils/chunkers.d.ts.map +1 -0
- package/dist/types/tdf3/src/utils/index.d.ts +36 -0
- package/dist/types/tdf3/src/utils/index.d.ts.map +1 -0
- package/dist/types/tdf3/src/utils/keysplit.d.ts +19 -0
- package/dist/types/tdf3/src/utils/keysplit.d.ts.map +1 -0
- package/dist/types/tdf3/src/utils/zip-reader.d.ts +63 -0
- package/dist/types/tdf3/src/utils/zip-reader.d.ts.map +1 -0
- package/dist/types/tdf3/src/utils/zip-writer.d.ts +35 -0
- package/dist/types/tdf3/src/utils/zip-writer.d.ts.map +1 -0
- package/dist/types/tdf3/src/version.d.ts +3 -0
- package/dist/types/tdf3/src/version.d.ts.map +1 -0
- package/dist/web/package.json +3 -0
- package/dist/web/src/access.js +147 -0
- package/dist/web/src/auth/Eas.js +55 -0
- package/dist/web/src/auth/auth.js +71 -0
- package/dist/web/src/auth/oidc-clientcredentials-provider.js +22 -0
- package/dist/web/src/auth/oidc-externaljwt-provider.js +29 -0
- package/dist/web/src/auth/oidc-refreshtoken-provider.js +30 -0
- package/dist/web/src/auth/oidc.js +215 -0
- package/dist/web/src/auth/providers.js +119 -0
- package/dist/web/src/encodings/base64.js +147 -0
- package/dist/web/src/encodings/hex.js +63 -0
- package/dist/web/src/encodings/index.js +3 -0
- package/dist/web/src/errors.js +123 -0
- package/dist/web/src/index.js +313 -0
- package/dist/web/src/nanotdf/Client.js +268 -0
- package/dist/web/src/nanotdf/NanoTDF.js +89 -0
- package/dist/web/src/nanotdf/browser-entry.js +14 -0
- package/dist/web/src/nanotdf/constants.js +2 -0
- package/dist/web/src/nanotdf/decrypt.js +14 -0
- package/dist/web/src/nanotdf/encrypt-dataset.js +32 -0
- package/dist/web/src/nanotdf/encrypt.js +126 -0
- package/dist/web/src/nanotdf/enum/CipherEnum.js +11 -0
- package/dist/web/src/nanotdf/enum/CurveNameEnum.js +13 -0
- package/dist/web/src/nanotdf/enum/EncodingEnum.js +6 -0
- package/dist/web/src/nanotdf/enum/PolicyTypeEnum.js +9 -0
- package/dist/web/src/nanotdf/enum/ProtocolEnum.js +8 -0
- package/dist/web/src/nanotdf/enum/ResourceLocatorIdentifierEnum.js +9 -0
- package/dist/web/src/nanotdf/helpers/calculateByCurve.js +24 -0
- package/dist/web/src/nanotdf/helpers/getHkdfSalt.js +8 -0
- package/dist/web/src/nanotdf/index.js +11 -0
- package/dist/web/src/nanotdf/interfaces/PolicyInterface.js +2 -0
- package/dist/web/src/nanotdf/models/Ciphers.js +54 -0
- package/dist/web/src/nanotdf/models/DefaultParams.js +22 -0
- package/dist/web/src/nanotdf/models/EcCurves.js +32 -0
- package/dist/web/src/nanotdf/models/Header.js +250 -0
- package/dist/web/src/nanotdf/models/Payload.js +156 -0
- package/dist/web/src/nanotdf/models/Policy/AbstractPolicy.js +71 -0
- package/dist/web/src/nanotdf/models/Policy/EmbeddedPolicy.js +77 -0
- package/dist/web/src/nanotdf/models/Policy/PolicyFactory.js +33 -0
- package/dist/web/src/nanotdf/models/Policy/RemotePolicy.js +57 -0
- package/dist/web/src/nanotdf/models/ResourceLocator.js +206 -0
- package/dist/web/src/nanotdf/models/Signature.js +74 -0
- package/dist/web/src/nanotdf-crypto/ciphers.js +14 -0
- package/dist/web/src/nanotdf-crypto/decrypt.js +21 -0
- package/dist/web/src/nanotdf-crypto/digest.js +4 -0
- package/dist/web/src/nanotdf-crypto/ecdsaSignature.js +77 -0
- package/dist/web/src/nanotdf-crypto/encrypt.js +21 -0
- package/dist/web/src/nanotdf-crypto/enums.js +49 -0
- package/dist/web/src/nanotdf-crypto/exportCryptoKey.js +17 -0
- package/dist/web/src/nanotdf-crypto/generateKeyPair.js +10 -0
- package/dist/web/src/nanotdf-crypto/generateRandomNumber.js +9 -0
- package/dist/web/src/nanotdf-crypto/importRawKey.js +15 -0
- package/dist/web/src/nanotdf-crypto/index.js +12 -0
- package/dist/web/src/nanotdf-crypto/keyAgreement.js +87 -0
- package/dist/web/src/nanotdf-crypto/pemPublicToCrypto.js +197 -0
- package/dist/web/src/policy/api.js +54 -0
- package/dist/web/src/policy/attributes.js +2 -0
- package/dist/web/src/policy/granter.js +141 -0
- package/dist/web/src/tdf/AttributeObject.js +11 -0
- package/dist/web/src/tdf/AttributeObjectJwt.js +2 -0
- package/dist/web/src/tdf/Crypto.js +44 -0
- package/dist/web/src/tdf/EntityObject.js +2 -0
- package/dist/web/src/tdf/NanoTDF/NanoTDF.js +35 -0
- package/dist/web/src/tdf/Policy.js +48 -0
- package/dist/web/src/tdf/PolicyObject.js +2 -0
- package/dist/web/src/tdf/TypedArray.js +2 -0
- package/dist/web/src/tdf/index.js +4 -0
- package/dist/web/src/types/index.js +2 -0
- package/dist/web/src/utils.js +133 -0
- package/dist/web/src/version.js +9 -0
- package/dist/web/tdf3/index.js +13 -0
- package/dist/web/tdf3/src/assertions.js +111 -0
- package/dist/web/tdf3/src/binary.js +149 -0
- package/dist/web/tdf3/src/ciphers/aes-gcm-cipher.js +52 -0
- package/dist/web/tdf3/src/ciphers/algorithms.js +5 -0
- package/dist/web/tdf3/src/ciphers/index.js +3 -0
- package/dist/web/tdf3/src/ciphers/symmetric-cipher-base.js +18 -0
- package/dist/web/tdf3/src/client/DecoratedReadableStream.js +107 -0
- package/dist/web/tdf3/src/client/builders.js +557 -0
- package/dist/web/tdf3/src/client/index.js +423 -0
- package/dist/web/tdf3/src/client/validation.js +58 -0
- package/dist/web/tdf3/src/crypto/crypto-utils.js +107 -0
- package/dist/web/tdf3/src/crypto/declarations.js +5 -0
- package/dist/web/tdf3/src/crypto/index.js +296 -0
- package/dist/web/tdf3/src/index.js +5 -0
- package/dist/web/tdf3/src/models/attribute-set.js +118 -0
- package/dist/web/tdf3/src/models/encryption-information.js +86 -0
- package/dist/web/tdf3/src/models/index.js +9 -0
- package/dist/web/tdf3/src/models/key-access.js +74 -0
- package/dist/web/tdf3/src/models/manifest.js +2 -0
- package/dist/web/tdf3/src/models/payload.js +2 -0
- package/dist/web/tdf3/src/models/policy.js +20 -0
- package/dist/web/tdf3/src/models/upsert-response.js +2 -0
- package/dist/web/tdf3/src/tdf.js +866 -0
- package/dist/web/tdf3/src/templates/default.html.js +96 -0
- package/dist/web/tdf3/src/templates/escaper.js +10 -0
- package/dist/web/tdf3/src/templates/index.js +3 -0
- package/dist/web/tdf3/src/utils/buffer-crc32.js +44 -0
- package/dist/web/tdf3/src/utils/chunkers.js +96 -0
- package/dist/web/tdf3/src/utils/index.js +248 -0
- package/dist/web/tdf3/src/utils/keysplit.js +55 -0
- package/dist/web/tdf3/src/utils/zip-reader.js +247 -0
- package/dist/web/tdf3/src/utils/zip-writer.js +302 -0
- package/dist/web/tdf3/src/version.js +3 -0
- package/package.json +126 -0
- package/src/access.ts +198 -0
- package/src/auth/Eas.ts +79 -0
- package/src/auth/auth.ts +141 -0
- package/src/auth/oidc-clientcredentials-provider.ts +32 -0
- package/src/auth/oidc-externaljwt-provider.ts +41 -0
- package/src/auth/oidc-refreshtoken-provider.ts +41 -0
- package/src/auth/oidc.ts +307 -0
- package/src/auth/providers.ts +139 -0
- package/src/encodings/base64.ts +160 -0
- package/src/encodings/hex.ts +69 -0
- package/src/encodings/index.ts +2 -0
- package/src/errors.ts +113 -0
- package/src/index.ts +441 -0
- package/src/nanotdf/Client.ts +349 -0
- package/src/nanotdf/NanoTDF.ts +121 -0
- package/src/nanotdf/browser-entry.ts +20 -0
- package/src/nanotdf/constants.ts +1 -0
- package/src/nanotdf/decrypt.ts +19 -0
- package/src/nanotdf/encrypt-dataset.ts +52 -0
- package/src/nanotdf/encrypt.ts +197 -0
- package/src/nanotdf/enum/CipherEnum.ts +10 -0
- package/src/nanotdf/enum/CurveNameEnum.ts +12 -0
- package/src/nanotdf/enum/EncodingEnum.ts +5 -0
- package/src/nanotdf/enum/PolicyTypeEnum.ts +8 -0
- package/src/nanotdf/enum/ProtocolEnum.ts +7 -0
- package/src/nanotdf/enum/ResourceLocatorIdentifierEnum.ts +8 -0
- package/src/nanotdf/helpers/calculateByCurve.ts +26 -0
- package/src/nanotdf/helpers/getHkdfSalt.ts +15 -0
- package/src/nanotdf/index.ts +10 -0
- package/src/nanotdf/interfaces/PolicyInterface.ts +27 -0
- package/src/nanotdf/models/Ciphers.ts +67 -0
- package/src/nanotdf/models/DefaultParams.ts +24 -0
- package/src/nanotdf/models/EcCurves.ts +40 -0
- package/src/nanotdf/models/Header.ts +322 -0
- package/src/nanotdf/models/Payload.ts +196 -0
- package/src/nanotdf/models/Policy/AbstractPolicy.ts +90 -0
- package/src/nanotdf/models/Policy/EmbeddedPolicy.ts +101 -0
- package/src/nanotdf/models/Policy/PolicyFactory.ts +48 -0
- package/src/nanotdf/models/Policy/RemotePolicy.ts +74 -0
- package/src/nanotdf/models/ResourceLocator.ts +212 -0
- package/src/nanotdf/models/Signature.ts +85 -0
- package/src/nanotdf-crypto/ciphers.ts +13 -0
- package/src/nanotdf-crypto/decrypt.ts +30 -0
- package/src/nanotdf-crypto/digest.ts +8 -0
- package/src/nanotdf-crypto/ecdsaSignature.ts +109 -0
- package/src/nanotdf-crypto/encrypt.ts +30 -0
- package/src/nanotdf-crypto/enums.ts +47 -0
- package/src/nanotdf-crypto/exportCryptoKey.ts +17 -0
- package/src/nanotdf-crypto/generateKeyPair.ts +19 -0
- package/src/nanotdf-crypto/generateRandomNumber.ts +8 -0
- package/src/nanotdf-crypto/importRawKey.ts +19 -0
- package/src/nanotdf-crypto/index.ts +11 -0
- package/src/nanotdf-crypto/keyAgreement.ts +139 -0
- package/src/nanotdf-crypto/pemPublicToCrypto.ts +232 -0
- package/src/package-lock.json +6 -0
- package/src/package.json +3 -0
- package/src/platform/authorization/authorization_connect.d.ts +44 -0
- package/src/platform/authorization/authorization_connect.js +44 -0
- package/src/platform/authorization/authorization_pb.d.ts +707 -0
- package/src/platform/authorization/authorization_pb.js +372 -0
- package/src/platform/common/common_pb.d.ts +129 -0
- package/src/platform/common/common_pb.js +58 -0
- package/src/platform/entityresolution/entity_resolution_connect.d.ts +35 -0
- package/src/platform/entityresolution/entity_resolution_connect.js +35 -0
- package/src/platform/entityresolution/entity_resolution_pb.d.ts +242 -0
- package/src/platform/entityresolution/entity_resolution_pb.js +139 -0
- package/src/platform/kas/kas_connect.d.ts +59 -0
- package/src/platform/kas/kas_connect.js +59 -0
- package/src/platform/kas/kas_pb.d.ts +200 -0
- package/src/platform/kas/kas_pb.js +84 -0
- package/src/platform/policy/attributes/attributes_connect.d.ts +168 -0
- package/src/platform/policy/attributes/attributes_connect.js +168 -0
- package/src/platform/policy/attributes/attributes_pb.d.ts +929 -0
- package/src/platform/policy/attributes/attributes_pb.js +363 -0
- package/src/platform/policy/kasregistry/key_access_server_registry_connect.d.ts +62 -0
- package/src/platform/policy/kasregistry/key_access_server_registry_connect.js +62 -0
- package/src/platform/policy/kasregistry/key_access_server_registry_pb.d.ts +283 -0
- package/src/platform/policy/kasregistry/key_access_server_registry_pb.js +113 -0
- package/src/platform/policy/namespaces/namespaces_connect.d.ts +62 -0
- package/src/platform/policy/namespaces/namespaces_connect.js +62 -0
- package/src/platform/policy/namespaces/namespaces_pb.d.ts +270 -0
- package/src/platform/policy/namespaces/namespaces_pb.js +110 -0
- package/src/platform/policy/objects_pb.d.ts +725 -0
- package/src/platform/policy/objects_pb.js +288 -0
- package/src/platform/policy/resourcemapping/resource_mapping_connect.d.ts +259 -0
- package/src/platform/policy/resourcemapping/resource_mapping_connect.js +259 -0
- package/src/platform/policy/resourcemapping/resource_mapping_pb.d.ts +314 -0
- package/src/platform/policy/resourcemapping/resource_mapping_pb.js +142 -0
- package/src/platform/policy/selectors_pb.d.ts +269 -0
- package/src/platform/policy/selectors_pb.js +110 -0
- package/src/platform/policy/subjectmapping/subject_mapping_connect.d.ts +118 -0
- package/src/platform/policy/subjectmapping/subject_mapping_connect.js +118 -0
- package/src/platform/policy/subjectmapping/subject_mapping_pb.d.ts +672 -0
- package/src/platform/policy/subjectmapping/subject_mapping_pb.js +260 -0
- package/src/platform/wellknownconfiguration/wellknown_configuration_connect.d.ts +26 -0
- package/src/platform/wellknownconfiguration/wellknown_configuration_connect.js +26 -0
- package/src/platform/wellknownconfiguration/wellknown_configuration_pb.d.ts +75 -0
- package/src/platform/wellknownconfiguration/wellknown_configuration_pb.js +35 -0
- package/src/policy/api.ts +61 -0
- package/src/policy/attributes.ts +117 -0
- package/src/policy/granter.ts +181 -0
- package/src/tdf/AttributeObject.ts +27 -0
- package/src/tdf/AttributeObjectJwt.ts +3 -0
- package/src/tdf/Crypto.ts +42 -0
- package/src/tdf/EntityObject.ts +18 -0
- package/src/tdf/NanoTDF/NanoTDF.ts +120 -0
- package/src/tdf/Policy.ts +51 -0
- package/src/tdf/PolicyObject.ts +12 -0
- package/src/tdf/TypedArray.ts +12 -0
- package/src/tdf/index.ts +6 -0
- package/src/types/index.ts +55 -0
- package/src/utils.ts +149 -0
- package/src/version.ts +9 -0
- package/tdf3/index.ts +91 -0
- package/tdf3/package-lock.json +6 -0
- package/tdf3/package.json +3 -0
- package/tdf3/src/assertions.ts +191 -0
- package/tdf3/src/binary.ts +195 -0
- package/tdf3/src/ciphers/aes-gcm-cipher.ts +76 -0
- package/tdf3/src/ciphers/algorithms.ts +9 -0
- package/tdf3/src/ciphers/index.ts +2 -0
- package/tdf3/src/ciphers/symmetric-cipher-base.ts +38 -0
- package/tdf3/src/client/DecoratedReadableStream.ts +148 -0
- package/tdf3/src/client/builders.ts +701 -0
- package/tdf3/src/client/index.ts +637 -0
- package/tdf3/src/client/validation.ts +79 -0
- package/tdf3/src/crypto/crypto-utils.ts +119 -0
- package/tdf3/src/crypto/declarations.ts +89 -0
- package/tdf3/src/crypto/index.ts +394 -0
- package/tdf3/src/index.ts +4 -0
- package/tdf3/src/models/attribute-set.ts +142 -0
- package/tdf3/src/models/encryption-information.ts +172 -0
- package/tdf3/src/models/index.ts +8 -0
- package/tdf3/src/models/key-access.ts +128 -0
- package/tdf3/src/models/manifest.ts +9 -0
- package/tdf3/src/models/payload.ts +6 -0
- package/tdf3/src/models/policy.ts +35 -0
- package/tdf3/src/models/upsert-response.ts +17 -0
- package/tdf3/src/tdf.ts +1351 -0
- package/tdf3/src/templates/default.html.ts +105 -0
- package/tdf3/src/templates/escaper.ts +10 -0
- package/tdf3/src/templates/index.ts +2 -0
- package/tdf3/src/utils/buffer-crc32.ts +46 -0
- package/tdf3/src/utils/chunkers.ts +118 -0
- package/tdf3/src/utils/index.ts +309 -0
- package/tdf3/src/utils/keysplit.ts +63 -0
- package/tdf3/src/utils/zip-reader.ts +341 -0
- package/tdf3/src/utils/zip-writer.ts +375 -0
- package/tdf3/src/version.ts +2 -0
- package/tdf3/types.d.ts +14 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* The Signature ECC Mode is used to determine the length of the signature at the end of a nanotdf. This, in
|
|
5
|
+
* combination with the previous HAS_SIGNATURE section, describe the signature of the nanotdf. The following table
|
|
6
|
+
* describes the valid values and the associated ECC Params.
|
|
7
|
+
*/
|
|
8
|
+
var CurveNameEnum;
|
|
9
|
+
(function (CurveNameEnum) {
|
|
10
|
+
CurveNameEnum[CurveNameEnum["SECP256R1"] = 0] = "SECP256R1";
|
|
11
|
+
CurveNameEnum[CurveNameEnum["SECP384R1"] = 1] = "SECP384R1";
|
|
12
|
+
CurveNameEnum[CurveNameEnum["SECP521R1"] = 2] = "SECP521R1";
|
|
13
|
+
})(CurveNameEnum || (CurveNameEnum = {}));
|
|
14
|
+
exports.default = CurveNameEnum;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VydmVOYW1lRW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uYW5vdGRmL2VudW0vQ3VydmVOYW1lRW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7O0dBSUc7QUFDSCxJQUFLLGFBSUo7QUFKRCxXQUFLLGFBQWE7SUFDaEIsMkRBQVMsQ0FBQTtJQUNULDJEQUFTLENBQUE7SUFDVCwyREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQUpJLGFBQWEsS0FBYixhQUFhLFFBSWpCO0FBRUQsa0JBQWUsYUFBYSxDQUFDIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var EncodingEnum;
|
|
4
|
+
(function (EncodingEnum) {
|
|
5
|
+
EncodingEnum["Base64"] = "base64";
|
|
6
|
+
})(EncodingEnum || (EncodingEnum = {}));
|
|
7
|
+
exports.default = EncodingEnum;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5jb2RpbmdFbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25hbm90ZGYvZW51bS9FbmNvZGluZ0VudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFLLFlBRUo7QUFGRCxXQUFLLFlBQVk7SUFDZixpQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBRkksWUFBWSxLQUFaLFlBQVksUUFFaEI7QUFFRCxrQkFBZSxZQUFZLENBQUMifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var PolicyType;
|
|
4
|
+
(function (PolicyType) {
|
|
5
|
+
PolicyType[PolicyType["Remote"] = 0] = "Remote";
|
|
6
|
+
PolicyType[PolicyType["EmbeddedText"] = 1] = "EmbeddedText";
|
|
7
|
+
PolicyType[PolicyType["EmbeddedEncrypted"] = 2] = "EmbeddedEncrypted";
|
|
8
|
+
PolicyType[PolicyType["EmbeddedEncryptedPKA"] = 3] = "EmbeddedEncryptedPKA";
|
|
9
|
+
})(PolicyType || (PolicyType = {}));
|
|
10
|
+
exports.default = PolicyType;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9saWN5VHlwZUVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmFub3RkZi9lbnVtL1BvbGljeVR5cGVFbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBSyxVQUtKO0FBTEQsV0FBSyxVQUFVO0lBQ2IsK0NBQU0sQ0FBQTtJQUNOLDJEQUFZLENBQUE7SUFDWixxRUFBaUIsQ0FBQTtJQUNqQiwyRUFBb0IsQ0FBQTtBQUN0QixDQUFDLEVBTEksVUFBVSxLQUFWLFVBQVUsUUFLZDtBQUVELGtCQUFlLFVBQVUsQ0FBQyJ9
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var ProtocolEnum;
|
|
4
|
+
(function (ProtocolEnum) {
|
|
5
|
+
ProtocolEnum[ProtocolEnum["Http"] = 0] = "Http";
|
|
6
|
+
ProtocolEnum[ProtocolEnum["Https"] = 1] = "Https";
|
|
7
|
+
ProtocolEnum[ProtocolEnum["SharedResourceDirectory"] = 15] = "SharedResourceDirectory";
|
|
8
|
+
})(ProtocolEnum || (ProtocolEnum = {}));
|
|
9
|
+
exports.default = ProtocolEnum;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdG9jb2xFbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25hbm90ZGYvZW51bS9Qcm90b2NvbEVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFLLFlBSUo7QUFKRCxXQUFLLFlBQVk7SUFDZiwrQ0FBUSxDQUFBO0lBQ1IsaURBQVMsQ0FBQTtJQUNULHNGQUE2QixDQUFBO0FBQy9CLENBQUMsRUFKSSxZQUFZLEtBQVosWUFBWSxRQUloQjtBQUVELGtCQUFlLFlBQVksQ0FBQyJ9
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var ResourceLocatorIdentifierEnum;
|
|
4
|
+
(function (ResourceLocatorIdentifierEnum) {
|
|
5
|
+
ResourceLocatorIdentifierEnum[ResourceLocatorIdentifierEnum["None"] = 0] = "None";
|
|
6
|
+
ResourceLocatorIdentifierEnum[ResourceLocatorIdentifierEnum["TwoBytes"] = 2] = "TwoBytes";
|
|
7
|
+
ResourceLocatorIdentifierEnum[ResourceLocatorIdentifierEnum["EightBytes"] = 8] = "EightBytes";
|
|
8
|
+
ResourceLocatorIdentifierEnum[ResourceLocatorIdentifierEnum["ThirtyTwoBytes"] = 32] = "ThirtyTwoBytes";
|
|
9
|
+
})(ResourceLocatorIdentifierEnum || (ResourceLocatorIdentifierEnum = {}));
|
|
10
|
+
exports.default = ResourceLocatorIdentifierEnum;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VMb2NhdG9ySWRlbnRpZmllckVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmFub3RkZi9lbnVtL1Jlc291cmNlTG9jYXRvcklkZW50aWZpZXJFbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBSyw2QkFLSjtBQUxELFdBQUssNkJBQTZCO0lBQ2hDLGlGQUFRLENBQUE7SUFDUix5RkFBWSxDQUFBO0lBQ1osNkZBQWMsQ0FBQTtJQUNkLHNHQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMSSw2QkFBNkIsS0FBN0IsNkJBQTZCLFFBS2pDO0FBRUQsa0JBQWUsNkJBQTZCLENBQUMifQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lengthOfSignature = exports.lengthOfPublicKey = void 0;
|
|
4
|
+
const EcCurves_js_1 = require("../models/EcCurves.js");
|
|
5
|
+
/**
|
|
6
|
+
* Length of public key
|
|
7
|
+
*
|
|
8
|
+
* @param curveName CurveNameEnum
|
|
9
|
+
* @returns number length of the public key
|
|
10
|
+
*/
|
|
11
|
+
function lengthOfPublicKey(curveName) {
|
|
12
|
+
return Math.ceil((0, EcCurves_js_1.getCurveLength)(curveName) / 8);
|
|
13
|
+
}
|
|
14
|
+
exports.lengthOfPublicKey = lengthOfPublicKey;
|
|
15
|
+
/**
|
|
16
|
+
* Length of signature
|
|
17
|
+
*
|
|
18
|
+
* ECDSA signatures are 2 times longer than the signer's private key for the curve used during the signing process.
|
|
19
|
+
* For example, for 256-bit elliptic curves (like secp256k1 ) the ECDSA signature is 512 bits (64 bytes) and for 521-bit
|
|
20
|
+
* curves (like secp521r1 ) the signature is 1042 bits.
|
|
21
|
+
*
|
|
22
|
+
* @param curveName CurveNameEnum
|
|
23
|
+
* @returns number length of the signature
|
|
24
|
+
*/
|
|
25
|
+
function lengthOfSignature(curveName) {
|
|
26
|
+
return Math.ceil(((0, EcCurves_js_1.getCurveLength)(curveName) * 2) / 8);
|
|
27
|
+
}
|
|
28
|
+
exports.lengthOfSignature = lengthOfSignature;
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlQnlDdXJ2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uYW5vdGRmL2hlbHBlcnMvY2FsY3VsYXRlQnlDdXJ2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1REFBdUQ7QUFFdkQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxTQUF3QjtJQUN4RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSw0QkFBYyxFQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFGRCw4Q0FFQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLFNBQXdCO0lBQ3hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUEsNEJBQWMsRUFBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRkQsOENBRUMifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_js_1 = require("../../nanotdf-crypto/index.js");
|
|
4
|
+
async function getHkdfSalt(buffer) {
|
|
5
|
+
return {
|
|
6
|
+
hkdfSalt: await (0, index_js_1.digest)(index_js_1.enums.HashType.Sha256, buffer),
|
|
7
|
+
hkdfHash: index_js_1.enums.HashType.Sha256,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
exports.default = getHkdfSalt;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0SGtkZlNhbHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmFub3RkZi9oZWxwZXJzL2dldEhrZGZTYWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsNERBQThEO0FBTy9DLEtBQUssVUFBVSxXQUFXLENBQUMsTUFBZ0M7SUFDeEUsT0FBTztRQUNMLFFBQVEsRUFBRSxNQUFNLElBQUEsaUJBQU0sRUFBQyxnQkFBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1FBQ3JELFFBQVEsRUFBRSxnQkFBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBTEQsOEJBS0MifQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
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.DefaultParams = exports.getHkdfSalt = exports.encryptDataset = exports.encrypt = exports.decrypt = exports.NanoTDF = exports.Header = exports.Client = void 0;
|
|
7
|
+
// Don't export named values or the enduser will
|
|
8
|
+
// have to call `const NanoTDF = require('nanotdf').default`
|
|
9
|
+
var Client_js_1 = require("./Client.js");
|
|
10
|
+
Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return __importDefault(Client_js_1).default; } });
|
|
11
|
+
var Header_js_1 = require("./models/Header.js");
|
|
12
|
+
Object.defineProperty(exports, "Header", { enumerable: true, get: function () { return __importDefault(Header_js_1).default; } });
|
|
13
|
+
var NanoTDF_js_1 = require("./NanoTDF.js");
|
|
14
|
+
Object.defineProperty(exports, "NanoTDF", { enumerable: true, get: function () { return __importDefault(NanoTDF_js_1).default; } });
|
|
15
|
+
var decrypt_js_1 = require("./decrypt.js");
|
|
16
|
+
Object.defineProperty(exports, "decrypt", { enumerable: true, get: function () { return __importDefault(decrypt_js_1).default; } });
|
|
17
|
+
var encrypt_js_1 = require("./encrypt.js");
|
|
18
|
+
Object.defineProperty(exports, "encrypt", { enumerable: true, get: function () { return __importDefault(encrypt_js_1).default; } });
|
|
19
|
+
var encrypt_dataset_js_1 = require("./encrypt-dataset.js");
|
|
20
|
+
Object.defineProperty(exports, "encryptDataset", { enumerable: true, get: function () { return __importDefault(encrypt_dataset_js_1).default; } });
|
|
21
|
+
var getHkdfSalt_js_1 = require("./helpers/getHkdfSalt.js");
|
|
22
|
+
Object.defineProperty(exports, "getHkdfSalt", { enumerable: true, get: function () { return __importDefault(getHkdfSalt_js_1).default; } });
|
|
23
|
+
var DefaultParams_js_1 = require("./models/DefaultParams.js");
|
|
24
|
+
Object.defineProperty(exports, "DefaultParams", { enumerable: true, get: function () { return __importDefault(DefaultParams_js_1).default; } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmFub3RkZi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnREFBZ0Q7QUFDaEQsNERBQTREO0FBQzVELHlDQUFnRDtBQUF2QyxvSEFBQSxPQUFPLE9BQVU7QUFDMUIsZ0RBQXVEO0FBQTlDLG9IQUFBLE9BQU8sT0FBVTtBQUMxQiwyQ0FBa0Q7QUFBekMsc0hBQUEsT0FBTyxPQUFXO0FBQzNCLDJDQUFrRDtBQUF6QyxzSEFBQSxPQUFPLE9BQVc7QUFDM0IsMkNBQWtEO0FBQXpDLHNIQUFBLE9BQU8sT0FBVztBQUMzQiwyREFBaUU7QUFBeEQscUlBQUEsT0FBTyxPQUFrQjtBQUNsQywyREFBa0U7QUFBekQsOEhBQUEsT0FBTyxPQUFlO0FBQy9CLDhEQUFxRTtBQUE1RCxrSUFBQSxPQUFPLE9BQWlCIn0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9saWN5SW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25hbm90ZGYvaW50ZXJmYWNlcy9Qb2xpY3lJbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -0,0 +1,61 @@
|
|
|
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.getBitLength = exports.Aes256Gcm128 = exports.Aes256Gcm120 = exports.Aes256Gcm112 = exports.Aes256Gcm104 = exports.Aes256Gcm96 = exports.Aes256Gcm64 = void 0;
|
|
7
|
+
const CipherEnum_js_1 = __importDefault(require("../enum/CipherEnum.js"));
|
|
8
|
+
const errors_js_1 = require("../../errors.js");
|
|
9
|
+
exports.Aes256Gcm64 = {
|
|
10
|
+
name: CipherEnum_js_1.default.AES_256_GCM_64,
|
|
11
|
+
length: 64,
|
|
12
|
+
};
|
|
13
|
+
exports.Aes256Gcm96 = {
|
|
14
|
+
name: CipherEnum_js_1.default.AES_256_GCM_96,
|
|
15
|
+
length: 96,
|
|
16
|
+
};
|
|
17
|
+
exports.Aes256Gcm104 = {
|
|
18
|
+
name: CipherEnum_js_1.default.AES_256_GCM_104,
|
|
19
|
+
length: 104,
|
|
20
|
+
};
|
|
21
|
+
exports.Aes256Gcm112 = {
|
|
22
|
+
name: CipherEnum_js_1.default.AES_256_GCM_112,
|
|
23
|
+
length: 112,
|
|
24
|
+
};
|
|
25
|
+
exports.Aes256Gcm120 = {
|
|
26
|
+
name: CipherEnum_js_1.default.AES_256_GCM_120,
|
|
27
|
+
length: 120,
|
|
28
|
+
};
|
|
29
|
+
exports.Aes256Gcm128 = {
|
|
30
|
+
name: CipherEnum_js_1.default.AES_256_GCM_128,
|
|
31
|
+
length: 128,
|
|
32
|
+
};
|
|
33
|
+
function getBitLength(cipher) {
|
|
34
|
+
switch (cipher) {
|
|
35
|
+
case CipherEnum_js_1.default.AES_256_GCM_64:
|
|
36
|
+
return exports.Aes256Gcm64.length;
|
|
37
|
+
case CipherEnum_js_1.default.AES_256_GCM_96:
|
|
38
|
+
return exports.Aes256Gcm96.length;
|
|
39
|
+
case CipherEnum_js_1.default.AES_256_GCM_104:
|
|
40
|
+
return exports.Aes256Gcm104.length;
|
|
41
|
+
case CipherEnum_js_1.default.AES_256_GCM_112:
|
|
42
|
+
return exports.Aes256Gcm112.length;
|
|
43
|
+
case CipherEnum_js_1.default.AES_256_GCM_120:
|
|
44
|
+
return exports.Aes256Gcm120.length;
|
|
45
|
+
case CipherEnum_js_1.default.AES_256_GCM_128:
|
|
46
|
+
return exports.Aes256Gcm128.length;
|
|
47
|
+
default:
|
|
48
|
+
throw new errors_js_1.UnsupportedFeatureError(`unsupported cipher enum value: [${cipher}]`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.getBitLength = getBitLength;
|
|
52
|
+
// export default {
|
|
53
|
+
// Aes256Gcm64,
|
|
54
|
+
// Aes256Gcm96,
|
|
55
|
+
// Aes256Gcm104,
|
|
56
|
+
// Aes256Gcm112,
|
|
57
|
+
// Aes256Gcm120,
|
|
58
|
+
// Aes256Gcm128,
|
|
59
|
+
// getBitLength,
|
|
60
|
+
// };
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2lwaGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uYW5vdGRmL21vZGVscy9DaXBoZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBFQUErQztBQUMvQywrQ0FBMEQ7QUFPN0MsUUFBQSxXQUFXLEdBQW9CO0lBQzFDLElBQUksRUFBRSx1QkFBVSxDQUFDLGNBQWM7SUFDL0IsTUFBTSxFQUFFLEVBQUU7Q0FDWCxDQUFDO0FBRVcsUUFBQSxXQUFXLEdBQW9CO0lBQzFDLElBQUksRUFBRSx1QkFBVSxDQUFDLGNBQWM7SUFDL0IsTUFBTSxFQUFFLEVBQUU7Q0FDWCxDQUFDO0FBRVcsUUFBQSxZQUFZLEdBQW9CO0lBQzNDLElBQUksRUFBRSx1QkFBVSxDQUFDLGVBQWU7SUFDaEMsTUFBTSxFQUFFLEdBQUc7Q0FDWixDQUFDO0FBRVcsUUFBQSxZQUFZLEdBQW9CO0lBQzNDLElBQUksRUFBRSx1QkFBVSxDQUFDLGVBQWU7SUFDaEMsTUFBTSxFQUFFLEdBQUc7Q0FDWixDQUFDO0FBRVcsUUFBQSxZQUFZLEdBQW9CO0lBQzNDLElBQUksRUFBRSx1QkFBVSxDQUFDLGVBQWU7SUFDaEMsTUFBTSxFQUFFLEdBQUc7Q0FDWixDQUFDO0FBRVcsUUFBQSxZQUFZLEdBQW9CO0lBQzNDLElBQUksRUFBRSx1QkFBVSxDQUFDLGVBQWU7SUFDaEMsTUFBTSxFQUFFLEdBQUc7Q0FDWixDQUFDO0FBRUYsU0FBZ0IsWUFBWSxDQUFDLE1BQWtCO0lBQzdDLFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyx1QkFBVSxDQUFDLGNBQWM7WUFDNUIsT0FBTyxtQkFBVyxDQUFDLE1BQU0sQ0FBQztRQUM1QixLQUFLLHVCQUFVLENBQUMsY0FBYztZQUM1QixPQUFPLG1CQUFXLENBQUMsTUFBTSxDQUFDO1FBQzVCLEtBQUssdUJBQVUsQ0FBQyxlQUFlO1lBQzdCLE9BQU8sb0JBQVksQ0FBQyxNQUFNLENBQUM7UUFDN0IsS0FBSyx1QkFBVSxDQUFDLGVBQWU7WUFDN0IsT0FBTyxvQkFBWSxDQUFDLE1BQU0sQ0FBQztRQUM3QixLQUFLLHVCQUFVLENBQUMsZUFBZTtZQUM3QixPQUFPLG9CQUFZLENBQUMsTUFBTSxDQUFDO1FBQzdCLEtBQUssdUJBQVUsQ0FBQyxlQUFlO1lBQzdCLE9BQU8sb0JBQVksQ0FBQyxNQUFNLENBQUM7UUFDN0I7WUFDRSxNQUFNLElBQUksbUNBQXVCLENBQUMsbUNBQW1DLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDbkY7QUFDSCxDQUFDO0FBakJELG9DQWlCQztBQUVELG1CQUFtQjtBQUNuQixpQkFBaUI7QUFDakIsaUJBQWlCO0FBQ2pCLGtCQUFrQjtBQUNsQixrQkFBa0I7QUFDbEIsa0JBQWtCO0FBQ2xCLGtCQUFrQjtBQUVsQixrQkFBa0I7QUFDbEIsS0FBSyJ9
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
const CipherEnum_js_1 = __importDefault(require("../enum/CipherEnum.js"));
|
|
7
|
+
const CurveNameEnum_js_1 = __importDefault(require("../enum/CurveNameEnum.js"));
|
|
8
|
+
const PolicyTypeEnum_js_1 = __importDefault(require("../enum/PolicyTypeEnum.js"));
|
|
9
|
+
const enc = new TextEncoder();
|
|
10
|
+
/**
|
|
11
|
+
* Default encrypt param builders
|
|
12
|
+
*
|
|
13
|
+
* @link https://github.com/virtru/tdf3-cpp/blob/develop/tdf3-src/lib/src/nanotdf_builder_impl.h
|
|
14
|
+
*/
|
|
15
|
+
const DefaultParams = {
|
|
16
|
+
ecdsaBinding: false,
|
|
17
|
+
ephemeralCurveName: CurveNameEnum_js_1.default.SECP256R1,
|
|
18
|
+
magicNumberVersion: enc.encode('L1L'),
|
|
19
|
+
offlineMode: false,
|
|
20
|
+
policyType: PolicyTypeEnum_js_1.default.EmbeddedEncrypted,
|
|
21
|
+
signature: false,
|
|
22
|
+
signatureCurveName: CurveNameEnum_js_1.default.SECP256R1,
|
|
23
|
+
symmetricCipher: CipherEnum_js_1.default.AES_256_GCM_96,
|
|
24
|
+
defaultECAlgorithm: 'ec:secp256r1',
|
|
25
|
+
};
|
|
26
|
+
exports.default = DefaultParams;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uYW5vdGRmL21vZGVscy9EZWZhdWx0UGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMEVBQStDO0FBQy9DLGdGQUFxRDtBQUNyRCxrRkFBdUQ7QUFFdkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUU5Qjs7OztHQUlHO0FBQ0gsTUFBTSxhQUFhLEdBQUc7SUFDcEIsWUFBWSxFQUFFLEtBQUs7SUFDbkIsa0JBQWtCLEVBQUUsMEJBQWEsQ0FBQyxTQUFTO0lBQzNDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ3JDLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFVBQVUsRUFBRSwyQkFBYyxDQUFDLGlCQUFpQjtJQUM1QyxTQUFTLEVBQUUsS0FBSztJQUNoQixrQkFBa0IsRUFBRSwwQkFBYSxDQUFDLFNBQVM7SUFDM0MsZUFBZSxFQUFFLHVCQUFVLENBQUMsY0FBYztJQUMxQyxrQkFBa0IsRUFBRSxjQUFjO0NBQ25DLENBQUM7QUFFRixrQkFBZSxhQUFhLENBQUMifQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
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.getCurveLength = exports.Secp521R1 = exports.Secp384R1 = exports.Secp256R1 = void 0;
|
|
7
|
+
const CurveNameEnum_js_1 = __importDefault(require("../enum/CurveNameEnum.js"));
|
|
8
|
+
const errors_js_1 = require("../../errors.js");
|
|
9
|
+
exports.Secp256R1 = {
|
|
10
|
+
name: CurveNameEnum_js_1.default.SECP256R1,
|
|
11
|
+
length: 256,
|
|
12
|
+
};
|
|
13
|
+
exports.Secp384R1 = {
|
|
14
|
+
name: CurveNameEnum_js_1.default.SECP384R1,
|
|
15
|
+
length: 384,
|
|
16
|
+
};
|
|
17
|
+
exports.Secp521R1 = {
|
|
18
|
+
name: CurveNameEnum_js_1.default.SECP521R1,
|
|
19
|
+
length: 521,
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Get size from Curve
|
|
23
|
+
*
|
|
24
|
+
* @param curveName CurveNameEnum name of the curve
|
|
25
|
+
*/
|
|
26
|
+
function getCurveLength(curveName) {
|
|
27
|
+
switch (curveName) {
|
|
28
|
+
case exports.Secp256R1.name:
|
|
29
|
+
return exports.Secp256R1.length;
|
|
30
|
+
case exports.Secp384R1.name:
|
|
31
|
+
return exports.Secp384R1.length;
|
|
32
|
+
case exports.Secp521R1.name:
|
|
33
|
+
return exports.Secp521R1.length;
|
|
34
|
+
default:
|
|
35
|
+
throw new errors_js_1.UnsupportedFeatureError(`unsupported curve name: ${curveName}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.getCurveLength = getCurveLength;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWNDdXJ2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmFub3RkZi9tb2RlbHMvRWNDdXJ2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0ZBQXFEO0FBQ3JELCtDQUEwRDtBQU83QyxRQUFBLFNBQVMsR0FBbUI7SUFDdkMsSUFBSSxFQUFFLDBCQUFhLENBQUMsU0FBUztJQUM3QixNQUFNLEVBQUUsR0FBRztDQUNaLENBQUM7QUFFVyxRQUFBLFNBQVMsR0FBbUI7SUFDdkMsSUFBSSxFQUFFLDBCQUFhLENBQUMsU0FBUztJQUM3QixNQUFNLEVBQUUsR0FBRztDQUNaLENBQUM7QUFFVyxRQUFBLFNBQVMsR0FBbUI7SUFDdkMsSUFBSSxFQUFFLDBCQUFhLENBQUMsU0FBUztJQUM3QixNQUFNLEVBQUUsR0FBRztDQUNaLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLFNBQXdCO0lBQ3JELFFBQVEsU0FBUyxFQUFFO1FBQ2pCLEtBQUssaUJBQVMsQ0FBQyxJQUFJO1lBQ2pCLE9BQU8saUJBQVMsQ0FBQyxNQUFNLENBQUM7UUFDMUIsS0FBSyxpQkFBUyxDQUFDLElBQUk7WUFDakIsT0FBTyxpQkFBUyxDQUFDLE1BQU0sQ0FBQztRQUMxQixLQUFLLGlCQUFTLENBQUMsSUFBSTtZQUNqQixPQUFPLGlCQUFTLENBQUMsTUFBTSxDQUFDO1FBQzFCO1lBQ0UsTUFBTSxJQUFJLG1DQUF1QixDQUFDLDJCQUEyQixTQUFTLEVBQUUsQ0FBQyxDQUFDO0tBQzdFO0FBQ0gsQ0FBQztBQVhELHdDQVdDIn0=
|
|
@@ -0,0 +1,255 @@
|
|
|
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
|
+
// Models
|
|
7
|
+
const Ciphers_js_1 = require("./Ciphers.js");
|
|
8
|
+
const ResourceLocator_js_1 = __importDefault(require("./ResourceLocator.js"));
|
|
9
|
+
const PolicyFactory_js_1 = __importDefault(require("./Policy/PolicyFactory.js"));
|
|
10
|
+
// Helpers
|
|
11
|
+
const calculateByCurve_js_1 = require("../helpers/calculateByCurve.js");
|
|
12
|
+
const DefaultParams_js_1 = __importDefault(require("./DefaultParams.js"));
|
|
13
|
+
const errors_js_1 = require("../../errors.js");
|
|
14
|
+
const utils_js_1 = require("../../utils.js");
|
|
15
|
+
/**
|
|
16
|
+
* NanoTDF Header
|
|
17
|
+
*
|
|
18
|
+
* The header section is intended to be sent to a KAS and is used by the KAS to derive the decryption key that can
|
|
19
|
+
* decrypts the nanotdf's payload. The Header is structured as follows:
|
|
20
|
+
*
|
|
21
|
+
* | Section | Minimum Length (B) | Maximum Length (B) |
|
|
22
|
+
* |------------------------|--------------------|--------------------|
|
|
23
|
+
* | Magic Number + Version | 3 | 3 |
|
|
24
|
+
* | KAS (resource locator) | 3 | 257 |
|
|
25
|
+
* | ECC Mode | 1 | 1 |
|
|
26
|
+
* | Payload + Sig Mode | 1 | 1 |
|
|
27
|
+
* | Policy | 3 | 257 |
|
|
28
|
+
* | Ephemeral Key | 33 | 67 |
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
31
|
+
class Header {
|
|
32
|
+
static parse(buff) {
|
|
33
|
+
let offset = 0;
|
|
34
|
+
/**
|
|
35
|
+
* Magic number and version
|
|
36
|
+
*
|
|
37
|
+
* @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#3311-magic-number--version
|
|
38
|
+
*/
|
|
39
|
+
// Convert to ascii
|
|
40
|
+
const magicNumberVersion = buff.subarray(Header.MAGIC_NUMBER_VERSION_BYTE_OFF, Header.MAGIC_NUMBER_VERSION_BYTE_LEN);
|
|
41
|
+
offset += Header.MAGIC_NUMBER_VERSION_BYTE_LEN;
|
|
42
|
+
/**
|
|
43
|
+
* KAS Resource Locator
|
|
44
|
+
*
|
|
45
|
+
* KAS is a typeof Resource Locator
|
|
46
|
+
*
|
|
47
|
+
* @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#3312-kas
|
|
48
|
+
* @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#341-resource-locator
|
|
49
|
+
*/
|
|
50
|
+
const kas = ResourceLocator_js_1.default.parse(buff.subarray(offset));
|
|
51
|
+
offset += kas.length;
|
|
52
|
+
/**
|
|
53
|
+
* ECC & Binding Mode
|
|
54
|
+
*
|
|
55
|
+
* This section contains a 1-byte bitfield describing the ECC Params and Policy binding strategy to use.
|
|
56
|
+
* The Policy Binding strategy is either using a 64-bit GMAC (using AES-256-GCM) tag or an ECDSA signature.
|
|
57
|
+
* The signature size depends on the size of ECC Params used. The nanotdf at this time only supports methods that
|
|
58
|
+
* involve Elliptic Curve Cryptography. The fields are structured as follows:
|
|
59
|
+
*
|
|
60
|
+
* | Section | Bit Length | Bit start index |
|
|
61
|
+
* |---------------------------|------------|-----------------|
|
|
62
|
+
* | USE_ECDSA_BINDING | 1 | 7 |
|
|
63
|
+
* | UNUSED | 4 | 3 |
|
|
64
|
+
* | Ephemeral ECC Params Enum | 3 | 0 |
|
|
65
|
+
*
|
|
66
|
+
* @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#3313-ecc-and-binding-mode
|
|
67
|
+
*/
|
|
68
|
+
const eccBindingModeDV = buff.subarray(offset, offset + Header.ECC_BINDING_MODE_BYTE_LEN);
|
|
69
|
+
const useECDSABinding = eccBindingModeDV[0] >> 7 === 1; // Last bit
|
|
70
|
+
const ephemeralCurveName = eccBindingModeDV[0] & 0x7; // First 3 bits
|
|
71
|
+
offset += Header.ECC_BINDING_MODE_BYTE_LEN;
|
|
72
|
+
/**
|
|
73
|
+
* Symmetric & payload config
|
|
74
|
+
*
|
|
75
|
+
* This section contains a 1 byte data structure composed of bitfields that describe the symmetric ciphers for
|
|
76
|
+
* encrypted payloads. This cipher applies to both the Payload and the Policy of the nanotdf. The fields are as
|
|
77
|
+
* follows:
|
|
78
|
+
*
|
|
79
|
+
* | Section | Bit Length | Bit start index |
|
|
80
|
+
* |-----------------------|------------|-----------------|
|
|
81
|
+
* | HAS_SIGNATURE | 1 | 7 |
|
|
82
|
+
* | Signature ECC Mode | 3 | 4 |
|
|
83
|
+
* | Symmetric Cipher Enum | 4 | 0 |
|
|
84
|
+
*
|
|
85
|
+
* @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#3314-symmetric-and-payload-config
|
|
86
|
+
*/
|
|
87
|
+
const symmetricPayloadDV = buff.subarray(offset, offset + Header.ECC_BINDING_MODE_BYTE_LEN);
|
|
88
|
+
const hasSignature = symmetricPayloadDV[0] >> 7 === 1; // Last bit
|
|
89
|
+
const signatureCurveName = (symmetricPayloadDV[0] >> 4) & 0x7; // Middle 3 bits
|
|
90
|
+
const symmetricCipher = symmetricPayloadDV[0] & 0xf; // First 4 bits
|
|
91
|
+
offset += Header.SYMMETRIC_PAYLOAD_CONFIG_BYTE_LEN;
|
|
92
|
+
/**
|
|
93
|
+
* Policy
|
|
94
|
+
*
|
|
95
|
+
* This section contains a Policy object. The data contained in the Policy allows for definition flexible
|
|
96
|
+
* definitions of a policy including a policy by reference, or an embedded policy. Refer to the Policy object's
|
|
97
|
+
* definition in Section 3.4.2
|
|
98
|
+
*
|
|
99
|
+
* The structure of the Policy is as follows:
|
|
100
|
+
*
|
|
101
|
+
* | Section | Minimum Length (B) | Maximum Length (B) |
|
|
102
|
+
* |-----------|--------------------|--------------------|
|
|
103
|
+
* | Type Enum | 1 | 1 |
|
|
104
|
+
* | Body | 3 | 257 |
|
|
105
|
+
* | Binding | 8 | 132 |
|
|
106
|
+
*
|
|
107
|
+
* @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#3315-policy
|
|
108
|
+
* @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#342-policy
|
|
109
|
+
*/
|
|
110
|
+
const { policy, offset: nextOffset } = PolicyFactory_js_1.default.parse(buff.subarray(offset), useECDSABinding, ephemeralCurveName);
|
|
111
|
+
offset += nextOffset;
|
|
112
|
+
/**
|
|
113
|
+
* Ephemeral public key
|
|
114
|
+
*
|
|
115
|
+
* This section contains a Key object. The size of the key is determined by the Encryption Method Section.
|
|
116
|
+
*
|
|
117
|
+
* @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#3316-key
|
|
118
|
+
*/
|
|
119
|
+
// TODO: Resolve where offset isn't adding 1 byte
|
|
120
|
+
const ephemeralPublicKeyLength = (0, calculateByCurve_js_1.lengthOfPublicKey)(ephemeralCurveName) + 1;
|
|
121
|
+
const ephemeralPublicKey = buff.subarray(offset, offset + ephemeralPublicKeyLength);
|
|
122
|
+
offset += ephemeralPublicKeyLength;
|
|
123
|
+
// Check if the ephemeral public key length is not the same length
|
|
124
|
+
if (ephemeralPublicKey.byteLength !== ephemeralPublicKeyLength) {
|
|
125
|
+
throw new errors_js_1.InvalidFileError('nanotdf parse failure: public key read failure');
|
|
126
|
+
}
|
|
127
|
+
const header = new Header(magicNumberVersion, kas, useECDSABinding, ephemeralCurveName, hasSignature, signatureCurveName, symmetricCipher, policy, ephemeralPublicKey);
|
|
128
|
+
return {
|
|
129
|
+
header,
|
|
130
|
+
offset,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
//Ephemeral Public Key
|
|
134
|
+
// protected _ephemeralPublicKey: string | null = null;
|
|
135
|
+
constructor(magicNumberVersion, kas, useECDSABinding, ephemeralCurveName, hasSignature, signatureCurveName, symmetricCipher, policy, ephemeralPublicKey) {
|
|
136
|
+
// Magic Number & Version
|
|
137
|
+
this.magicNumberVersion = DefaultParams_js_1.default.magicNumberVersion;
|
|
138
|
+
// ECC & Binding Mode
|
|
139
|
+
this.useECDSABinding = DefaultParams_js_1.default.ecdsaBinding;
|
|
140
|
+
this.ephemeralCurveName = DefaultParams_js_1.default.ephemeralCurveName;
|
|
141
|
+
// Symmetric & Payload Config
|
|
142
|
+
this.hasSignature = DefaultParams_js_1.default.signature;
|
|
143
|
+
this.signatureCurveName = DefaultParams_js_1.default.signatureCurveName;
|
|
144
|
+
this.symmetricCipher = DefaultParams_js_1.default.symmetricCipher;
|
|
145
|
+
this.magicNumberVersion = magicNumberVersion;
|
|
146
|
+
this.kas = kas;
|
|
147
|
+
this.useECDSABinding = useECDSABinding;
|
|
148
|
+
this.ephemeralCurveName = ephemeralCurveName;
|
|
149
|
+
this.hasSignature = hasSignature;
|
|
150
|
+
this.signatureCurveName = signatureCurveName;
|
|
151
|
+
this.symmetricCipher = symmetricCipher;
|
|
152
|
+
this.policy = policy;
|
|
153
|
+
this.ephemeralPublicKey = ephemeralPublicKey;
|
|
154
|
+
// Auth tag length in bits (i.e. AES GCM 64 bit)
|
|
155
|
+
this.authTagLength = (0, Ciphers_js_1.getBitLength)(this.symmetricCipher);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Copy the contents of the header to buffer
|
|
159
|
+
*/
|
|
160
|
+
copyToBuffer(target) {
|
|
161
|
+
if (this.length > target.length) {
|
|
162
|
+
throw new errors_js_1.InvalidFileError('invalid buffer size to copy tdf header');
|
|
163
|
+
}
|
|
164
|
+
let offset = 0;
|
|
165
|
+
// Write Magic number and version
|
|
166
|
+
target.set(this.magicNumberVersion, 0);
|
|
167
|
+
offset += this.magicNumberVersion.length;
|
|
168
|
+
// Write kas resource locator
|
|
169
|
+
const kasResourceLocatorBuf = this.kas.toBuffer();
|
|
170
|
+
target.set(kasResourceLocatorBuf, offset);
|
|
171
|
+
offset += kasResourceLocatorBuf.length;
|
|
172
|
+
// Write ECC & Binding Mode
|
|
173
|
+
const ecdsaBinding = this.useECDSABinding ? 1 : 0;
|
|
174
|
+
const eccBingingMode = (ecdsaBinding << 7) | this.ephemeralCurveName;
|
|
175
|
+
const eccBingingModeAsByte = new Uint8Array(1);
|
|
176
|
+
eccBingingModeAsByte[0] = eccBingingMode;
|
|
177
|
+
target.set(eccBingingModeAsByte, offset);
|
|
178
|
+
offset += eccBingingModeAsByte.length;
|
|
179
|
+
// Write symmetric & payload config
|
|
180
|
+
const isSignatureEnable = this.hasSignature ? 1 : 0;
|
|
181
|
+
const symmetricPayloadConfig = (isSignatureEnable << 7) | this.signatureCurveName | this.symmetricCipher;
|
|
182
|
+
const symmetricPayloadConfigAsByte = new Uint8Array(1);
|
|
183
|
+
symmetricPayloadConfigAsByte[0] = symmetricPayloadConfig;
|
|
184
|
+
target.set(symmetricPayloadConfigAsByte, offset);
|
|
185
|
+
offset += symmetricPayloadConfigAsByte.length;
|
|
186
|
+
// Write the policy
|
|
187
|
+
const policyBuffer = this.policy.toBuffer();
|
|
188
|
+
target.set(policyBuffer, offset);
|
|
189
|
+
offset += policyBuffer.length;
|
|
190
|
+
// Write the ephemeral public key
|
|
191
|
+
target.set(this.ephemeralPublicKey, offset);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Length
|
|
195
|
+
*
|
|
196
|
+
* @returns { number } Length of header
|
|
197
|
+
*/
|
|
198
|
+
get length() {
|
|
199
|
+
return (
|
|
200
|
+
// Length of the magic number and version
|
|
201
|
+
this.magicNumberVersion.length +
|
|
202
|
+
// Length of the KAS resource locator
|
|
203
|
+
this.kas.length +
|
|
204
|
+
// ECC & Binding Mode - 1 Bytes
|
|
205
|
+
1 +
|
|
206
|
+
// symmetric & payload config - 1 Bytes
|
|
207
|
+
1 +
|
|
208
|
+
// Length of the policy
|
|
209
|
+
this.policy.getLength() +
|
|
210
|
+
// Length of the ephemeral public key
|
|
211
|
+
this.ephemeralPublicKey.length);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Return nanoTDF header as buffer
|
|
215
|
+
*
|
|
216
|
+
* Warning: This method will allocate memory of length of the header, use
|
|
217
|
+
* copyToBuffer() when copy is not needed.
|
|
218
|
+
*/
|
|
219
|
+
toBuffer() {
|
|
220
|
+
const arrayBuffer = new ArrayBuffer(this.length);
|
|
221
|
+
const target = new Uint8Array(arrayBuffer);
|
|
222
|
+
this.copyToBuffer(target);
|
|
223
|
+
return arrayBuffer;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Get KAS Rewrap URL
|
|
227
|
+
*/
|
|
228
|
+
getKasRewrapUrl() {
|
|
229
|
+
try {
|
|
230
|
+
return `${(0, utils_js_1.rstrip)(this.kas.url, '/')}/v2/rewrap`;
|
|
231
|
+
}
|
|
232
|
+
catch (e) {
|
|
233
|
+
throw new errors_js_1.ConfigurationError(`cannot construct KAS Rewrap URL: ${e.message}`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// Magic Number & Version
|
|
238
|
+
Header.MAGIC_NUMBER_VERSION_BYTE_OFF = 0;
|
|
239
|
+
Header.MAGIC_NUMBER_VERSION_BYTE_LEN = 3;
|
|
240
|
+
Header.MAGIC_NUMBER_OFFSET = 0;
|
|
241
|
+
Header.MAGIC_NUMBER_LENGTH = 18;
|
|
242
|
+
// ECC & Binding Mode
|
|
243
|
+
Header.ECC_BINDING_MODE_BYTE_LEN = 1;
|
|
244
|
+
Header.USE_ECDSA_BINDING_BIT_OFF = 0;
|
|
245
|
+
Header.EPHEMERAL_ECC_CURVE_NAME_BIT_OFF = -3;
|
|
246
|
+
// Symmetric & Payload Config
|
|
247
|
+
Header.SYMMETRIC_PAYLOAD_CONFIG_BYTE_LEN = 1;
|
|
248
|
+
Header.HAS_SIGNATURE_BIT_OFF = 1;
|
|
249
|
+
Header.HAS_SIGNATURE_BIT_LEN = 1;
|
|
250
|
+
Header.SIGNATURE_ECC_CURVE_NAME_BIT_OFF = 1;
|
|
251
|
+
Header.SIGNATURE_ECC_CURVE_NAME_BIT_LEN = 3;
|
|
252
|
+
Header.SYMMETRIC_CIPHER_BIT_OFF = 4;
|
|
253
|
+
Header.SYMMETRIC_CIPHER_BIT_LEN = 4;
|
|
254
|
+
exports.default = Header;
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25hbm90ZGYvbW9kZWxzL0hlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLFNBQVM7QUFDVCw2Q0FBNEM7QUFDNUMsOEVBQW1EO0FBQ25ELGlGQUFzRDtBQU10RCxVQUFVO0FBQ1Ysd0VBQW1FO0FBQ25FLDBFQUErQztBQUMvQywrQ0FBdUU7QUFDdkUsNkNBQXdDO0FBRXhDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQXFCLE1BQU07SUE0Q3pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBZ0I7UUFDM0IsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRWY7Ozs7V0FJRztRQUNILG1CQUFtQjtRQUNuQixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQ3RDLE1BQU0sQ0FBQyw2QkFBNkIsRUFDcEMsTUFBTSxDQUFDLDZCQUE2QixDQUNyQyxDQUFDO1FBQ0YsTUFBTSxJQUFJLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQztRQUUvQzs7Ozs7OztXQU9HO1FBQ0gsTUFBTSxHQUFHLEdBQUcsNEJBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDO1FBRXJCOzs7Ozs7Ozs7Ozs7Ozs7V0FlRztRQUNILE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzFGLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXO1FBQ25FLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsZUFB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
|