@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,14 @@
|
|
|
1
|
+
import { TypedArray } from '../tdf/index.js';
|
|
2
|
+
import { KasPublicKeyInfo } from '../access.js';
|
|
3
|
+
/**
|
|
4
|
+
* Encrypt the plain data into nanotdf buffer
|
|
5
|
+
*
|
|
6
|
+
* @param policy Policy that will added to the nanotdf
|
|
7
|
+
* @param kasInfo KAS url and public key data
|
|
8
|
+
* @param ephemeralKeyPair SDK ephemeral key pair to generate symmetric key
|
|
9
|
+
* @param iv
|
|
10
|
+
* @param data The data to be encrypted
|
|
11
|
+
* @param ecdsaBinding Flag to enable ECDSA binding
|
|
12
|
+
*/
|
|
13
|
+
export default function encrypt(policy: string, kasInfo: KasPublicKeyInfo, ephemeralKeyPair: CryptoKeyPair, iv: Uint8Array, data: string | TypedArray | ArrayBuffer, ecdsaBinding?: boolean): Promise<ArrayBuffer>;
|
|
14
|
+
//# sourceMappingURL=encrypt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encrypt.d.ts","sourceRoot":"","sources":["../../../../src/nanotdf/encrypt.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAU7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD;;;;;;;;;GASG;AACH,wBAA8B,OAAO,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,EAAE,aAAa,EAC/B,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,EACvC,YAAY,GAAE,OAAoC,GACjD,OAAO,CAAC,WAAW,CAAC,CAsGtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CipherEnum.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/enum/CipherEnum.ts"],"names":[],"mappings":"AAAA,aAAK,UAAU;IACb,cAAc,IAAA;IACd,cAAc,IAAA;IACd,eAAe,IAAA;IACf,eAAe,IAAA;IACf,eAAe,IAAA;IACf,eAAe,IAAA;CAChB;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Signature ECC Mode is used to determine the length of the signature at the end of a nanotdf. This, in
|
|
3
|
+
* combination with the previous HAS_SIGNATURE section, describe the signature of the nanotdf. The following table
|
|
4
|
+
* describes the valid values and the associated ECC Params.
|
|
5
|
+
*/
|
|
6
|
+
declare enum CurveNameEnum {
|
|
7
|
+
SECP256R1 = 0,
|
|
8
|
+
SECP384R1 = 1,
|
|
9
|
+
SECP521R1 = 2
|
|
10
|
+
}
|
|
11
|
+
export default CurveNameEnum;
|
|
12
|
+
//# sourceMappingURL=CurveNameEnum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CurveNameEnum.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/enum/CurveNameEnum.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,aAAK,aAAa;IAChB,SAAS,IAAA;IACT,SAAS,IAAA;IACT,SAAS,IAAA;CACV;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EncodingEnum.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/enum/EncodingEnum.ts"],"names":[],"mappings":"AAAA,aAAK,YAAY;IACf,MAAM,WAAW;CAClB;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PolicyTypeEnum.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/enum/PolicyTypeEnum.ts"],"names":[],"mappings":"AAAA,aAAK,UAAU;IACb,MAAM,IAAA;IACN,YAAY,IAAA;IACZ,iBAAiB,IAAA;IACjB,oBAAoB,IAAA;CACrB;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProtocolEnum.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/enum/ProtocolEnum.ts"],"names":[],"mappings":"AAAA,aAAK,YAAY;IACf,IAAI,IAAI;IACR,KAAK,IAAI;IACT,uBAAuB,KAAM;CAC9B;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceLocatorIdentifierEnum.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/enum/ResourceLocatorIdentifierEnum.ts"],"names":[],"mappings":"AAAA,aAAK,6BAA6B;IAChC,IAAI,IAAI;IACR,QAAQ,IAAI;IACZ,UAAU,IAAI;IACd,cAAc,KAAK;CACpB;AAED,eAAe,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import CurveNameEnum from '../enum/CurveNameEnum.js';
|
|
2
|
+
/**
|
|
3
|
+
* Length of public key
|
|
4
|
+
*
|
|
5
|
+
* @param curveName CurveNameEnum
|
|
6
|
+
* @returns number length of the public key
|
|
7
|
+
*/
|
|
8
|
+
export declare function lengthOfPublicKey(curveName: CurveNameEnum): number | never;
|
|
9
|
+
/**
|
|
10
|
+
* Length of signature
|
|
11
|
+
*
|
|
12
|
+
* ECDSA signatures are 2 times longer than the signer's private key for the curve used during the signing process.
|
|
13
|
+
* For example, for 256-bit elliptic curves (like secp256k1 ) the ECDSA signature is 512 bits (64 bytes) and for 521-bit
|
|
14
|
+
* curves (like secp521r1 ) the signature is 1042 bits.
|
|
15
|
+
*
|
|
16
|
+
* @param curveName CurveNameEnum
|
|
17
|
+
* @returns number length of the signature
|
|
18
|
+
*/
|
|
19
|
+
export declare function lengthOfSignature(curveName: CurveNameEnum): number | never;
|
|
20
|
+
//# sourceMappingURL=calculateByCurve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateByCurve.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/helpers/calculateByCurve.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,0BAA0B,CAAC;AAGrD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,GAAG,KAAK,CAE1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,GAAG,KAAK,CAE1E"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TypedArray } from '../../tdf/index.js';
|
|
2
|
+
import { enums } from '../../nanotdf-crypto/index.js';
|
|
3
|
+
interface HkdfSalt {
|
|
4
|
+
hkdfSalt: ArrayBuffer;
|
|
5
|
+
hkdfHash: enums.HashType;
|
|
6
|
+
}
|
|
7
|
+
export default function getHkdfSalt(buffer: TypedArray | ArrayBuffer): Promise<HkdfSalt>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=getHkdfSalt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getHkdfSalt.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/helpers/getHkdfSalt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAU,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE9D,UAAU,QAAQ;IAChB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;CAC1B;AAED,wBAA8B,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAK7F"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { default as Client } from './Client.js';
|
|
2
|
+
export { default as Header } from './models/Header.js';
|
|
3
|
+
export { default as NanoTDF } from './NanoTDF.js';
|
|
4
|
+
export { default as decrypt } from './decrypt.js';
|
|
5
|
+
export { default as encrypt } from './encrypt.js';
|
|
6
|
+
export { default as encryptDataset } from './encrypt-dataset.js';
|
|
7
|
+
export { default as getHkdfSalt } from './helpers/getHkdfSalt.js';
|
|
8
|
+
export { default as DefaultParams } from './models/DefaultParams.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/nanotdf/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import PolicyTypeEnum from '../enum/PolicyTypeEnum.js';
|
|
2
|
+
import ResourceLocator from '../models/ResourceLocator.js';
|
|
3
|
+
export default interface PolicyInterface {
|
|
4
|
+
type: PolicyTypeEnum;
|
|
5
|
+
binding: Uint8Array;
|
|
6
|
+
remotePolicy?: ResourceLocator;
|
|
7
|
+
content?: Uint8Array;
|
|
8
|
+
toBuffer(): Uint8Array | never;
|
|
9
|
+
getLength(): number;
|
|
10
|
+
}
|
|
11
|
+
export interface RemotePolicyInterface extends PolicyInterface {
|
|
12
|
+
remotePoilcy?: ResourceLocator;
|
|
13
|
+
}
|
|
14
|
+
export interface EmbeddedPolicyInterface extends PolicyInterface {
|
|
15
|
+
content: Uint8Array;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=PolicyInterface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PolicyInterface.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/interfaces/PolicyInterface.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAE3D,MAAM,CAAC,OAAO,WAAW,eAAe;IACtC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;IAGpB,YAAY,CAAC,EAAE,eAAe,CAAC;IAG/B,OAAO,CAAC,EAAE,UAAU,CAAC;IAGrB,QAAQ,IAAI,UAAU,GAAG,KAAK,CAAC;IAG/B,SAAS,IAAI,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,OAAO,EAAE,UAAU,CAAC;CACrB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import CipherEnum from '../enum/CipherEnum.js';
|
|
2
|
+
interface CipherInterface {
|
|
3
|
+
name: CipherEnum;
|
|
4
|
+
length: number;
|
|
5
|
+
}
|
|
6
|
+
export declare const Aes256Gcm64: CipherInterface;
|
|
7
|
+
export declare const Aes256Gcm96: CipherInterface;
|
|
8
|
+
export declare const Aes256Gcm104: CipherInterface;
|
|
9
|
+
export declare const Aes256Gcm112: CipherInterface;
|
|
10
|
+
export declare const Aes256Gcm120: CipherInterface;
|
|
11
|
+
export declare const Aes256Gcm128: CipherInterface;
|
|
12
|
+
export declare function getBitLength(cipher: CipherEnum): number;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=Ciphers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Ciphers.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/models/Ciphers.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAG/C,UAAU,eAAe;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,WAAW,EAAE,eAGzB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAGzB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,eAG1B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,eAG1B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,eAG1B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,eAG1B,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAiBvD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import CipherEnum from '../enum/CipherEnum.js';
|
|
2
|
+
import CurveNameEnum from '../enum/CurveNameEnum.js';
|
|
3
|
+
import PolicyTypeEnum from '../enum/PolicyTypeEnum.js';
|
|
4
|
+
/**
|
|
5
|
+
* Default encrypt param builders
|
|
6
|
+
*
|
|
7
|
+
* @link https://github.com/virtru/tdf3-cpp/blob/develop/tdf3-src/lib/src/nanotdf_builder_impl.h
|
|
8
|
+
*/
|
|
9
|
+
declare const DefaultParams: {
|
|
10
|
+
ecdsaBinding: boolean;
|
|
11
|
+
ephemeralCurveName: CurveNameEnum;
|
|
12
|
+
magicNumberVersion: Uint8Array;
|
|
13
|
+
offlineMode: boolean;
|
|
14
|
+
policyType: PolicyTypeEnum;
|
|
15
|
+
signature: boolean;
|
|
16
|
+
signatureCurveName: CurveNameEnum;
|
|
17
|
+
symmetricCipher: CipherEnum;
|
|
18
|
+
defaultECAlgorithm: string;
|
|
19
|
+
};
|
|
20
|
+
export default DefaultParams;
|
|
21
|
+
//# sourceMappingURL=DefaultParams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultParams.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/models/DefaultParams.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAIvD;;;;GAIG;AACH,QAAA,MAAM,aAAa;;;;;;;;;;CAUlB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import CurveNameEnum from '../enum/CurveNameEnum.js';
|
|
2
|
+
export interface CurveInterface {
|
|
3
|
+
name: CurveNameEnum;
|
|
4
|
+
length: number;
|
|
5
|
+
}
|
|
6
|
+
export declare const Secp256R1: CurveInterface;
|
|
7
|
+
export declare const Secp384R1: CurveInterface;
|
|
8
|
+
export declare const Secp521R1: CurveInterface;
|
|
9
|
+
/**
|
|
10
|
+
* Get size from Curve
|
|
11
|
+
*
|
|
12
|
+
* @param curveName CurveNameEnum name of the curve
|
|
13
|
+
*/
|
|
14
|
+
export declare function getCurveLength(curveName: CurveNameEnum): number;
|
|
15
|
+
//# sourceMappingURL=EcCurves.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EcCurves.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/models/EcCurves.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,0BAA0B,CAAC;AAGrD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,SAAS,EAAE,cAGvB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,cAGvB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,cAGvB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAW/D"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import ResourceLocator from './ResourceLocator.js';
|
|
2
|
+
import PolicyInterface from '../interfaces/PolicyInterface.js';
|
|
3
|
+
import CipherEnum from '../enum/CipherEnum.js';
|
|
4
|
+
import CurveNameEnum from '../enum/CurveNameEnum.js';
|
|
5
|
+
/**
|
|
6
|
+
* NanoTDF Header
|
|
7
|
+
*
|
|
8
|
+
* The header section is intended to be sent to a KAS and is used by the KAS to derive the decryption key that can
|
|
9
|
+
* decrypts the nanotdf's payload. The Header is structured as follows:
|
|
10
|
+
*
|
|
11
|
+
* | Section | Minimum Length (B) | Maximum Length (B) |
|
|
12
|
+
* |------------------------|--------------------|--------------------|
|
|
13
|
+
* | Magic Number + Version | 3 | 3 |
|
|
14
|
+
* | KAS (resource locator) | 3 | 257 |
|
|
15
|
+
* | ECC Mode | 1 | 1 |
|
|
16
|
+
* | Payload + Sig Mode | 1 | 1 |
|
|
17
|
+
* | Policy | 3 | 257 |
|
|
18
|
+
* | Ephemeral Key | 33 | 67 |
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
export default class Header {
|
|
22
|
+
static readonly MAGIC_NUMBER_VERSION_BYTE_OFF = 0;
|
|
23
|
+
static readonly MAGIC_NUMBER_VERSION_BYTE_LEN = 3;
|
|
24
|
+
static readonly MAGIC_NUMBER_OFFSET = 0;
|
|
25
|
+
static readonly MAGIC_NUMBER_LENGTH = 18;
|
|
26
|
+
static readonly ECC_BINDING_MODE_BYTE_LEN = 1;
|
|
27
|
+
static readonly USE_ECDSA_BINDING_BIT_OFF = 0;
|
|
28
|
+
static readonly EPHEMERAL_ECC_CURVE_NAME_BIT_OFF = -3;
|
|
29
|
+
static readonly SYMMETRIC_PAYLOAD_CONFIG_BYTE_LEN = 1;
|
|
30
|
+
static readonly HAS_SIGNATURE_BIT_OFF = 1;
|
|
31
|
+
static readonly HAS_SIGNATURE_BIT_LEN = 1;
|
|
32
|
+
static readonly SIGNATURE_ECC_CURVE_NAME_BIT_OFF = 1;
|
|
33
|
+
static readonly SIGNATURE_ECC_CURVE_NAME_BIT_LEN = 3;
|
|
34
|
+
static readonly SYMMETRIC_CIPHER_BIT_OFF = 4;
|
|
35
|
+
static readonly SYMMETRIC_CIPHER_BIT_LEN = 4;
|
|
36
|
+
magicNumberVersion: Uint8Array;
|
|
37
|
+
kas: ResourceLocator;
|
|
38
|
+
useECDSABinding: boolean;
|
|
39
|
+
ephemeralCurveName: CurveNameEnum;
|
|
40
|
+
hasSignature: boolean;
|
|
41
|
+
signatureCurveName: CurveNameEnum;
|
|
42
|
+
symmetricCipher: CipherEnum;
|
|
43
|
+
authTagLength: number;
|
|
44
|
+
policy: PolicyInterface;
|
|
45
|
+
ephemeralPublicKey: Uint8Array;
|
|
46
|
+
static parse(buff: Uint8Array): {
|
|
47
|
+
header: Header;
|
|
48
|
+
offset: number;
|
|
49
|
+
};
|
|
50
|
+
constructor(magicNumberVersion: Uint8Array, kas: ResourceLocator, useECDSABinding: boolean, ephemeralCurveName: CurveNameEnum, hasSignature: boolean, signatureCurveName: CurveNameEnum, symmetricCipher: CipherEnum, policy: PolicyInterface, ephemeralPublicKey: Uint8Array);
|
|
51
|
+
/**
|
|
52
|
+
* Copy the contents of the header to buffer
|
|
53
|
+
*/
|
|
54
|
+
copyToBuffer(target: Uint8Array): void;
|
|
55
|
+
/**
|
|
56
|
+
* Length
|
|
57
|
+
*
|
|
58
|
+
* @returns { number } Length of header
|
|
59
|
+
*/
|
|
60
|
+
get length(): number;
|
|
61
|
+
/**
|
|
62
|
+
* Return nanoTDF header as buffer
|
|
63
|
+
*
|
|
64
|
+
* Warning: This method will allocate memory of length of the header, use
|
|
65
|
+
* copyToBuffer() when copy is not needed.
|
|
66
|
+
*/
|
|
67
|
+
toBuffer(): ArrayBuffer;
|
|
68
|
+
/**
|
|
69
|
+
* Get KAS Rewrap URL
|
|
70
|
+
*/
|
|
71
|
+
getKasRewrapUrl(): string;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=Header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/models/Header.ts"],"names":[],"mappings":"AAEA,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAGnD,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAE/D,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,aAAa,MAAM,0BAA0B,CAAC;AAOrD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IAEzB,MAAM,CAAC,QAAQ,CAAC,6BAA6B,KAAK;IAClD,MAAM,CAAC,QAAQ,CAAC,6BAA6B,KAAK;IAClD,MAAM,CAAC,QAAQ,CAAC,mBAAmB,KAAK;IACxC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,MAAM;IAGzC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,KAAK;IAC9C,MAAM,CAAC,QAAQ,CAAC,yBAAyB,KAAK;IAC9C,MAAM,CAAC,QAAQ,CAAC,gCAAgC,MAAM;IAGtD,MAAM,CAAC,QAAQ,CAAC,iCAAiC,KAAK;IACtD,MAAM,CAAC,QAAQ,CAAC,qBAAqB,KAAK;IAC1C,MAAM,CAAC,QAAQ,CAAC,qBAAqB,KAAK;IAC1C,MAAM,CAAC,QAAQ,CAAC,gCAAgC,KAAK;IACrD,MAAM,CAAC,QAAQ,CAAC,gCAAgC,KAAK;IACrD,MAAM,CAAC,QAAQ,CAAC,wBAAwB,KAAK;IAC7C,MAAM,CAAC,QAAQ,CAAC,wBAAwB,KAAK;IAGtC,kBAAkB,EAAE,UAAU,CAAoC;IAGlE,GAAG,EAAE,eAAe,CAAC;IAGrB,eAAe,EAAE,OAAO,CAA8B;IACtD,kBAAkB,EAAE,aAAa,CAAoC;IAGrE,YAAY,EAAE,OAAO,CAA2B;IAChD,kBAAkB,EAAE,aAAa,CAAoC;IACrE,eAAe,EAAE,UAAU,CAAiC;IAE5D,aAAa,EAAE,MAAM,CAAC;IAGtB,MAAM,EAAE,eAAe,CAAC;IAGxB,kBAAkB,EAAE,UAAU,CAAC;IAEtC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU;;;;gBAoI3B,kBAAkB,EAAE,UAAU,EAC9B,GAAG,EAAE,eAAe,EACpB,eAAe,EAAE,OAAO,EACxB,kBAAkB,EAAE,aAAa,EACjC,YAAY,EAAE,OAAO,EACrB,kBAAkB,EAAE,aAAa,EACjC,eAAe,EAAE,UAAU,EAC3B,MAAM,EAAE,eAAe,EACvB,kBAAkB,EAAE,UAAU;IAgBhC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IA0CtC;;;;OAIG;IACH,IAAI,MAAM,IAAI,MAAM,CAenB;IAED;;;;;OAKG;IACH,QAAQ,IAAI,WAAW;IAOvB;;OAEG;IACH,eAAe,IAAI,MAAM;CAO1B"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import Header from './Header.js';
|
|
2
|
+
/**
|
|
3
|
+
* Payload
|
|
4
|
+
*
|
|
5
|
+
* The payload section of the nanotdf contains the ciphertext that is protected by the policy defined in the Header.
|
|
6
|
+
* The structure of the Payload is as follows:
|
|
7
|
+
*
|
|
8
|
+
* | Section | Minimum Length (B) | Maximum Length (B) |
|
|
9
|
+
* |-----------------------|--------------------|--------------------|
|
|
10
|
+
* | Length | 3 | 3 |
|
|
11
|
+
* | IV | 3 | 3 |
|
|
12
|
+
* | Ciphertext | 0 | 16777204 |
|
|
13
|
+
* | Payload MAC (AuthTag) | 8 | 32 |
|
|
14
|
+
*/
|
|
15
|
+
export default class Payload {
|
|
16
|
+
static LENGTH_LEN: number;
|
|
17
|
+
static IV_LEN: number;
|
|
18
|
+
static MIN_LENGTH: number;
|
|
19
|
+
static MAX_NANO_TDF_ENCRYPT_PAYLOAD_SIZE: number;
|
|
20
|
+
iv: Uint8Array;
|
|
21
|
+
ciphertext: Uint8Array;
|
|
22
|
+
authTag: Uint8Array;
|
|
23
|
+
ciphertextWithAuthTag: Uint8Array;
|
|
24
|
+
/**
|
|
25
|
+
* Parse the payload
|
|
26
|
+
*
|
|
27
|
+
* Returns a new Payload object and the next offset
|
|
28
|
+
*
|
|
29
|
+
* @param buff Uint8Array
|
|
30
|
+
*/
|
|
31
|
+
static parse(header: Header, buff: Uint8Array, legacyTDF?: boolean): {
|
|
32
|
+
payload: Payload;
|
|
33
|
+
offset: number;
|
|
34
|
+
};
|
|
35
|
+
constructor(iv: Uint8Array, ciphertext: Uint8Array, authTag: Uint8Array, ciphertextWithAuthTag?: Uint8Array);
|
|
36
|
+
/**
|
|
37
|
+
* Length
|
|
38
|
+
*
|
|
39
|
+
* @returns { number } Length of signature
|
|
40
|
+
*/
|
|
41
|
+
get length(): number;
|
|
42
|
+
/**
|
|
43
|
+
* Copy the contents of the signature to buffer
|
|
44
|
+
*/
|
|
45
|
+
copyToBuffer(target: Uint8Array): void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=Payload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/models/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAIjC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,MAAM,CAAC,UAAU,SAAK;IACtB,MAAM,CAAC,MAAM,SAAK;IAClB,MAAM,CAAC,UAAU,SAAM;IACvB,MAAM,CAAC,iCAAiC,SAAY;IAE7C,EAAE,EAAE,UAAU,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,UAAU,CAAC;IACpB,qBAAqB,EAAE,UAAU,CAAC;IAEzC;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,SAAS,UAAQ,GAChB;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;gBAyFrC,EAAE,EAAE,UAAU,EACd,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,UAAU,EACnB,qBAAqB,CAAC,EAAE,UAAU;IAiBpC;;;;OAIG;IACH,IAAI,MAAM,IAAI,MAAM,CAWnB;IAED;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;CA0BvC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import PolicyInterface from '../../interfaces/PolicyInterface.js';
|
|
2
|
+
import PolicyType from '../../enum/PolicyTypeEnum.js';
|
|
3
|
+
declare abstract class AbstractPolicy implements PolicyInterface {
|
|
4
|
+
static readonly TYPE_BYTE_OFF = 0;
|
|
5
|
+
static readonly TYPE_BYTE_LEN = 1;
|
|
6
|
+
static readonly BODY_BYTE_OFF = 1;
|
|
7
|
+
static readonly BODY_BYTE_MIN_LEN = 3;
|
|
8
|
+
static readonly BODY_BYTE_MAX_LEN = 257;
|
|
9
|
+
static readonly BINDING_BYTE_MIN_LEN = 8;
|
|
10
|
+
static readonly BINDING_BYTE_MAX_LEN = 132;
|
|
11
|
+
static readonly SIZE_OF_LENGTH_FIELD = 1;
|
|
12
|
+
static readonly GMAC_BINDING_LEN = 8;
|
|
13
|
+
readonly type: PolicyType;
|
|
14
|
+
readonly binding: Uint8Array;
|
|
15
|
+
static parse(buff: Uint8Array, useECDSABinding: boolean, type?: PolicyType): {
|
|
16
|
+
policy: PolicyInterface;
|
|
17
|
+
offset: number;
|
|
18
|
+
};
|
|
19
|
+
constructor(type: PolicyType, binding: Uint8Array);
|
|
20
|
+
/**
|
|
21
|
+
* Length of policy
|
|
22
|
+
*/
|
|
23
|
+
getLength(): number | never;
|
|
24
|
+
/**
|
|
25
|
+
* Return the content of the policy
|
|
26
|
+
*/
|
|
27
|
+
toBuffer(): Uint8Array | never;
|
|
28
|
+
/**
|
|
29
|
+
* Parses an ECDSA binding from a given buffer.
|
|
30
|
+
*
|
|
31
|
+
* @param {Uint8Array} buff - The buffer containing the ECDSA binding.
|
|
32
|
+
* @returns {{ bindingLength: number; binding: Uint8Array }} - An object containing the binding length and the binding subarray.
|
|
33
|
+
*/
|
|
34
|
+
static parseECDSABinding(buff: Uint8Array): {
|
|
35
|
+
bindingLength: number;
|
|
36
|
+
binding: Uint8Array;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Parses a binding from a given buffer based on the specified binding type.
|
|
40
|
+
*
|
|
41
|
+
* @param {Uint8Array} buff - The buffer containing the binding.
|
|
42
|
+
* @param {boolean} useEcdsaBinding - Flag indicating whether to use ECDSA binding.
|
|
43
|
+
* @param {number} offset - The starting offset in the buffer.
|
|
44
|
+
* @returns {{ binding: Uint8Array; newOffset: number }} - An object containing the binding and the new offset.
|
|
45
|
+
*/
|
|
46
|
+
static parseBinding(buff: Uint8Array, useEcdsaBinding: boolean, offset: number): {
|
|
47
|
+
binding: Uint8Array;
|
|
48
|
+
newOffset: number;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export default AbstractPolicy;
|
|
52
|
+
//# sourceMappingURL=AbstractPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractPolicy.d.ts","sourceRoot":"","sources":["../../../../../../src/nanotdf/models/Policy/AbstractPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,qCAAqC,CAAC;AAClE,OAAO,UAAU,MAAM,8BAA8B,CAAC;AAGtD,uBAAe,cAAe,YAAW,eAAe;IACtD,MAAM,CAAC,QAAQ,CAAC,aAAa,KAAK;IAClC,MAAM,CAAC,QAAQ,CAAC,aAAa,KAAK;IAClC,MAAM,CAAC,QAAQ,CAAC,aAAa,KAAK;IAClC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,KAAK;IACtC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,OAAO;IACxC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,KAAK;IACzC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,OAAO;IAC3C,MAAM,CAAC,QAAQ,CAAC,oBAAoB,KAAK;IACzC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,KAAK;IAErC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAG7B,MAAM,CAAC,KAAK,CAEV,IAAI,EAAE,UAAU,EAEhB,eAAe,EAAE,OAAO,EAExB,IAAI,CAAC,EAAE,UAAU,GAChB;QAAE,MAAM,EAAE,eAAe,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;gBAIlC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU;IAKjD;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,KAAK;IAI3B;;OAEG;IACH,QAAQ,IAAI,UAAU,GAAG,KAAK;IAI9B;;;;;OAKG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,CAAA;KAAE;IAW1F;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,CACjB,IAAI,EAAE,UAAU,EAChB,eAAe,EAAE,OAAO,EACxB,MAAM,EAAE,MAAM,GACb;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CAS9C;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import AbstractPolicy from './AbstractPolicy.js';
|
|
2
|
+
import { EmbeddedPolicyInterface } from '../../interfaces/PolicyInterface.js';
|
|
3
|
+
import PolicyTypes from '../../enum/PolicyTypeEnum.js';
|
|
4
|
+
/**
|
|
5
|
+
* Embedded Policy
|
|
6
|
+
*
|
|
7
|
+
* These policy types allow for creation and binding of arbitrary policies.
|
|
8
|
+
*
|
|
9
|
+
* | Section | Minimum Length (B) | Maximum Length (B) |
|
|
10
|
+
* |------------------------------|--------------------|--------------------|
|
|
11
|
+
* | Content Length | 2 | 2 |
|
|
12
|
+
* | Plaintext/Ciphertext | 1 | 255 |
|
|
13
|
+
* | (Optional) Policy Key Access | 36 | 136 |
|
|
14
|
+
*/
|
|
15
|
+
declare class EmbeddedPolicy extends AbstractPolicy implements EmbeddedPolicyInterface {
|
|
16
|
+
static MAX_POLICY_SIZE: number;
|
|
17
|
+
readonly content: Uint8Array;
|
|
18
|
+
static parse(buff: Uint8Array, useEcdsaBinding: boolean, type: PolicyTypes): {
|
|
19
|
+
offset: number;
|
|
20
|
+
policy: EmbeddedPolicy;
|
|
21
|
+
};
|
|
22
|
+
constructor(type: PolicyTypes, binding: Uint8Array, content: Uint8Array);
|
|
23
|
+
/**
|
|
24
|
+
* Length of policy
|
|
25
|
+
*
|
|
26
|
+
* @returns { number } length
|
|
27
|
+
*/
|
|
28
|
+
getLength(): number;
|
|
29
|
+
/**
|
|
30
|
+
* Return the content of the policy
|
|
31
|
+
*/
|
|
32
|
+
toBuffer(): Uint8Array;
|
|
33
|
+
}
|
|
34
|
+
export default EmbeddedPolicy;
|
|
35
|
+
//# sourceMappingURL=EmbeddedPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmbeddedPolicy.d.ts","sourceRoot":"","sources":["../../../../../../src/nanotdf/models/Policy/EmbeddedPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,WAAW,MAAM,8BAA8B,CAAC;AAGvD;;;;;;;;;;GAUG;AACH,cAAM,cAAe,SAAQ,cAAe,YAAW,uBAAuB;IAC5E,MAAM,CAAC,eAAe,SAAS;IAC/B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;WAEb,KAAK,CACnB,IAAI,EAAE,UAAU,EAChB,eAAe,EAAE,OAAO,EACxB,IAAI,EAAE,WAAW,GAChB;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE;gBAoBjC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU;IAKvE;;;;OAIG;IACM,SAAS,IAAI,MAAM;IAa5B;;OAEG;IACM,QAAQ,IAAI,UAAU;CA4BhC;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import AbstractPolicy from './AbstractPolicy.js';
|
|
2
|
+
import CurveNameEnum from '../../enum/CurveNameEnum.js';
|
|
3
|
+
declare function parse(buff: Uint8Array, useEcdsaBinding: boolean, curve: CurveNameEnum): {
|
|
4
|
+
policy: AbstractPolicy;
|
|
5
|
+
offset: number;
|
|
6
|
+
} | never;
|
|
7
|
+
declare const _default: {
|
|
8
|
+
parse: typeof parse;
|
|
9
|
+
};
|
|
10
|
+
export default _default;
|
|
11
|
+
//# sourceMappingURL=PolicyFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PolicyFactory.d.ts","sourceRoot":"","sources":["../../../../../../src/nanotdf/models/Policy/PolicyFactory.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAKjD,OAAO,aAAa,MAAM,6BAA6B,CAAC;AAExD,iBAAS,KAAK,CACZ,IAAI,EAAE,UAAU,EAChB,eAAe,EAAE,OAAO,EACxB,KAAK,EAAE,aAAa,GACnB;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAgCpD;;;;AAED,wBAEE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import AbstractPolicy from './AbstractPolicy.js';
|
|
2
|
+
import ResourceLocator from '../ResourceLocator.js';
|
|
3
|
+
import { RemotePolicyInterface } from '../../interfaces/PolicyInterface.js';
|
|
4
|
+
import PolicyTypeEnum from '../../enum/PolicyTypeEnum.js';
|
|
5
|
+
/**
|
|
6
|
+
* Set remote policy body
|
|
7
|
+
*
|
|
8
|
+
* If the policy type is set to use a Remote Policy, then the Resource Locator object described in Section 3.4.1 is
|
|
9
|
+
* used to describe the remote policy.
|
|
10
|
+
*/
|
|
11
|
+
declare class RemotePolicy extends AbstractPolicy implements RemotePolicyInterface {
|
|
12
|
+
readonly type: PolicyTypeEnum;
|
|
13
|
+
readonly remotePolicy: ResourceLocator;
|
|
14
|
+
static parse(buff: Uint8Array, useEcdsaBinding: boolean): {
|
|
15
|
+
offset: number;
|
|
16
|
+
policy: RemotePolicy;
|
|
17
|
+
};
|
|
18
|
+
constructor(type: PolicyTypeEnum, binding: Uint8Array, resource: ResourceLocator);
|
|
19
|
+
/**
|
|
20
|
+
* Length of policy
|
|
21
|
+
*
|
|
22
|
+
* @returns { number } length
|
|
23
|
+
*/
|
|
24
|
+
getLength(): number;
|
|
25
|
+
/**
|
|
26
|
+
* Return the content of the policy
|
|
27
|
+
*/
|
|
28
|
+
toBuffer(): Uint8Array;
|
|
29
|
+
}
|
|
30
|
+
export default RemotePolicy;
|
|
31
|
+
//# sourceMappingURL=RemotePolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemotePolicy.d.ts","sourceRoot":"","sources":["../../../../../../src/nanotdf/models/Policy/RemotePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAE1D;;;;;GAKG;AACH,cAAM,YAAa,SAAQ,cAAe,YAAW,qBAAqB;IACxE,SAAkB,IAAI,EAAE,cAAc,CAAyB;IAC/D,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;WAEvB,KAAK,CACnB,IAAI,EAAE,UAAU,EAChB,eAAe,EAAE,OAAO,GACvB;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE;gBAc/B,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe;IAMhF;;;;OAIG;IACM,SAAS,IAAI,MAAM;IAW5B;;OAEG;IACM,QAAQ,IAAI,UAAU;CAchC;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import ProtocolEnum from '../enum/ProtocolEnum.js';
|
|
2
|
+
import ResourceLocatorIdentifierEnum from '../enum/ResourceLocatorIdentifierEnum.js';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* The Resource Locator is a way for the nanotdf to represent references to external resources in as succinct a format
|
|
6
|
+
* as possible.
|
|
7
|
+
*
|
|
8
|
+
* | Section | Minimum Length (B) | Maximum Length (B) |
|
|
9
|
+
* |---------------|--------------------|--------------------|
|
|
10
|
+
* | Protocol Enum | 1 | 1 |
|
|
11
|
+
* | Body Length | 1 | 1 |
|
|
12
|
+
* | Body | 1 | 255 |
|
|
13
|
+
* | Identifier | 0 | n |
|
|
14
|
+
*
|
|
15
|
+
* @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#3312-kas
|
|
16
|
+
* @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#341-resource-locator
|
|
17
|
+
*/
|
|
18
|
+
export default class ResourceLocator {
|
|
19
|
+
readonly protocol: ProtocolEnum;
|
|
20
|
+
readonly lengthOfBody: number;
|
|
21
|
+
readonly body: string;
|
|
22
|
+
readonly offset: number;
|
|
23
|
+
readonly id?: string | undefined;
|
|
24
|
+
readonly idType: ResourceLocatorIdentifierEnum;
|
|
25
|
+
static readonly PROTOCOL_OFFSET = 0;
|
|
26
|
+
static readonly PROTOCOL_LENGTH = 1;
|
|
27
|
+
static readonly LENGTH_OFFSET = 1;
|
|
28
|
+
static readonly LENGTH_LENGTH = 1;
|
|
29
|
+
static readonly BODY_OFFSET = 2;
|
|
30
|
+
static readonly IDENTIFIER_0_BYTE: number;
|
|
31
|
+
static readonly IDENTIFIER_2_BYTE: number;
|
|
32
|
+
static readonly IDENTIFIER_8_BYTE: number;
|
|
33
|
+
static readonly IDENTIFIER_32_BYTE: number;
|
|
34
|
+
constructor(protocol: ProtocolEnum, lengthOfBody: number, body: string, offset: number, id?: string | undefined, idType?: ResourceLocatorIdentifierEnum);
|
|
35
|
+
/**
|
|
36
|
+
* Construct a new URL or URL + identifier pair, for use with NanoTDF envelopes.
|
|
37
|
+
* @param url The URL to encrypt; `http` and `https` schemes are supported
|
|
38
|
+
* @param identifier An optional identifier.
|
|
39
|
+
* For KAS URLs, this is usually a public key identifier (kid). Limit 32 characters
|
|
40
|
+
* @returns a value representing the URL and identifier, if present.
|
|
41
|
+
* This method throws an Error if the URL is invalid or of the wrong schema,
|
|
42
|
+
* or if the identifier is an unsupported value.
|
|
43
|
+
*/
|
|
44
|
+
static fromURL(url: string, identifier?: string): ResourceLocator;
|
|
45
|
+
static parse(buff: Uint8Array): ResourceLocator;
|
|
46
|
+
/**
|
|
47
|
+
* Length
|
|
48
|
+
*
|
|
49
|
+
* @returns { number } Length of resource locator
|
|
50
|
+
*/
|
|
51
|
+
get length(): number;
|
|
52
|
+
get url(): string | never;
|
|
53
|
+
/**
|
|
54
|
+
* Return the contents of the Resource Locator in buffer
|
|
55
|
+
*/
|
|
56
|
+
toBuffer(): Uint8Array;
|
|
57
|
+
/**
|
|
58
|
+
* Get Identifier
|
|
59
|
+
*
|
|
60
|
+
* Returns the identifier of the ResourceLocator or an empty string if no identifier is present.
|
|
61
|
+
* @returns { string } Identifier of the resource locator.
|
|
62
|
+
*/
|
|
63
|
+
get identifier(): string;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=ResourceLocator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceLocator.d.ts","sourceRoot":"","sources":["../../../../../src/nanotdf/models/ResourceLocator.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,6BAA6B,MAAM,0CAA0C,CAAC;AAErF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAYhC,QAAQ,CAAC,QAAQ,EAAE,YAAY;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,EAAE,CAAC;IACZ,QAAQ,CAAC,MAAM,EAAE,6BAA6B;IAhBhD,MAAM,CAAC,QAAQ,CAAC,eAAe,KAAK;IACpC,MAAM,CAAC,QAAQ,CAAC,eAAe,KAAK;IACpC,MAAM,CAAC,QAAQ,CAAC,aAAa,KAAK;IAClC,MAAM,CAAC,QAAQ,CAAC,aAAa,KAAK;IAClC,MAAM,CAAC,QAAQ,CAAC,WAAW,KAAK;IAChC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAU;IACnD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAU;IACnD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAU;IACnD,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAU;gBAGzC,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,EAAE,CAAC,oBAAQ,EACX,MAAM,GAAE,6BAAkE;IAGrF;;;;;;;;OAQG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe;IA2CjE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU;IAiE7B;;;;OAIG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,KAAK,CASxB;IAED;;OAEG;IACH,QAAQ,IAAI,UAAU;IAuBtB;;;;;OAKG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;CACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import Header from './Header.js';
|
|
2
|
+
/**
|
|
3
|
+
* NanoTDF Signature
|
|
4
|
+
*
|
|
5
|
+
* The signature section is an optional section that contains an ECDSA signature used to cryptographically bind the Header and Payload to a creator of the nanotdf. The key used for signing is the private key of the creator of the nanotdf. The ECC Params used for the signature are described in Section 3.3.1.4.2. The private key used for this signature is distinctly different than the ephemeral private key. This is a persistent key belonging to an individual, entity, or device that creates nanotdfs. The signature is used to authenticate the entire nanotdf and contains both the public key related to the creators private key and the resulting signature. The structure of this section:
|
|
6
|
+
*
|
|
7
|
+
* | Section | Minimum Length (B) | Maximum Length (B) |
|
|
8
|
+
* |------------|--------------------|--------------------|
|
|
9
|
+
* | Public Key | 33 | 67 |
|
|
10
|
+
* | Signature | 64 | 132 |
|
|
11
|
+
*
|
|
12
|
+
* @link https://github.com/virtru/nanotdf/blob/master/spec/index.md#333-signature
|
|
13
|
+
*/
|
|
14
|
+
export default class Signature {
|
|
15
|
+
publicKey: Uint8Array;
|
|
16
|
+
signature: Uint8Array;
|
|
17
|
+
static parse(header: Header, buff: Uint8Array): {
|
|
18
|
+
signature: Signature;
|
|
19
|
+
offset: number;
|
|
20
|
+
} | never;
|
|
21
|
+
constructor(publicKey: Uint8Array, signature: Uint8Array);
|
|
22
|
+
/**
|
|
23
|
+
* Length
|
|
24
|
+
*
|
|
25
|
+
* @returns { number } Length of signature
|
|
26
|
+
*/
|
|
27
|
+
get length(): number;
|
|
28
|
+
/**
|
|
29
|
+
* Copy the contents of the signature to buffer
|
|
30
|
+
*/
|
|
31
|
+
copyToBuffer(target: Uint8Array): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=Signature.d.ts.map
|