ts-mls 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +194 -0
- package/dist/codec/number.d.ts +10 -0
- package/dist/codec/number.js +73 -0
- package/dist/codec/number.js.map +1 -0
- package/dist/codec/optional.d.ts +4 -0
- package/dist/codec/optional.js +24 -0
- package/dist/codec/optional.js.map +1 -0
- package/dist/codec/tlsDecoder.d.ts +16 -0
- package/dist/codec/tlsDecoder.js +98 -0
- package/dist/codec/tlsDecoder.js.map +1 -0
- package/dist/codec/tlsEncoder.d.ts +9 -0
- package/dist/codec/tlsEncoder.js +29 -0
- package/dist/codec/tlsEncoder.js.map +1 -0
- package/dist/codec/variableLength.d.ts +10 -0
- package/dist/codec/variableLength.js +102 -0
- package/dist/codec/variableLength.js.map +1 -0
- package/dist/codec/vector.d.ts +10 -0
- package/dist/codec/vector.js +76 -0
- package/dist/codec/vector.js.map +1 -0
- package/dist/crypto/aead.d.ts +5 -0
- package/dist/crypto/aead.js +56 -0
- package/dist/crypto/aead.js.map +1 -0
- package/dist/crypto/ciphersuite.d.ts +47 -0
- package/dist/crypto/ciphersuite.js +208 -0
- package/dist/crypto/ciphersuite.js.map +1 -0
- package/dist/crypto/hash.d.ts +8 -0
- package/dist/crypto/hash.js +36 -0
- package/dist/crypto/hash.js.map +1 -0
- package/dist/crypto/hpke.d.ts +46 -0
- package/dist/crypto/hpke.js +73 -0
- package/dist/crypto/hpke.js.map +1 -0
- package/dist/crypto/kdf.d.ts +12 -0
- package/dist/crypto/kdf.js +49 -0
- package/dist/crypto/kdf.js.map +1 -0
- package/dist/crypto/kem.d.ts +3 -0
- package/dist/crypto/kem.js +29 -0
- package/dist/crypto/kem.js.map +1 -0
- package/dist/crypto/rng.d.ts +4 -0
- package/dist/crypto/rng.js +9 -0
- package/dist/crypto/rng.js.map +1 -0
- package/dist/crypto/signature.d.ts +12 -0
- package/dist/crypto/signature.js +73 -0
- package/dist/crypto/signature.js.map +1 -0
- package/dist/src/AuthenticationService.d.ts +7 -0
- package/dist/src/AuthenticationService.js +9 -0
- package/dist/src/AuthenticationService.js.map +1 -0
- package/dist/src/IncomingMessageAction.d.ts +10 -0
- package/dist/src/IncomingMessageAction.d.ts.map +1 -0
- package/dist/src/IncomingMessageAction.js +6 -0
- package/dist/src/IncomingMessageAction.js.map +1 -0
- package/dist/src/PaddingConfig.d.ts +9 -0
- package/dist/src/PaddingConfig.js +12 -0
- package/dist/src/PaddingConfig.js.map +1 -0
- package/dist/src/authenticatedContent.d.ts +32 -0
- package/dist/src/authenticatedContent.d.ts.map +1 -0
- package/dist/src/authenticatedContent.js +32 -0
- package/dist/src/authenticatedContent.js.map +1 -0
- package/dist/src/authenticationService.d.ts.map +1 -0
- package/dist/src/capabilities.d.ts +14 -0
- package/dist/src/capabilities.d.ts.map +1 -0
- package/dist/src/capabilities.js +31 -0
- package/dist/src/capabilities.js.map +1 -0
- package/dist/src/clientConfig.d.ts +21 -0
- package/dist/src/clientConfig.d.ts.map +1 -0
- package/dist/src/clientConfig.js +16 -0
- package/dist/src/clientConfig.js.map +1 -0
- package/dist/src/clientState.d.ts +122 -0
- package/dist/src/clientState.d.ts.map +1 -0
- package/dist/src/clientState.js +562 -0
- package/dist/src/clientState.js.map +1 -0
- package/dist/src/codec/number.d.ts +10 -0
- package/dist/src/codec/number.d.ts.map +1 -0
- package/dist/src/codec/number.js +67 -0
- package/dist/src/codec/number.js.map +1 -0
- package/dist/src/codec/optional.d.ts +4 -0
- package/dist/src/codec/optional.d.ts.map +1 -0
- package/dist/src/codec/optional.js +24 -0
- package/dist/src/codec/optional.js.map +1 -0
- package/dist/src/codec/tlsDecoder.d.ts +14 -0
- package/dist/src/codec/tlsDecoder.d.ts.map +1 -0
- package/dist/src/codec/tlsDecoder.js +90 -0
- package/dist/src/codec/tlsDecoder.js.map +1 -0
- package/dist/src/codec/tlsEncoder.d.ts +9 -0
- package/dist/src/codec/tlsEncoder.d.ts.map +1 -0
- package/dist/src/codec/tlsEncoder.js +29 -0
- package/dist/src/codec/tlsEncoder.js.map +1 -0
- package/dist/src/codec/variableLength.d.ts +11 -0
- package/dist/src/codec/variableLength.d.ts.map +1 -0
- package/dist/src/codec/variableLength.js +104 -0
- package/dist/src/codec/variableLength.js.map +1 -0
- package/dist/src/commit.d.ts +10 -0
- package/dist/src/commit.d.ts.map +1 -0
- package/dist/src/commit.js +12 -0
- package/dist/src/commit.js.map +1 -0
- package/dist/src/contentType.d.ts +12 -0
- package/dist/src/contentType.d.ts.map +1 -0
- package/dist/src/contentType.js +15 -0
- package/dist/src/contentType.js.map +1 -0
- package/dist/src/createCommit.d.ts +32 -0
- package/dist/src/createCommit.d.ts.map +1 -0
- package/dist/src/createCommit.js +260 -0
- package/dist/src/createCommit.js.map +1 -0
- package/dist/src/createMessage.d.ts +24 -0
- package/dist/src/createMessage.d.ts.map +1 -0
- package/dist/src/createMessage.js +36 -0
- package/dist/src/createMessage.js.map +1 -0
- package/dist/src/credential.d.ts +21 -0
- package/dist/src/credential.d.ts.map +1 -0
- package/dist/src/credential.js +35 -0
- package/dist/src/credential.js.map +1 -0
- package/dist/src/credentialType.d.ts +11 -0
- package/dist/src/credentialType.d.ts.map +1 -0
- package/dist/src/credentialType.js +14 -0
- package/dist/src/credentialType.js.map +1 -0
- package/dist/src/crypto/aead.d.ts +8 -0
- package/dist/src/crypto/aead.d.ts.map +1 -0
- package/dist/src/crypto/aead.js +105 -0
- package/dist/src/crypto/aead.js.map +1 -0
- package/dist/src/crypto/ciphersuite.d.ts +51 -0
- package/dist/src/crypto/ciphersuite.d.ts.map +1 -0
- package/dist/src/crypto/ciphersuite.js +252 -0
- package/dist/src/crypto/ciphersuite.js.map +1 -0
- package/dist/src/crypto/hash.d.ts +8 -0
- package/dist/src/crypto/hash.d.ts.map +1 -0
- package/dist/src/crypto/hash.js +36 -0
- package/dist/src/crypto/hash.js.map +1 -0
- package/dist/src/crypto/hpke.d.ts +51 -0
- package/dist/src/crypto/hpke.d.ts.map +1 -0
- package/dist/src/crypto/hpke.js +114 -0
- package/dist/src/crypto/hpke.js.map +1 -0
- package/dist/src/crypto/kdf.d.ts +12 -0
- package/dist/src/crypto/kdf.d.ts.map +1 -0
- package/dist/src/crypto/kdf.js +49 -0
- package/dist/src/crypto/kdf.js.map +1 -0
- package/dist/src/crypto/kem.d.ts +3 -0
- package/dist/src/crypto/kem.d.ts.map +1 -0
- package/dist/src/crypto/kem.js +85 -0
- package/dist/src/crypto/kem.js.map +1 -0
- package/dist/src/crypto/rng.d.ts +4 -0
- package/dist/src/crypto/rng.d.ts.map +1 -0
- package/dist/src/crypto/rng.js +9 -0
- package/dist/src/crypto/rng.js.map +1 -0
- package/dist/src/crypto/signature.d.ts +12 -0
- package/dist/src/crypto/signature.d.ts.map +1 -0
- package/dist/src/crypto/signature.js +165 -0
- package/dist/src/crypto/signature.js.map +1 -0
- package/dist/src/customCredential.d.ts +2 -0
- package/dist/src/customCredential.d.ts.map +1 -0
- package/dist/src/customCredential.js +14 -0
- package/dist/src/customCredential.js.map +1 -0
- package/dist/src/customExtension.d.ts +2 -0
- package/dist/src/customExtension.js +11 -0
- package/dist/src/customExtension.js.map +1 -0
- package/dist/src/customProposal.d.ts +2 -0
- package/dist/src/customProposal.js +11 -0
- package/dist/src/customProposal.js.map +1 -0
- package/dist/src/defaultCapabilities.d.ts +2 -0
- package/dist/src/defaultCapabilities.d.ts.map +1 -0
- package/dist/src/defaultCapabilities.js +15 -0
- package/dist/src/defaultCapabilities.js.map +1 -0
- package/dist/src/defaultExtensionType.d.ts +13 -0
- package/dist/src/defaultExtensionType.d.ts.map +1 -0
- package/dist/src/defaultExtensionType.js +17 -0
- package/dist/src/defaultExtensionType.js.map +1 -0
- package/dist/src/defaultProposalType.d.ts +15 -0
- package/dist/src/defaultProposalType.d.ts.map +1 -0
- package/dist/src/defaultProposalType.js +19 -0
- package/dist/src/defaultProposalType.js.map +1 -0
- package/dist/src/extension.d.ts +18 -0
- package/dist/src/extension.d.ts.map +1 -0
- package/dist/src/extension.js +38 -0
- package/dist/src/extension.js.map +1 -0
- package/dist/src/extensionType.d.ts +13 -0
- package/dist/src/extensionType.js +17 -0
- package/dist/src/extensionType.js.map +1 -0
- package/dist/src/externalProposal.d.ts +7 -0
- package/dist/src/externalProposal.d.ts.map +1 -0
- package/dist/src/externalProposal.js +44 -0
- package/dist/src/externalProposal.js.map +1 -0
- package/dist/src/externalSender.d.ts +9 -0
- package/dist/src/externalSender.d.ts.map +1 -0
- package/dist/src/externalSender.js +10 -0
- package/dist/src/externalSender.js.map +1 -0
- package/dist/src/framedContent.d.ts +113 -0
- package/dist/src/framedContent.d.ts.map +1 -0
- package/dist/src/framedContent.js +144 -0
- package/dist/src/framedContent.js.map +1 -0
- package/dist/src/grease.d.ts +16 -0
- package/dist/src/grease.d.ts.map +1 -0
- package/dist/src/grease.js +37 -0
- package/dist/src/grease.js.map +1 -0
- package/dist/src/groupContext.d.ts +19 -0
- package/dist/src/groupContext.d.ts.map +1 -0
- package/dist/src/groupContext.js +49 -0
- package/dist/src/groupContext.js.map +1 -0
- package/dist/src/groupInfo.d.ts +26 -0
- package/dist/src/groupInfo.d.ts.map +1 -0
- package/dist/src/groupInfo.js +55 -0
- package/dist/src/groupInfo.js.map +1 -0
- package/dist/src/groupSecrets.d.ts +10 -0
- package/dist/src/groupSecrets.d.ts.map +1 -0
- package/dist/src/groupSecrets.js +11 -0
- package/dist/src/groupSecrets.js.map +1 -0
- package/dist/src/hpkeCiphertext.d.ts +8 -0
- package/dist/src/hpkeCiphertext.d.ts.map +1 -0
- package/dist/src/hpkeCiphertext.js +9 -0
- package/dist/src/hpkeCiphertext.js.map +1 -0
- package/dist/src/index.d.ts +32 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +68 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/keyPackage.d.ts +38 -0
- package/dist/src/keyPackage.d.ts.map +1 -0
- package/dist/src/keyPackage.js +79 -0
- package/dist/src/keyPackage.js.map +1 -0
- package/dist/src/keyPackageEqualityConfig.d.ts +7 -0
- package/dist/src/keyPackageEqualityConfig.d.ts.map +1 -0
- package/dist/src/keyPackageEqualityConfig.js +13 -0
- package/dist/src/keyPackageEqualityConfig.js.map +1 -0
- package/dist/src/keyRetentionConfig.d.ts +6 -0
- package/dist/src/keyRetentionConfig.d.ts.map +1 -0
- package/dist/src/keyRetentionConfig.js +9 -0
- package/dist/src/keyRetentionConfig.js.map +1 -0
- package/dist/src/keySchedule.d.ts +24 -0
- package/dist/src/keySchedule.d.ts.map +1 -0
- package/dist/src/keySchedule.js +49 -0
- package/dist/src/keySchedule.js.map +1 -0
- package/dist/src/leafNode.d.ts +78 -0
- package/dist/src/leafNode.d.ts.map +1 -0
- package/dist/src/leafNode.js +96 -0
- package/dist/src/leafNode.js.map +1 -0
- package/dist/src/leafNodeSource.d.ts +12 -0
- package/dist/src/leafNodeSource.d.ts.map +1 -0
- package/dist/src/leafNodeSource.js +15 -0
- package/dist/src/leafNodeSource.js.map +1 -0
- package/dist/src/lifetime.d.ts +9 -0
- package/dist/src/lifetime.d.ts.map +1 -0
- package/dist/src/lifetime.js +16 -0
- package/dist/src/lifetime.js.map +1 -0
- package/dist/src/lifetimeConfig.d.ts +5 -0
- package/dist/src/lifetimeConfig.d.ts.map +1 -0
- package/dist/src/lifetimeConfig.js +8 -0
- package/dist/src/lifetimeConfig.js.map +1 -0
- package/dist/src/message.d.ts +42 -0
- package/dist/src/message.d.ts.map +1 -0
- package/dist/src/message.js +49 -0
- package/dist/src/message.js.map +1 -0
- package/dist/src/messageProtection.d.ts +36 -0
- package/dist/src/messageProtection.d.ts.map +1 -0
- package/dist/src/messageProtection.js +135 -0
- package/dist/src/messageProtection.js.map +1 -0
- package/dist/src/messageProtectionPublic.d.ts +17 -0
- package/dist/src/messageProtectionPublic.d.ts.map +1 -0
- package/dist/src/messageProtectionPublic.js +105 -0
- package/dist/src/messageProtectionPublic.js.map +1 -0
- package/dist/src/mlsError.d.ts +24 -0
- package/dist/src/mlsError.d.ts.map +1 -0
- package/dist/src/mlsError.js +60 -0
- package/dist/src/mlsError.js.map +1 -0
- package/dist/src/nodeType.d.ts +11 -0
- package/dist/src/nodeType.d.ts.map +1 -0
- package/dist/src/nodeType.js +14 -0
- package/dist/src/nodeType.js.map +1 -0
- package/dist/src/paddingConfig.d.ts.map +1 -0
- package/dist/src/parentHash.d.ts +16 -0
- package/dist/src/parentHash.d.ts.map +1 -0
- package/dist/src/parentHash.js +108 -0
- package/dist/src/parentHash.js.map +1 -0
- package/dist/src/parentNode.d.ts +9 -0
- package/dist/src/parentNode.d.ts.map +1 -0
- package/dist/src/parentNode.js +14 -0
- package/dist/src/parentNode.js.map +1 -0
- package/dist/src/pathSecrets.d.ts +10 -0
- package/dist/src/pathSecrets.d.ts.map +1 -0
- package/dist/src/pathSecrets.js +36 -0
- package/dist/src/pathSecrets.js.map +1 -0
- package/dist/src/presharedkey.d.ts +51 -0
- package/dist/src/presharedkey.d.ts.map +1 -0
- package/dist/src/presharedkey.js +65 -0
- package/dist/src/presharedkey.js.map +1 -0
- package/dist/src/privateKeyPath.d.ts +12 -0
- package/dist/src/privateKeyPath.d.ts.map +1 -0
- package/dist/src/privateKeyPath.js +26 -0
- package/dist/src/privateKeyPath.js.map +1 -0
- package/dist/src/privateMessage.d.ts +41 -0
- package/dist/src/privateMessage.d.ts.map +1 -0
- package/dist/src/privateMessage.js +122 -0
- package/dist/src/privateMessage.js.map +1 -0
- package/dist/src/processMessages.d.ts +26 -0
- package/dist/src/processMessages.d.ts.map +1 -0
- package/dist/src/processMessages.js +201 -0
- package/dist/src/processMessages.js.map +1 -0
- package/dist/src/proposal.d.ts +97 -0
- package/dist/src/proposal.d.ts.map +1 -0
- package/dist/src/proposal.js +96 -0
- package/dist/src/proposal.js.map +1 -0
- package/dist/src/proposalOrRefType.d.ts +25 -0
- package/dist/src/proposalOrRefType.d.ts.map +1 -0
- package/dist/src/proposalOrRefType.js +35 -0
- package/dist/src/proposalOrRefType.js.map +1 -0
- package/dist/src/proposalType.d.ts +15 -0
- package/dist/src/proposalType.js +19 -0
- package/dist/src/proposalType.js.map +1 -0
- package/dist/src/protectMessages.d.ts +20 -0
- package/dist/src/protectMessages.js +116 -0
- package/dist/src/protectMessages.js.map +1 -0
- package/dist/src/protocolVersion.d.ts +9 -0
- package/dist/src/protocolVersion.d.ts.map +1 -0
- package/dist/src/protocolVersion.js +13 -0
- package/dist/src/protocolVersion.js.map +1 -0
- package/dist/src/pskIndex.d.ts +7 -0
- package/dist/src/pskIndex.d.ts.map +1 -0
- package/dist/src/pskIndex.js +22 -0
- package/dist/src/pskIndex.js.map +1 -0
- package/dist/src/publicMessage.d.ts +29 -0
- package/dist/src/publicMessage.d.ts.map +1 -0
- package/dist/src/publicMessage.js +78 -0
- package/dist/src/publicMessage.js.map +1 -0
- package/dist/src/ratchetTree.d.ts +46 -0
- package/dist/src/ratchetTree.d.ts.map +1 -0
- package/dist/src/ratchetTree.js +276 -0
- package/dist/src/ratchetTree.js.map +1 -0
- package/dist/src/requiredCapabilites.d.ts +12 -0
- package/dist/src/requiredCapabilites.js +12 -0
- package/dist/src/requiredCapabilites.js.map +1 -0
- package/dist/src/requiredCapabilities.d.ts +10 -0
- package/dist/src/requiredCapabilities.d.ts.map +1 -0
- package/dist/src/requiredCapabilities.js +11 -0
- package/dist/src/requiredCapabilities.js.map +1 -0
- package/dist/src/resumption.d.ts +18 -0
- package/dist/src/resumption.d.ts.map +1 -0
- package/dist/src/resumption.js +82 -0
- package/dist/src/resumption.js.map +1 -0
- package/dist/src/secretTree.d.ts +29 -0
- package/dist/src/secretTree.d.ts.map +1 -0
- package/dist/src/secretTree.js +146 -0
- package/dist/src/secretTree.js.map +1 -0
- package/dist/src/sender.d.ts +56 -0
- package/dist/src/sender.d.ts.map +1 -0
- package/dist/src/sender.js +91 -0
- package/dist/src/sender.js.map +1 -0
- package/dist/src/transcriptHash.d.ts +14 -0
- package/dist/src/transcriptHash.d.ts.map +1 -0
- package/dist/src/transcriptHash.js +28 -0
- package/dist/src/transcriptHash.js.map +1 -0
- package/dist/src/treeHash.d.ts +27 -0
- package/dist/src/treeHash.d.ts.map +1 -0
- package/dist/src/treeHash.js +76 -0
- package/dist/src/treeHash.js.map +1 -0
- package/dist/src/treemath.d.ts +14 -0
- package/dist/src/treemath.d.ts.map +1 -0
- package/dist/src/treemath.js +103 -0
- package/dist/src/treemath.js.map +1 -0
- package/dist/src/unappliedProposals.d.ts +7 -0
- package/dist/src/unappliedProposals.d.ts.map +1 -0
- package/dist/src/unappliedProposals.js +12 -0
- package/dist/src/unappliedProposals.js.map +1 -0
- package/dist/src/updatePath.d.ts +34 -0
- package/dist/src/updatePath.d.ts.map +1 -0
- package/dist/src/updatePath.js +170 -0
- package/dist/src/updatePath.js.map +1 -0
- package/dist/src/util/addToMap.d.ts +1 -0
- package/dist/src/util/addToMap.d.ts.map +1 -0
- package/dist/src/util/addToMap.js +9 -0
- package/dist/src/util/addToMap.js.map +1 -0
- package/dist/src/util/array.d.ts +2 -0
- package/dist/src/util/array.d.ts.map +1 -0
- package/dist/src/util/array.js +13 -0
- package/dist/src/util/array.js.map +1 -0
- package/dist/src/util/byteArray.d.ts +3 -0
- package/dist/src/util/byteArray.d.ts.map +1 -0
- package/dist/src/util/byteArray.js +32 -0
- package/dist/src/util/byteArray.js.map +1 -0
- package/dist/src/util/constantTimeCompare.d.ts +1 -0
- package/dist/src/util/constantTimeCompare.d.ts.map +1 -0
- package/dist/src/util/constantTimeCompare.js +13 -0
- package/dist/src/util/constantTimeCompare.js.map +1 -0
- package/dist/src/util/enumHelpers.d.ts +4 -0
- package/dist/src/util/enumHelpers.d.ts.map +1 -0
- package/dist/src/util/enumHelpers.js +34 -0
- package/dist/src/util/enumHelpers.js.map +1 -0
- package/dist/src/util/repeat.d.ts +1 -0
- package/dist/src/util/repeat.d.ts.map +1 -0
- package/dist/src/util/repeat.js +11 -0
- package/dist/src/util/repeat.js.map +1 -0
- package/dist/src/welcome.d.ts +29 -0
- package/dist/src/welcome.d.ts.map +1 -0
- package/dist/src/welcome.js +55 -0
- package/dist/src/welcome.js.map +1 -0
- package/dist/src/wireformat.d.ts +13 -0
- package/dist/src/wireformat.d.ts.map +1 -0
- package/dist/src/wireformat.js +18 -0
- package/dist/src/wireformat.js.map +1 -0
- package/dist/test/base64.test.d.ts +1 -0
- package/dist/test/base64.test.d.ts.map +1 -0
- package/dist/test/base64.test.js +69 -0
- package/dist/test/base64.test.js.map +1 -0
- package/dist/test/codec/authenticatedContent.test.d.ts +1 -0
- package/dist/test/codec/authenticatedContent.test.d.ts.map +1 -0
- package/dist/test/codec/authenticatedContent.test.js +40 -0
- package/dist/test/codec/authenticatedContent.test.js.map +1 -0
- package/dist/test/codec/capabilities.test.d.ts +1 -0
- package/dist/test/codec/capabilities.test.d.ts.map +1 -0
- package/dist/test/codec/capabilities.test.js +28 -0
- package/dist/test/codec/capabilities.test.js.map +1 -0
- package/dist/test/codec/commit.test.d.ts +1 -0
- package/dist/test/codec/commit.test.d.ts.map +1 -0
- package/dist/test/codec/commit.test.js +17 -0
- package/dist/test/codec/commit.test.js.map +1 -0
- package/dist/test/codec/composite.test.d.ts +1 -0
- package/dist/test/codec/composite.test.d.ts.map +1 -0
- package/dist/test/codec/composite.test.js +63 -0
- package/dist/test/codec/composite.test.js.map +1 -0
- package/dist/test/codec/contentType.test.d.ts +1 -0
- package/dist/test/codec/contentType.test.d.ts.map +1 -0
- package/dist/test/codec/contentType.test.js +14 -0
- package/dist/test/codec/contentType.test.js.map +1 -0
- package/dist/test/codec/credential.test.d.ts +1 -0
- package/dist/test/codec/credential.test.d.ts.map +1 -0
- package/dist/test/codec/credential.test.js +19 -0
- package/dist/test/codec/credential.test.js.map +1 -0
- package/dist/test/codec/credentialType.test.d.ts +1 -0
- package/dist/test/codec/credentialType.test.d.ts.map +1 -0
- package/dist/test/codec/credentialType.test.js +14 -0
- package/dist/test/codec/credentialType.test.js.map +1 -0
- package/dist/test/codec/encryptedGroupSecrets.test.d.ts +1 -0
- package/dist/test/codec/encryptedGroupSecrets.test.d.ts.map +1 -0
- package/dist/test/codec/encryptedGroupSecrets.test.js +20 -0
- package/dist/test/codec/encryptedGroupSecrets.test.js.map +1 -0
- package/dist/test/codec/extension.test.d.ts +1 -0
- package/dist/test/codec/extension.test.d.ts.map +1 -0
- package/dist/test/codec/extension.test.js +22 -0
- package/dist/test/codec/extension.test.js.map +1 -0
- package/dist/test/codec/extensionType.test.d.ts +1 -0
- package/dist/test/codec/extensionType.test.d.ts.map +1 -0
- package/dist/test/codec/extensionType.test.js +14 -0
- package/dist/test/codec/extensionType.test.js.map +1 -0
- package/dist/test/codec/externalSender.test.d.ts +1 -0
- package/dist/test/codec/externalSender.test.d.ts.map +1 -0
- package/dist/test/codec/externalSender.test.js +22 -0
- package/dist/test/codec/externalSender.test.js.map +1 -0
- package/dist/test/codec/framedContent.test.d.ts +1 -0
- package/dist/test/codec/framedContent.test.d.ts.map +1 -0
- package/dist/test/codec/framedContent.test.js +28 -0
- package/dist/test/codec/framedContent.test.js.map +1 -0
- package/dist/test/codec/groupContext.test.d.ts +1 -0
- package/dist/test/codec/groupContext.test.d.ts.map +1 -0
- package/dist/test/codec/groupContext.test.js +32 -0
- package/dist/test/codec/groupContext.test.js.map +1 -0
- package/dist/test/codec/groupInfo.test.d.ts +1 -0
- package/dist/test/codec/groupInfo.test.d.ts.map +1 -0
- package/dist/test/codec/groupInfo.test.js +47 -0
- package/dist/test/codec/groupInfo.test.js.map +1 -0
- package/dist/test/codec/groupSecrets.test.d.ts +1 -0
- package/dist/test/codec/groupSecrets.test.d.ts.map +1 -0
- package/dist/test/codec/groupSecrets.test.js +18 -0
- package/dist/test/codec/groupSecrets.test.js.map +1 -0
- package/dist/test/codec/hpkeCiphertext.test.d.ts +1 -0
- package/dist/test/codec/hpkeCiphertext.test.d.ts.map +1 -0
- package/dist/test/codec/hpkeCiphertext.test.js +15 -0
- package/dist/test/codec/hpkeCiphertext.test.js.map +1 -0
- package/dist/test/codec/keyPackage.test.d.ts +1 -0
- package/dist/test/codec/keyPackage.test.d.ts.map +1 -0
- package/dist/test/codec/keyPackage.test.js +60 -0
- package/dist/test/codec/keyPackage.test.js.map +1 -0
- package/dist/test/codec/keyPackageTBS.test.d.ts +1 -0
- package/dist/test/codec/keyPackageTBS.test.d.ts.map +1 -0
- package/dist/test/codec/keyPackageTBS.test.js +61 -0
- package/dist/test/codec/keyPackageTBS.test.js.map +1 -0
- package/dist/test/codec/leafNode.test.d.ts +1 -0
- package/dist/test/codec/leafNode.test.d.ts.map +1 -0
- package/dist/test/codec/leafNode.test.js +45 -0
- package/dist/test/codec/leafNode.test.js.map +1 -0
- package/dist/test/codec/leafNodeData.test.d.ts +1 -0
- package/dist/test/codec/leafNodeData.test.d.ts.map +1 -0
- package/dist/test/codec/leafNodeData.test.js +38 -0
- package/dist/test/codec/leafNodeData.test.js.map +1 -0
- package/dist/test/codec/leafNodeSource.test.d.ts +1 -0
- package/dist/test/codec/leafNodeSource.test.d.ts.map +1 -0
- package/dist/test/codec/leafNodeSource.test.js +17 -0
- package/dist/test/codec/leafNodeSource.test.js.map +1 -0
- package/dist/test/codec/lifetime.test.d.ts +1 -0
- package/dist/test/codec/lifetime.test.d.ts.map +1 -0
- package/dist/test/codec/lifetime.test.js +14 -0
- package/dist/test/codec/lifetime.test.js.map +1 -0
- package/dist/test/codec/message.test.d.ts +1 -0
- package/dist/test/codec/message.test.d.ts.map +1 -0
- package/dist/test/codec/message.test.js +102 -0
- package/dist/test/codec/message.test.js.map +1 -0
- package/dist/test/codec/nodeType.test.d.ts +1 -0
- package/dist/test/codec/nodeType.test.d.ts.map +1 -0
- package/dist/test/codec/nodeType.test.js +14 -0
- package/dist/test/codec/nodeType.test.js.map +1 -0
- package/dist/test/codec/number.test.d.ts +1 -0
- package/dist/test/codec/number.test.d.ts.map +1 -0
- package/dist/test/codec/number.test.js +76 -0
- package/dist/test/codec/number.test.js.map +1 -0
- package/dist/test/codec/optional.test.d.ts +1 -0
- package/dist/test/codec/optional.test.d.ts.map +1 -0
- package/dist/test/codec/optional.test.js +44 -0
- package/dist/test/codec/optional.test.js.map +1 -0
- package/dist/test/codec/padding.test.d.ts +1 -0
- package/dist/test/codec/padding.test.d.ts.map +1 -0
- package/dist/test/codec/padding.test.js +42 -0
- package/dist/test/codec/padding.test.js.map +1 -0
- package/dist/test/codec/parentHash.test.d.ts +1 -0
- package/dist/test/codec/parentHash.test.d.ts.map +1 -0
- package/dist/test/codec/parentHash.test.js +15 -0
- package/dist/test/codec/parentHash.test.js.map +1 -0
- package/dist/test/codec/parentNode.test.d.ts +1 -0
- package/dist/test/codec/parentNode.test.d.ts.map +1 -0
- package/dist/test/codec/parentNode.test.js +24 -0
- package/dist/test/codec/parentNode.test.js.map +1 -0
- package/dist/test/codec/presharedkey.test.d.ts +1 -0
- package/dist/test/codec/presharedkey.test.d.ts.map +1 -0
- package/dist/test/codec/presharedkey.test.js +37 -0
- package/dist/test/codec/presharedkey.test.js.map +1 -0
- package/dist/test/codec/privateContentAAD.test.d.ts +1 -0
- package/dist/test/codec/privateContentAAD.test.d.ts.map +1 -0
- package/dist/test/codec/privateContentAAD.test.js +32 -0
- package/dist/test/codec/privateContentAAD.test.js.map +1 -0
- package/dist/test/codec/privateMessage.test.d.ts +1 -0
- package/dist/test/codec/privateMessage.test.d.ts.map +1 -0
- package/dist/test/codec/privateMessage.test.js +38 -0
- package/dist/test/codec/privateMessage.test.js.map +1 -0
- package/dist/test/codec/proposal.test.d.ts +1 -0
- package/dist/test/codec/proposal.test.d.ts.map +1 -0
- package/dist/test/codec/proposal.test.js +46 -0
- package/dist/test/codec/proposal.test.js.map +1 -0
- package/dist/test/codec/proposalOrRef.test.d.ts +1 -0
- package/dist/test/codec/proposalOrRef.test.d.ts.map +1 -0
- package/dist/test/codec/proposalOrRef.test.js +14 -0
- package/dist/test/codec/proposalOrRef.test.js.map +1 -0
- package/dist/test/codec/proposalOrRefType.test.d.ts +1 -0
- package/dist/test/codec/proposalOrRefType.test.d.ts.map +1 -0
- package/dist/test/codec/proposalOrRefType.test.js +14 -0
- package/dist/test/codec/proposalOrRefType.test.js.map +1 -0
- package/dist/test/codec/proposalType.test.d.ts +1 -0
- package/dist/test/codec/proposalType.test.d.ts.map +1 -0
- package/dist/test/codec/proposalType.test.js +14 -0
- package/dist/test/codec/proposalType.test.js.map +1 -0
- package/dist/test/codec/protocolVersion.test.d.ts +1 -0
- package/dist/test/codec/protocolVersion.test.d.ts.map +1 -0
- package/dist/test/codec/protocolVersion.test.js +11 -0
- package/dist/test/codec/protocolVersion.test.js.map +1 -0
- package/dist/test/codec/pskId.test.d.ts +1 -0
- package/dist/test/codec/pskId.test.d.ts.map +1 -0
- package/dist/test/codec/pskId.test.js +20 -0
- package/dist/test/codec/pskId.test.js.map +1 -0
- package/dist/test/codec/pskInfo.test.d.ts +1 -0
- package/dist/test/codec/pskInfo.test.d.ts.map +1 -0
- package/dist/test/codec/pskInfo.test.js +14 -0
- package/dist/test/codec/pskInfo.test.js.map +1 -0
- package/dist/test/codec/pskLabel.test.d.ts +1 -0
- package/dist/test/codec/pskLabel.test.d.ts.map +1 -0
- package/dist/test/codec/pskLabel.test.js +28 -0
- package/dist/test/codec/pskLabel.test.js.map +1 -0
- package/dist/test/codec/pskType.test.d.ts +1 -0
- package/dist/test/codec/pskType.test.d.ts.map +1 -0
- package/dist/test/codec/pskType.test.js +14 -0
- package/dist/test/codec/pskType.test.js.map +1 -0
- package/dist/test/codec/publicMessage.test.d.ts +1 -0
- package/dist/test/codec/publicMessage.test.d.ts.map +1 -0
- package/dist/test/codec/publicMessage.test.js +41 -0
- package/dist/test/codec/publicMessage.test.js.map +1 -0
- package/dist/test/codec/ratchetTree.test.d.ts +1 -0
- package/dist/test/codec/ratchetTree.test.d.ts.map +1 -0
- package/dist/test/codec/ratchetTree.test.js +85 -0
- package/dist/test/codec/ratchetTree.test.js.map +1 -0
- package/dist/test/codec/requiredCapabilities.test.d.ts +1 -0
- package/dist/test/codec/requiredCapabilities.test.d.ts.map +1 -0
- package/dist/test/codec/requiredCapabilities.test.js +32 -0
- package/dist/test/codec/requiredCapabilities.test.js.map +1 -0
- package/dist/test/codec/resumptionPSKUsage.test.d.ts +1 -0
- package/dist/test/codec/resumptionPSKUsage.test.d.ts.map +1 -0
- package/dist/test/codec/resumptionPSKUsage.test.js +17 -0
- package/dist/test/codec/resumptionPSKUsage.test.js.map +1 -0
- package/dist/test/codec/reuseGuard.test.d.ts +1 -0
- package/dist/test/codec/reuseGuard.test.d.ts.map +1 -0
- package/dist/test/codec/reuseGuard.test.js +11 -0
- package/dist/test/codec/reuseGuard.test.js.map +1 -0
- package/dist/test/codec/roundtrip.d.ts +3 -0
- package/dist/test/codec/roundtrip.d.ts.map +1 -0
- package/dist/test/codec/roundtrip.js +11 -0
- package/dist/test/codec/roundtrip.js.map +1 -0
- package/dist/test/codec/sender.test.d.ts +1 -0
- package/dist/test/codec/sender.test.d.ts.map +1 -0
- package/dist/test/codec/sender.test.js +20 -0
- package/dist/test/codec/sender.test.js.map +1 -0
- package/dist/test/codec/senderData.test.d.ts +1 -0
- package/dist/test/codec/senderData.test.d.ts.map +1 -0
- package/dist/test/codec/senderData.test.js +14 -0
- package/dist/test/codec/senderData.test.js.map +1 -0
- package/dist/test/codec/senderDataAAD.test.d.ts +1 -0
- package/dist/test/codec/senderDataAAD.test.d.ts.map +1 -0
- package/dist/test/codec/senderDataAAD.test.js +14 -0
- package/dist/test/codec/senderDataAAD.test.js.map +1 -0
- package/dist/test/codec/senderType.test.d.ts +1 -0
- package/dist/test/codec/senderType.test.d.ts.map +1 -0
- package/dist/test/codec/senderType.test.js +20 -0
- package/dist/test/codec/senderType.test.js.map +1 -0
- package/dist/test/codec/transcriptHash.test.d.ts +1 -0
- package/dist/test/codec/transcriptHash.test.d.ts.map +1 -0
- package/dist/test/codec/transcriptHash.test.js +40 -0
- package/dist/test/codec/transcriptHash.test.js.map +1 -0
- package/dist/test/codec/treeHash.test.d.ts +1 -0
- package/dist/test/codec/treeHash.test.d.ts.map +1 -0
- package/dist/test/codec/treeHash.test.js +19 -0
- package/dist/test/codec/treeHash.test.js.map +1 -0
- package/dist/test/codec/updatePath.test.d.ts +1 -0
- package/dist/test/codec/updatePath.test.d.ts.map +1 -0
- package/dist/test/codec/updatePath.test.js +83 -0
- package/dist/test/codec/updatePath.test.js.map +1 -0
- package/dist/test/codec/updatePathNode.test.d.ts +1 -0
- package/dist/test/codec/updatePathNode.test.d.ts.map +1 -0
- package/dist/test/codec/updatePathNode.test.js +25 -0
- package/dist/test/codec/updatePathNode.test.js.map +1 -0
- package/dist/test/codec/varLengthEncoding.test.d.ts +1 -0
- package/dist/test/codec/varLengthEncoding.test.d.ts.map +1 -0
- package/dist/test/codec/varLengthEncoding.test.js +92 -0
- package/dist/test/codec/varLengthEncoding.test.js.map +1 -0
- package/dist/test/codec/welcome.test.d.ts +1 -0
- package/dist/test/codec/welcome.test.d.ts.map +1 -0
- package/dist/test/codec/welcome.test.js +27 -0
- package/dist/test/codec/welcome.test.js.map +1 -0
- package/dist/test/codec/wireformat.test.d.ts +1 -0
- package/dist/test/codec/wireformat.test.d.ts.map +1 -0
- package/dist/test/codec/wireformat.test.js +23 -0
- package/dist/test/codec/wireformat.test.js.map +1 -0
- package/dist/test/crypto/aead.test.d.ts +1 -0
- package/dist/test/crypto/aead.test.d.ts.map +1 -0
- package/dist/test/crypto/aead.test.js +46 -0
- package/dist/test/crypto/aead.test.js.map +1 -0
- package/dist/test/crypto/hpke.test.d.ts +1 -0
- package/dist/test/crypto/hpke.test.d.ts.map +1 -0
- package/dist/test/crypto/hpke.test.js +60 -0
- package/dist/test/crypto/hpke.test.js.map +1 -0
- package/dist/test/crypto/keyMatch.d.ts +7 -0
- package/dist/test/crypto/keyMatch.d.ts.map +1 -0
- package/dist/test/crypto/keyMatch.js +27 -0
- package/dist/test/crypto/keyMatch.js.map +1 -0
- package/dist/test/extensionsEqual.test.d.ts +1 -0
- package/dist/test/extensionsEqual.test.d.ts.map +1 -0
- package/dist/test/extensionsEqual.test.js +53 -0
- package/dist/test/extensionsEqual.test.js.map +1 -0
- package/dist/test/groupinfo.test.d.ts +1 -0
- package/dist/test/groupinfo.test.d.ts.map +1 -0
- package/dist/test/groupinfo.test.js +42 -0
- package/dist/test/groupinfo.test.js.map +1 -0
- package/dist/test/scenario/common.d.ts +8 -0
- package/dist/test/scenario/common.d.ts.map +1 -0
- package/dist/test/scenario/common.js +47 -0
- package/dist/test/scenario/common.js.map +1 -0
- package/dist/test/scenario/customCredentials.test.d.ts +1 -0
- package/dist/test/scenario/customCredentials.test.js +3 -0
- package/dist/test/scenario/customCredentials.test.js.map +1 -0
- package/dist/test/scenario/customExtensions.test.d.ts +1 -0
- package/dist/test/scenario/customExtensions.test.d.ts.map +1 -0
- package/dist/test/scenario/customExtensions.test.js +58 -0
- package/dist/test/scenario/customExtensions.test.js.map +1 -0
- package/dist/test/scenario/customProposal.test.d.ts +1 -0
- package/dist/test/scenario/customProposal.test.d.ts.map +1 -0
- package/dist/test/scenario/customProposal.test.js +73 -0
- package/dist/test/scenario/customProposal.test.js.map +1 -0
- package/dist/test/scenario/epochOutOfOrder.test.d.ts +1 -0
- package/dist/test/scenario/epochOutOfOrder.test.d.ts.map +1 -0
- package/dist/test/scenario/epochOutOfOrder.test.js +164 -0
- package/dist/test/scenario/epochOutOfOrder.test.js.map +1 -0
- package/dist/test/scenario/externalAddProposal.test.d.ts +1 -0
- package/dist/test/scenario/externalAddProposal.test.d.ts.map +1 -0
- package/dist/test/scenario/externalAddProposal.test.js +71 -0
- package/dist/test/scenario/externalAddProposal.test.js.map +1 -0
- package/dist/test/scenario/externalJoin.test.d.ts +1 -0
- package/dist/test/scenario/externalJoin.test.d.ts.map +1 -0
- package/dist/test/scenario/externalJoin.test.js +53 -0
- package/dist/test/scenario/externalJoin.test.js.map +1 -0
- package/dist/test/scenario/externalJoinResync.test.d.ts +1 -0
- package/dist/test/scenario/externalJoinResync.test.d.ts.map +1 -0
- package/dist/test/scenario/externalJoinResync.test.js +61 -0
- package/dist/test/scenario/externalJoinResync.test.js.map +1 -0
- package/dist/test/scenario/externalProposal.test.d.ts +1 -0
- package/dist/test/scenario/externalProposal.test.d.ts.map +1 -0
- package/dist/test/scenario/externalProposal.test.js +71 -0
- package/dist/test/scenario/externalProposal.test.js.map +1 -0
- package/dist/test/scenario/externalPsk.test.d.ts +1 -0
- package/dist/test/scenario/externalPsk.test.d.ts.map +1 -0
- package/dist/test/scenario/externalPsk.test.js +75 -0
- package/dist/test/scenario/externalPsk.test.js.map +1 -0
- package/dist/test/scenario/externalPskJoin.test.d.ts +1 -0
- package/dist/test/scenario/externalPskJoin.test.d.ts.map +1 -0
- package/dist/test/scenario/externalPskJoin.test.js +53 -0
- package/dist/test/scenario/externalPskJoin.test.js.map +1 -0
- package/dist/test/scenario/generationOutOfOrder.test.d.ts +1 -0
- package/dist/test/scenario/generationOutOfOrder.test.d.ts.map +1 -0
- package/dist/test/scenario/generationOutOfOrder.test.js +113 -0
- package/dist/test/scenario/generationOutOfOrder.test.js.map +1 -0
- package/dist/test/scenario/grease.test.d.ts +1 -0
- package/dist/test/scenario/grease.test.d.ts.map +1 -0
- package/dist/test/scenario/grease.test.js +46 -0
- package/dist/test/scenario/grease.test.js.map +1 -0
- package/dist/test/scenario/largeGroupFullLifecycle.test.d.ts +1 -0
- package/dist/test/scenario/largeGroupFullLifecycle.test.d.ts.map +1 -0
- package/dist/test/scenario/largeGroupFullLifecycle.test.js +129 -0
- package/dist/test/scenario/largeGroupFullLifecycle.test.js.map +1 -0
- package/dist/test/scenario/leaveProposal.test.d.ts +1 -0
- package/dist/test/scenario/leaveProposal.test.d.ts.map +1 -0
- package/dist/test/scenario/leaveProposal.test.js +79 -0
- package/dist/test/scenario/leaveProposal.test.js.map +1 -0
- package/dist/test/scenario/multipleJoinsAtOnce.test.d.ts +1 -0
- package/dist/test/scenario/multipleJoinsAtOnce.test.d.ts.map +1 -0
- package/dist/test/scenario/multipleJoinsAtOnce.test.js +50 -0
- package/dist/test/scenario/multipleJoinsAtOnce.test.js.map +1 -0
- package/dist/test/scenario/oneToOneJoin.test.d.ts +1 -0
- package/dist/test/scenario/oneToOneJoin.test.d.ts.map +1 -0
- package/dist/test/scenario/oneToOneJoin.test.js +100 -0
- package/dist/test/scenario/oneToOneJoin.test.js.map +1 -0
- package/dist/test/scenario/processMessage.d.ts +1 -0
- package/dist/test/scenario/processMessage.js +3 -0
- package/dist/test/scenario/processMessage.js.map +1 -0
- package/dist/test/scenario/ratchetTreeExtension.test.d.ts +1 -0
- package/dist/test/scenario/ratchetTreeExtension.test.d.ts.map +1 -0
- package/dist/test/scenario/ratchetTreeExtension.test.js +50 -0
- package/dist/test/scenario/ratchetTreeExtension.test.js.map +1 -0
- package/dist/test/scenario/reinit.test.d.ts +1 -0
- package/dist/test/scenario/reinit.test.d.ts.map +1 -0
- package/dist/test/scenario/reinit.test.js +59 -0
- package/dist/test/scenario/reinit.test.js.map +1 -0
- package/dist/test/scenario/rejectIncomingMessage.test.d.ts +1 -0
- package/dist/test/scenario/rejectIncomingMessage.test.d.ts.map +1 -0
- package/dist/test/scenario/rejectIncomingMessage.test.js +69 -0
- package/dist/test/scenario/rejectIncomingMessage.test.js.map +1 -0
- package/dist/test/scenario/remove.test.d.ts +1 -0
- package/dist/test/scenario/remove.test.d.ts.map +1 -0
- package/dist/test/scenario/remove.test.js +70 -0
- package/dist/test/scenario/remove.test.js.map +1 -0
- package/dist/test/scenario/requiredCapabilites.test.d.ts +1 -0
- package/dist/test/scenario/requiredCapabilites.test.d.ts.map +1 -0
- package/dist/test/scenario/requiredCapabilites.test.js +67 -0
- package/dist/test/scenario/requiredCapabilites.test.js.map +1 -0
- package/dist/test/scenario/resumption.test.d.ts +1 -0
- package/dist/test/scenario/resumption.test.d.ts.map +1 -0
- package/dist/test/scenario/resumption.test.js +45 -0
- package/dist/test/scenario/resumption.test.js.map +1 -0
- package/dist/test/scenario/threePartyJoin.test.d.ts +1 -0
- package/dist/test/scenario/threePartyJoin.test.d.ts.map +1 -0
- package/dist/test/scenario/threePartyJoin.test.js +58 -0
- package/dist/test/scenario/threePartyJoin.test.js.map +1 -0
- package/dist/test/scenario/update.test.d.ts +1 -0
- package/dist/test/scenario/update.test.d.ts.map +1 -0
- package/dist/test/scenario/update.test.js +52 -0
- package/dist/test/scenario/update.test.js.map +1 -0
- package/dist/test/test-vectors/cryptoBasics.test.d.ts +1 -0
- package/dist/test/test-vectors/cryptoBasics.test.d.ts.map +1 -0
- package/dist/test/test-vectors/cryptoBasics.test.js +65 -0
- package/dist/test/test-vectors/cryptoBasics.test.js.map +1 -0
- package/dist/test/test-vectors/deserialization.test.d.ts +1 -0
- package/dist/test/test-vectors/deserialization.test.d.ts.map +1 -0
- package/dist/test/test-vectors/deserialization.test.js +18 -0
- package/dist/test/test-vectors/deserialization.test.js.map +1 -0
- package/dist/test/test-vectors/keySchedule.test.d.ts +1 -0
- package/dist/test/test-vectors/keySchedule.test.d.ts.map +1 -0
- package/dist/test/test-vectors/keySchedule.test.js +53 -0
- package/dist/test/test-vectors/keySchedule.test.js.map +1 -0
- package/dist/test/test-vectors/messageProtection.test.d.ts +1 -0
- package/dist/test/test-vectors/messageProtection.test.d.ts.map +1 -0
- package/dist/test/test-vectors/messageProtection.test.js +220 -0
- package/dist/test/test-vectors/messageProtection.test.js.map +1 -0
- package/dist/test/test-vectors/messages.test.d.ts +1 -0
- package/dist/test/test-vectors/messages.test.d.ts.map +1 -0
- package/dist/test/test-vectors/messages.test.js +141 -0
- package/dist/test/test-vectors/messages.test.js.map +1 -0
- package/dist/test/test-vectors/passiveClientScenarios.test.d.ts +1 -0
- package/dist/test/test-vectors/passiveClientScenarios.test.d.ts.map +1 -0
- package/dist/test/test-vectors/passiveClientScenarios.test.js +91 -0
- package/dist/test/test-vectors/passiveClientScenarios.test.js.map +1 -0
- package/dist/test/test-vectors/pskSecret.test.d.ts +1 -0
- package/dist/test/test-vectors/pskSecret.test.d.ts.map +1 -0
- package/dist/test/test-vectors/pskSecret.test.js +23 -0
- package/dist/test/test-vectors/pskSecret.test.js.map +1 -0
- package/dist/test/test-vectors/secretTree.test.d.ts +1 -0
- package/dist/test/test-vectors/secretTree.test.d.ts.map +1 -0
- package/dist/test/test-vectors/secretTree.test.js +53 -0
- package/dist/test/test-vectors/secretTree.test.js.map +1 -0
- package/dist/test/test-vectors/transcriptHashes.test.d.ts +1 -0
- package/dist/test/test-vectors/transcriptHashes.test.d.ts.map +1 -0
- package/dist/test/test-vectors/transcriptHashes.test.js +31 -0
- package/dist/test/test-vectors/transcriptHashes.test.js.map +1 -0
- package/dist/test/test-vectors/treeOperations.test.d.ts +1 -0
- package/dist/test/test-vectors/treeOperations.test.d.ts.map +1 -0
- package/dist/test/test-vectors/treeOperations.test.js +50 -0
- package/dist/test/test-vectors/treeOperations.test.js.map +1 -0
- package/dist/test/test-vectors/treeValidation.test.d.ts +1 -0
- package/dist/test/test-vectors/treeValidation.test.d.ts.map +1 -0
- package/dist/test/test-vectors/treeValidation.test.js +41 -0
- package/dist/test/test-vectors/treeValidation.test.js.map +1 -0
- package/dist/test/test-vectors/treekem.test.d.ts +1 -0
- package/dist/test/test-vectors/treekem.test.d.ts.map +1 -0
- package/dist/test/test-vectors/treekem.test.js +105 -0
- package/dist/test/test-vectors/treekem.test.js.map +1 -0
- package/dist/test/test-vectors/treemath.test.d.ts +1 -0
- package/dist/test/test-vectors/treemath.test.d.ts.map +1 -0
- package/dist/test/test-vectors/treemath.test.js +60 -0
- package/dist/test/test-vectors/treemath.test.js.map +1 -0
- package/dist/test/test-vectors/welcome.test.d.ts +1 -0
- package/dist/test/test-vectors/welcome.test.d.ts.map +1 -0
- package/dist/test/test-vectors/welcome.test.js +45 -0
- package/dist/test/test-vectors/welcome.test.js.map +1 -0
- package/dist/test/validation/byteArrayValidation.test.d.ts +1 -0
- package/dist/test/validation/byteArrayValidation.test.js +76 -0
- package/dist/test/validation/byteArrayValidation.test.js.map +1 -0
- package/dist/test/validation/clientStateComprehensiveValidation.test.d.ts +1 -0
- package/dist/test/validation/clientStateComprehensiveValidation.test.js +280 -0
- package/dist/test/validation/clientStateComprehensiveValidation.test.js.map +1 -0
- package/dist/test/validation/clientStateExtendedValidation.test.d.ts +1 -0
- package/dist/test/validation/clientStateExtendedValidation.test.js +376 -0
- package/dist/test/validation/clientStateExtendedValidation.test.js.map +1 -0
- package/dist/test/validation/clientStateValidation.test.d.ts +1 -0
- package/dist/test/validation/clientStateValidation.test.js +190 -0
- package/dist/test/validation/clientStateValidation.test.js.map +1 -0
- package/dist/test/validation/errorHandlingValidation.test.d.ts +1 -0
- package/dist/test/validation/errorHandlingValidation.test.js +92 -0
- package/dist/test/validation/errorHandlingValidation.test.js.map +1 -0
- package/dist/test/validation/extensionValidation.test.d.ts +1 -0
- package/dist/test/validation/extensionValidation.test.js +120 -0
- package/dist/test/validation/extensionValidation.test.js.map +1 -0
- package/dist/test/validation/greaseValidation.test.d.ts +1 -0
- package/dist/test/validation/greaseValidation.test.js +136 -0
- package/dist/test/validation/greaseValidation.test.js.map +1 -0
- package/dist/test/validation/index.test.d.ts +5 -0
- package/dist/test/validation/index.test.js +19 -0
- package/dist/test/validation/index.test.js.map +1 -0
- package/dist/test/validation/mlsErrorValidation.test.d.ts +1 -0
- package/dist/test/validation/mlsErrorValidation.test.js +92 -0
- package/dist/test/validation/mlsErrorValidation.test.js.map +1 -0
- package/dist/test/validation/proposalValidation.test.d.ts +1 -0
- package/dist/test/validation/proposalValidation.test.d.ts.map +1 -0
- package/dist/test/validation/proposalValidation.test.js +233 -0
- package/dist/test/validation/proposalValidation.test.js.map +1 -0
- package/dist/test/validation/ratchetTreeValidation.test.d.ts +1 -0
- package/dist/test/validation/ratchetTreeValidation.test.d.ts.map +1 -0
- package/dist/test/validation/ratchetTreeValidation.test.js +53 -0
- package/dist/test/validation/ratchetTreeValidation.test.js.map +1 -0
- package/dist/test/validation/resumptionValidation.test.d.ts +1 -0
- package/dist/test/validation/resumptionValidation.test.d.ts.map +1 -0
- package/dist/test/validation/resumptionValidation.test.js +81 -0
- package/dist/test/validation/resumptionValidation.test.js.map +1 -0
- package/dist/test/validation/utilityValidation.test.d.ts +1 -0
- package/dist/test/validation/utilityValidation.test.js +71 -0
- package/dist/test/validation/utilityValidation.test.js.map +1 -0
- package/dist/test_vectors/crypto-basics.json +303 -0
- package/dist/test_vectors/deserialization.json +58 -0
- package/dist/test_vectors/key-schedule.json +926 -0
- package/dist/test_vectors/message-protection.json +142 -0
- package/dist/test_vectors/messages.json +5702 -0
- package/dist/test_vectors/passive-client-handling-commit.json +2683 -0
- package/dist/test_vectors/passive-client-random.json +2657 -0
- package/dist/test_vectors/passive-client-welcome.json +814 -0
- package/dist/test_vectors/psk_secret.json +2382 -0
- package/dist/test_vectors/secret-tree.json +4846 -0
- package/dist/test_vectors/transcript-hashes.json +58 -0
- package/dist/test_vectors/tree-math.json +8156 -0
- package/dist/test_vectors/tree-operations.json +47 -0
- package/dist/test_vectors/tree-validation.json +6204 -0
- package/dist/test_vectors/treekem.json +14859 -0
- package/dist/test_vectors/welcome.json +51 -0
- package/dist/ts-mls.d.ts +781 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/util/addToMap.d.ts +1 -0
- package/dist/util/addToMap.js +9 -0
- package/dist/util/addToMap.js.map +1 -0
- package/dist/util/array.d.ts +1 -0
- package/dist/util/array.js +7 -0
- package/dist/util/array.js.map +1 -0
- package/dist/util/byteArray.d.ts +3 -0
- package/dist/util/byteArray.js +32 -0
- package/dist/util/byteArray.js.map +1 -0
- package/dist/util/constantTimeCompare.d.ts +1 -0
- package/dist/util/constantTimeCompare.js +13 -0
- package/dist/util/constantTimeCompare.js.map +1 -0
- package/dist/util/enumHelpers.d.ts +4 -0
- package/dist/util/enumHelpers.js +34 -0
- package/dist/util/enumHelpers.js.map +1 -0
- package/dist/util/repeat.d.ts +1 -0
- package/dist/util/repeat.js +11 -0
- package/dist/util/repeat.js.map +1 -0
- package/package.json +108 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Luka Jacobowitz
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# ts-mls: A TypeScript MLS (Messaging Layer Security - RFC 9420) implementation
|
|
2
|
+
|
|
3
|
+
[](https://github.com/LukaJCB/ts-mls/actions/workflows/ci.yml) [](https://badge.fury.io/js/ts-mls) [](https://coveralls.io/github/LukaJCB/ts-mls?branch=main)
|
|
4
|
+
|
|
5
|
+
Typescript implementation of Messaging Layer Security (RFC 9420, MLS).
|
|
6
|
+
|
|
7
|
+
This project aims to be a full implementation of [RFC 9420](https://datatracker.ietf.org/doc/html/rfc9420) and focuses on immutability and type safety. It is suitable for browsers, Node.js, or serverless environments and supports the recently standardized Post Quantum public-key algorithms (FIPS-203, FIPS-204) as well as the X-Wing hybrid KEM combining X25519 and ML-KEM.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# npm
|
|
13
|
+
npm install ts-mls
|
|
14
|
+
|
|
15
|
+
# yarn
|
|
16
|
+
yarn add ts-mls
|
|
17
|
+
|
|
18
|
+
# pnpm
|
|
19
|
+
pnpm add ts-mls
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
This project currently only has a single dependency, `@hpke/core`. However, to support different Ciphersuites, you may need to install other libraries. As an example, to use the `MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519` Ciphersuite, you would also have to install `@noble/curves`:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# npm
|
|
26
|
+
npm install @noble/curves
|
|
27
|
+
|
|
28
|
+
# yarn
|
|
29
|
+
yarn add @noble/curves
|
|
30
|
+
|
|
31
|
+
# pnpm
|
|
32
|
+
pnpm add @noble/curves
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Please refer to the subsequent table to understand which additional dependencies are required to install for each Ciphersuite.
|
|
36
|
+
|
|
37
|
+
## Supported Ciphersuites
|
|
38
|
+
|
|
39
|
+
The following cipher suites are supported:
|
|
40
|
+
|
|
41
|
+
| KEM | AEAD | KDF | Hash | Signature | Name | ID | Dependencies |
|
|
42
|
+
| ------------------------ | ---------------- | ----------- | ------- | --------- | --------------------------------------------------- | --- | ------------------------------------------------------------------- |
|
|
43
|
+
| DHKEM-X25519-HKDF-SHA256 | AES128GCM | HKDF-SHA256 | SHA-256 | Ed25519 | MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519 | 1 | @noble/curves |
|
|
44
|
+
| DHKEM-P256-HKDF-SHA256 | AES128GCM | HKDF-SHA256 | SHA-256 | P256 | MLS_128_DHKEMP256_AES128GCM_SHA256_P256 | 2 | @noble/curves |
|
|
45
|
+
| DHKEM-X25519-HKDF-SHA256 | CHACHA20POLY1305 | HKDF-SHA256 | SHA-256 | Ed25519 | MLS_128_DHKEMX25519_CHACHA20POLY1305_SHA256_Ed25519 | 3 | @hpke/chacha20poly1305, @noble/curves |
|
|
46
|
+
| DHKEM-X448-HKDF-SHA512 | AES256GCM | HKDF-SHA512 | SHA-512 | Ed448 | MLS_256_DHKEMX448_AES256GCM_SHA512_Ed448 | 4 | @noble/curves |
|
|
47
|
+
| DHKEM-P521-HKDF-SHA512 | AES256GCM | HKDF-SHA512 | SHA-512 | P521 | MLS_256_DHKEMP521_AES256GCM_SHA512_P521 | 5 | @noble/curves |
|
|
48
|
+
| DHKEM-X448-HKDF-SHA512 | CHACHA20POLY1305 | HKDF-SHA512 | SHA-512 | Ed448 | MLS_256_DHKEMX448_CHACHA20POLY1305_SHA512_Ed448 | 6 | @hpke/chacha20poly1305, @noble/curves |
|
|
49
|
+
| DHKEM-P384-HKDF-SHA384 | AES256GCM | HKDF-SHA384 | SHA-384 | P384 | MLS_256_DHKEMP384_AES256GCM_SHA384_P384 | 7 | @noble/curves |
|
|
50
|
+
| ML-KEM-512 | AES256GCM | HKDF-SHA256 | SHA-256 | Ed25519 | MLS_128_MLKEM512_AES128GCM_SHA256_Ed25519 | 77 | @hpke/ml-kem, @noble/curves |
|
|
51
|
+
| ML-KEM-512 | CHACHA20POLY1305 | HKDF-SHA256 | SHA-256 | Ed25519 | MLS_128_MLKEM512_CHACHA20POLY1305_SHA256_Ed25519 | 78 | @hpke/ml-kem, @hpke/chacha20poly1305, @noble/curves |
|
|
52
|
+
| ML-KEM-768 | AES256GCM | HKDF-SHA384 | SHA-384 | Ed25519 | MLS_256_MLKEM768_AES256GCM_SHA384_Ed25519 | 79 | @hpke/ml-kem, @noble/curves |
|
|
53
|
+
| ML-KEM-768 | CHACHA20POLY1305 | HKDF-SHA384 | SHA-384 | Ed25519 | MLS_256_MLKEM768_CHACHA20POLY1305_SHA384_Ed25519 | 80 | @hpke/ml-kem, @hpke/chacha20poly1305, @noble/curves |
|
|
54
|
+
| ML-KEM-1024 | AES256GCM | HKDF-SHA512 | SHA-512 | Ed25519 | MLS_256_MLKEM1024_AES256GCM_SHA512_Ed25519 | 81 | @hpke/ml-kem, @noble/curves |
|
|
55
|
+
| ML-KEM-1024 | CHACHA20POLY1305 | HKDF-SHA512 | SHA-512 | Ed25519 | MLS_256_MLKEM1024_CHACHA20POLY1305_SHA512_Ed25519 | 82 | @hpke/ml-kem, @hpke/chacha20poly1305, @noble/curves |
|
|
56
|
+
| X-Wing | AES256GCM | HKDF-SHA512 | SHA-512 | Ed25519 | MLS_256_XWING_AES256GCM_SHA512_Ed25519 | 83 | @hpke/hybridkem-x-wing, @noble/curves |
|
|
57
|
+
| X-Wing | CHACHA20POLY1305 | HKDF-SHA512 | SHA-512 | Ed25519 | MLS_256_XWING_CHACHA20POLY1305_SHA512_Ed25519 | 84 | @hpke/hybridkem-x-wing, @hpke/chacha20poly1305, @noble/curves |
|
|
58
|
+
| ML-KEM-1024 | AES256GCM | HKDF-SHA512 | SHA-512 | ML-DSA-87 | MLS_256_MLKEM1024_AES256GCM_SHA512_MLDSA78 | 85 | @hpke/ml-kem, @noble/post-quantum |
|
|
59
|
+
| ML-KEM-1024 | CHACHA20POLY1305 | HKDF-SHA512 | SHA-512 | ML-DSA-87 | MLS_256_MLKEM1024_CHACHA20POLY1305_SHA512_MLDSA78 | 86 | @hpke/ml-kem, @hpke/chacha20poly1305, @noble/post-quantum |
|
|
60
|
+
| X-Wing | AES256GCM | HKDF-SHA512 | SHA-512 | ML-DSA-87 | MLS_256_XWING_AES256GCM_SHA512_MLDSA78 | 87 | @hpke/hybridkem-x-wing, @noble/post-quantum |
|
|
61
|
+
| X-Wing | CHACHA20POLY1305 | HKDF-SHA512 | SHA-512 | ML-DSA-87 | MLS_256_XWING_CHACHA20POLY1305_SHA512_MLDSA78 | 88 | @hpke/hybridkem-x-wing, @hpke/chacha20poly1305, @noble/post-quantum |
|
|
62
|
+
|
|
63
|
+
## Security Disclaimer
|
|
64
|
+
|
|
65
|
+
This library has not undergone a formal security audit. While care has been taken to implement the MLS protocol correctly and securely, it may contain undiscovered vulnerabilities. If you plan to use this library in a production or security-critical context, proceed with caution and consider conducting an independent security review.
|
|
66
|
+
|
|
67
|
+
## Basic Usage
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
import {
|
|
71
|
+
createApplicationMessage,
|
|
72
|
+
createCommit,
|
|
73
|
+
createGroup,
|
|
74
|
+
joinGroup,
|
|
75
|
+
processPrivateMessage,
|
|
76
|
+
getCiphersuiteImpl,
|
|
77
|
+
getCiphersuiteFromName,
|
|
78
|
+
Credential,
|
|
79
|
+
defaultCapabilities,
|
|
80
|
+
defaultLifetime,
|
|
81
|
+
emptyPskIndex,
|
|
82
|
+
generateKeyPackage,
|
|
83
|
+
encodeMlsMessage,
|
|
84
|
+
decodeMlsMessage,
|
|
85
|
+
Proposal,
|
|
86
|
+
} from "ts-mls"
|
|
87
|
+
|
|
88
|
+
const impl = await getCiphersuiteImpl(getCiphersuiteFromName("MLS_256_XWING_AES256GCM_SHA512_Ed25519"))
|
|
89
|
+
|
|
90
|
+
// alice generates her key package
|
|
91
|
+
const aliceCredential: Credential = { credentialType: "basic", identity: new TextEncoder().encode("alice") }
|
|
92
|
+
const alice = await generateKeyPackage(aliceCredential, defaultCapabilities(), defaultLifetime, [], impl)
|
|
93
|
+
|
|
94
|
+
const groupId = new TextEncoder().encode("group1")
|
|
95
|
+
|
|
96
|
+
// alice creates a new group
|
|
97
|
+
let aliceGroup = await createGroup(groupId, alice.publicPackage, alice.privatePackage, [], impl)
|
|
98
|
+
|
|
99
|
+
// bob generates her key package
|
|
100
|
+
const bobCredential: Credential = { credentialType: "basic", identity: new TextEncoder().encode("bob") }
|
|
101
|
+
const bob = await generateKeyPackage(bobCredential, defaultCapabilities(), defaultLifetime, [], impl)
|
|
102
|
+
|
|
103
|
+
// bob sends keyPackage to alice
|
|
104
|
+
const keyPackageMessage = encodeMlsMessage({
|
|
105
|
+
keyPackage: bob.publicPackage,
|
|
106
|
+
wireformat: "mls_key_package",
|
|
107
|
+
version: "mls10",
|
|
108
|
+
})
|
|
109
|
+
|
|
110
|
+
// alice decodes bob's keyPackage
|
|
111
|
+
const decodedKeyPackage = decodeMlsMessage(keyPackageMessage, 0)![0]
|
|
112
|
+
|
|
113
|
+
if (decodedKeyPackage.wireformat !== "mls_key_package") throw new Error("Expected key package")
|
|
114
|
+
|
|
115
|
+
// alice creates proposal to add bob
|
|
116
|
+
const addBobProposal: Proposal = {
|
|
117
|
+
proposalType: "add",
|
|
118
|
+
add: {
|
|
119
|
+
keyPackage: decodedKeyPackage.keyPackage,
|
|
120
|
+
},
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// alice commits
|
|
124
|
+
const commitResult = await createCommit(aliceGroup, emptyPskIndex, false, [addBobProposal], impl)
|
|
125
|
+
|
|
126
|
+
aliceGroup = commitResult.newState
|
|
127
|
+
|
|
128
|
+
// alice sends welcome message to bob
|
|
129
|
+
const encodedWelcome = encodeMlsMessage({
|
|
130
|
+
welcome: commitResult.welcome!,
|
|
131
|
+
wireformat: "mls_welcome",
|
|
132
|
+
version: "mls10",
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
// bob decodes the welcome message
|
|
136
|
+
const decodedWelcome = decodeMlsMessage(encodedWelcome, 0)![0]
|
|
137
|
+
|
|
138
|
+
if (decodedWelcome.wireformat !== "mls_welcome") throw new Error("Expected welcome")
|
|
139
|
+
|
|
140
|
+
// bob creates his own group state
|
|
141
|
+
let bobGroup = await joinGroup(
|
|
142
|
+
decodedWelcome.welcome,
|
|
143
|
+
bob.publicPackage,
|
|
144
|
+
bob.privatePackage,
|
|
145
|
+
emptyPskIndex,
|
|
146
|
+
impl,
|
|
147
|
+
aliceGroup.ratchetTree,
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
const messageToBob = new TextEncoder().encode("Hello bob!")
|
|
151
|
+
|
|
152
|
+
// alice creates a message to the group
|
|
153
|
+
const aliceCreateMessageResult = await createApplicationMessage(aliceGroup, messageToBob, impl)
|
|
154
|
+
|
|
155
|
+
aliceGroup = aliceCreateMessageResult.newState
|
|
156
|
+
|
|
157
|
+
// alice sends the message to bob
|
|
158
|
+
const encodedPrivateMessageAlice = encodeMlsMessage({
|
|
159
|
+
privateMessage: aliceCreateMessageResult.privateMessage,
|
|
160
|
+
wireformat: "mls_private_message",
|
|
161
|
+
version: "mls10",
|
|
162
|
+
})
|
|
163
|
+
|
|
164
|
+
// bob decodes the message
|
|
165
|
+
const decodedPrivateMessageAlice = decodeMlsMessage(encodedPrivateMessageAlice, 0)![0]
|
|
166
|
+
|
|
167
|
+
if (decodedPrivateMessageAlice.wireformat !== "mls_private_message") throw new Error("Expected private message")
|
|
168
|
+
|
|
169
|
+
// bob receives the message
|
|
170
|
+
const bobProcessMessageResult = await processPrivateMessage(
|
|
171
|
+
bobGroup,
|
|
172
|
+
decodedPrivateMessageAlice.privateMessage,
|
|
173
|
+
emptyPskIndex,
|
|
174
|
+
impl,
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
bobGroup = bobProcessMessageResult.newState
|
|
178
|
+
|
|
179
|
+
if (bobProcessMessageResult.kind === "newState") throw new Error("Expected application message")
|
|
180
|
+
|
|
181
|
+
console.log(bobProcessMessageResult.message)
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Documentation
|
|
185
|
+
|
|
186
|
+
Please visit the [/docs directory](docs/) for further documentation on different scenarios.
|
|
187
|
+
|
|
188
|
+
## Contributing
|
|
189
|
+
|
|
190
|
+
We welcome contributions! Please read our [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to set up your environment, run checks, and submit changes.
|
|
191
|
+
|
|
192
|
+
# License
|
|
193
|
+
|
|
194
|
+
[MIT](LICENSE)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Decoder } from "./tlsDecoder";
|
|
2
|
+
import { Encoder } from "./tlsEncoder";
|
|
3
|
+
export declare const encodeUint8: Encoder<number>;
|
|
4
|
+
export declare const decodeUint8: Decoder<number>;
|
|
5
|
+
export declare const encodeUint16: Encoder<number>;
|
|
6
|
+
export declare const decodeUint16: Decoder<number>;
|
|
7
|
+
export declare const encodeUint32: Encoder<number>;
|
|
8
|
+
export declare const decodeUint32: Decoder<number>;
|
|
9
|
+
export declare const encodeUint64: Encoder<bigint>;
|
|
10
|
+
export declare const decodeUint64: Decoder<bigint>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeUint64 = exports.encodeUint64 = exports.decodeUint32 = exports.encodeUint32 = exports.decodeUint16 = exports.encodeUint16 = exports.decodeUint8 = exports.encodeUint8 = void 0;
|
|
4
|
+
const encodeUint8 = (n) => {
|
|
5
|
+
const buffer = new ArrayBuffer(1);
|
|
6
|
+
const view = new DataView(buffer);
|
|
7
|
+
view.setUint8(0, n);
|
|
8
|
+
return new Uint8Array(buffer);
|
|
9
|
+
};
|
|
10
|
+
exports.encodeUint8 = encodeUint8;
|
|
11
|
+
const decodeUint8 = (b, offset) => {
|
|
12
|
+
const value = b.at(offset);
|
|
13
|
+
return value !== undefined ? [value, 1] : undefined;
|
|
14
|
+
};
|
|
15
|
+
exports.decodeUint8 = decodeUint8;
|
|
16
|
+
const encodeUint16 = (n) => {
|
|
17
|
+
const buffer = new ArrayBuffer(2);
|
|
18
|
+
const view = new DataView(buffer);
|
|
19
|
+
view.setUint16(0, n);
|
|
20
|
+
return new Uint8Array(buffer);
|
|
21
|
+
};
|
|
22
|
+
exports.encodeUint16 = encodeUint16;
|
|
23
|
+
const decodeUint16 = (b, offset) => {
|
|
24
|
+
const view = new DataView(b.buffer, b.byteOffset, b.byteLength);
|
|
25
|
+
try {
|
|
26
|
+
return [view.getUint16(offset), 2];
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
if (e instanceof RangeError)
|
|
30
|
+
return undefined;
|
|
31
|
+
throw e;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
exports.decodeUint16 = decodeUint16;
|
|
35
|
+
const encodeUint32 = (n) => {
|
|
36
|
+
const buffer = new ArrayBuffer(4);
|
|
37
|
+
const view = new DataView(buffer);
|
|
38
|
+
view.setUint32(0, n);
|
|
39
|
+
return new Uint8Array(buffer);
|
|
40
|
+
};
|
|
41
|
+
exports.encodeUint32 = encodeUint32;
|
|
42
|
+
const decodeUint32 = (b, offset) => {
|
|
43
|
+
const view = new DataView(b.buffer, b.byteOffset, b.byteLength);
|
|
44
|
+
try {
|
|
45
|
+
return [view.getUint32(offset), 4];
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
if (e instanceof RangeError)
|
|
49
|
+
return undefined;
|
|
50
|
+
throw e;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
exports.decodeUint32 = decodeUint32;
|
|
54
|
+
const encodeUint64 = (n) => {
|
|
55
|
+
const buffer = new ArrayBuffer(8);
|
|
56
|
+
const view = new DataView(buffer);
|
|
57
|
+
view.setBigUint64(0, n);
|
|
58
|
+
return new Uint8Array(buffer);
|
|
59
|
+
};
|
|
60
|
+
exports.encodeUint64 = encodeUint64;
|
|
61
|
+
const decodeUint64 = (b, offset) => {
|
|
62
|
+
const view = new DataView(b.buffer, b.byteOffset, b.byteLength);
|
|
63
|
+
try {
|
|
64
|
+
return [view.getBigUint64(offset), 8];
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
if (e instanceof RangeError)
|
|
68
|
+
return undefined;
|
|
69
|
+
throw e;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
exports.decodeUint64 = decodeUint64;
|
|
73
|
+
//# sourceMappingURL=number.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/codec/number.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeOptional = encodeOptional;
|
|
4
|
+
exports.decodeOptional = decodeOptional;
|
|
5
|
+
const number_1 = require("./number");
|
|
6
|
+
function encodeOptional(encodeT) {
|
|
7
|
+
return (t) => (t ? prependPresenceOctet(encodeT(t)) : new Uint8Array([0x0]));
|
|
8
|
+
}
|
|
9
|
+
function decodeOptional(decodeT) {
|
|
10
|
+
return (b, offset) => {
|
|
11
|
+
const presenceOctet = (0, number_1.decodeUint8)(b, offset)?.[0];
|
|
12
|
+
if (presenceOctet == 1) {
|
|
13
|
+
const result = decodeT(b, offset + 1);
|
|
14
|
+
return result === undefined ? undefined : [result[0], result[1] + 1];
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
return [undefined, 1];
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function prependPresenceOctet(v) {
|
|
22
|
+
return new Uint8Array([...(0, number_1.encodeUint8)(0x1), ...v]);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=optional.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional.js","sourceRoot":"","sources":["../../src/codec/optional.ts"],"names":[],"mappings":";;AAIA,wCAEC;AAED,wCAUC;AAlBD,qCAAmD;AAInD,SAAgB,cAAc,CAAI,OAAmB;IACnD,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC9E,CAAC;AAED,SAAgB,cAAc,CAAI,OAAmB;IACnD,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QACnB,MAAM,aAAa,GAAG,IAAA,oBAAW,EAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACjD,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;YACrC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACtE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QACvB,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAa;IACzC,OAAO,IAAI,UAAU,CAAC,CAAC,GAAG,IAAA,oBAAW,EAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;AACpD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type Decoder<T> = (b: Uint8Array, offset: number) => [T, number] | undefined;
|
|
2
|
+
export declare function mapDecoder<T, U>(dec: Decoder<T>, f: (t: T) => U): Decoder<U>;
|
|
3
|
+
export declare function mapDecodersOption<T extends unknown[], R>(decoders: {
|
|
4
|
+
[K in keyof T]: Decoder<T[K]>;
|
|
5
|
+
}, f: (...args: T) => R | undefined): Decoder<R>;
|
|
6
|
+
export declare function mapDecoders<T extends unknown[], R>(decoders: {
|
|
7
|
+
[K in keyof T]: Decoder<T[K]>;
|
|
8
|
+
}, f: (...args: T) => R): Decoder<R>;
|
|
9
|
+
export declare function mapDecoderOption<T, U>(dec: Decoder<T>, f: (t: T) => U | undefined): Decoder<U>;
|
|
10
|
+
export declare function flatMapDecoder<T, U>(dec: Decoder<T>, f: (t: T) => Decoder<U>): Decoder<U>;
|
|
11
|
+
export declare function orDecoder<T, U>(decT: Decoder<T>, decU: Decoder<U>): Decoder<T | U>;
|
|
12
|
+
export declare function composeDecoders<T, U>(dt: Decoder<T>, du: Decoder<U>): Decoder<[T, U]>;
|
|
13
|
+
export declare function flatMapTupleDecoder<T, U>(dec: Decoder<T>, f: (t: T) => Decoder<U>): Decoder<[T, U]>;
|
|
14
|
+
export declare function flatMapDecoderAndMap<T, U, V>(dec: Decoder<T>, f: (t: T) => Decoder<U>, g: (t: T, u: U) => V): Decoder<V>;
|
|
15
|
+
export declare function succeedDecoder<T>(t: T): Decoder<T>;
|
|
16
|
+
export declare const decodeVoid: Decoder<void>;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeVoid = void 0;
|
|
4
|
+
exports.mapDecoder = mapDecoder;
|
|
5
|
+
exports.mapDecodersOption = mapDecodersOption;
|
|
6
|
+
exports.mapDecoders = mapDecoders;
|
|
7
|
+
exports.mapDecoderOption = mapDecoderOption;
|
|
8
|
+
exports.flatMapDecoder = flatMapDecoder;
|
|
9
|
+
exports.orDecoder = orDecoder;
|
|
10
|
+
exports.composeDecoders = composeDecoders;
|
|
11
|
+
exports.flatMapTupleDecoder = flatMapTupleDecoder;
|
|
12
|
+
exports.flatMapDecoderAndMap = flatMapDecoderAndMap;
|
|
13
|
+
exports.succeedDecoder = succeedDecoder;
|
|
14
|
+
function mapDecoder(dec, f) {
|
|
15
|
+
return (b, offset) => {
|
|
16
|
+
const x = dec(b, offset);
|
|
17
|
+
if (x !== undefined) {
|
|
18
|
+
const [t, l] = x;
|
|
19
|
+
return [f(t), l];
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function mapDecodersOption(decoders, f) {
|
|
24
|
+
return (b, offset) => {
|
|
25
|
+
const initial = mapDecoders(decoders, f)(b, offset);
|
|
26
|
+
if (initial === undefined)
|
|
27
|
+
return undefined;
|
|
28
|
+
else {
|
|
29
|
+
const [r, len] = initial;
|
|
30
|
+
return r !== undefined ? [r, len] : undefined;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function mapDecoders(decoders, f) {
|
|
35
|
+
return (b, offset) => {
|
|
36
|
+
const result = decoders.reduce((acc, decoder) => {
|
|
37
|
+
if (!acc)
|
|
38
|
+
return undefined;
|
|
39
|
+
const decoded = decoder(b, acc.offset);
|
|
40
|
+
if (!decoded)
|
|
41
|
+
return undefined;
|
|
42
|
+
const [value, length] = decoded;
|
|
43
|
+
return {
|
|
44
|
+
values: [...acc.values, value],
|
|
45
|
+
offset: acc.offset + length,
|
|
46
|
+
totalLength: acc.totalLength + length,
|
|
47
|
+
};
|
|
48
|
+
}, { values: [], offset, totalLength: 0 });
|
|
49
|
+
if (!result)
|
|
50
|
+
return;
|
|
51
|
+
return [f(...result.values), result.totalLength];
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function mapDecoderOption(dec, f) {
|
|
55
|
+
return (b, offset) => {
|
|
56
|
+
const x = dec(b, offset);
|
|
57
|
+
if (x !== undefined) {
|
|
58
|
+
const [t, l] = x;
|
|
59
|
+
const u = f(t);
|
|
60
|
+
return u !== undefined ? [u, l] : undefined;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function flatMapDecoder(dec, f) {
|
|
65
|
+
return flatMapDecoderAndMap(dec, f, (_t, u) => u);
|
|
66
|
+
}
|
|
67
|
+
function orDecoder(decT, decU) {
|
|
68
|
+
return (b, offset) => {
|
|
69
|
+
const t = decT(b, offset);
|
|
70
|
+
return t ? t : decU(b, offset);
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function composeDecoders(dt, du) {
|
|
74
|
+
return mapDecoders([dt, du], (t, u) => [t, u]);
|
|
75
|
+
}
|
|
76
|
+
function flatMapTupleDecoder(dec, f) {
|
|
77
|
+
return flatMapDecoderAndMap(dec, f, (t, u) => [t, u]);
|
|
78
|
+
}
|
|
79
|
+
function flatMapDecoderAndMap(dec, f, g) {
|
|
80
|
+
return (b, offset) => {
|
|
81
|
+
const decodedT = dec(b, offset);
|
|
82
|
+
if (decodedT !== undefined) {
|
|
83
|
+
const [t, len] = decodedT;
|
|
84
|
+
const decoderU = f(t);
|
|
85
|
+
const decodedU = decoderU(b, offset + len);
|
|
86
|
+
if (decodedU !== undefined) {
|
|
87
|
+
const [u, len2] = decodedU;
|
|
88
|
+
return [g(t, u), len + len2];
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function succeedDecoder(t) {
|
|
94
|
+
return () => [t, 0];
|
|
95
|
+
}
|
|
96
|
+
const decodeVoid = () => [undefined, 0];
|
|
97
|
+
exports.decodeVoid = decodeVoid;
|
|
98
|
+
//# sourceMappingURL=tlsDecoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tlsDecoder.js","sourceRoot":"","sources":["../../src/codec/tlsDecoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type Encoder<T> = (t: T) => Uint8Array;
|
|
2
|
+
export declare function contramapEncoders<T extends unknown[], R>(encoders: {
|
|
3
|
+
[K in keyof T]: Encoder<T[K]>;
|
|
4
|
+
}, toTuple: (input: R) => T): Encoder<R>;
|
|
5
|
+
export declare function composeEncoders<T extends unknown[]>(encoders: {
|
|
6
|
+
[K in keyof T]: Encoder<T[K]>;
|
|
7
|
+
}): Encoder<T>;
|
|
8
|
+
export declare function contramapEncoder<T, U>(enc: Encoder<T>, f: (u: U) => Readonly<T>): Encoder<U>;
|
|
9
|
+
export declare function encodeVoid<T>(): Encoder<T>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.contramapEncoders = contramapEncoders;
|
|
4
|
+
exports.composeEncoders = composeEncoders;
|
|
5
|
+
exports.contramapEncoder = contramapEncoder;
|
|
6
|
+
exports.encodeVoid = encodeVoid;
|
|
7
|
+
function contramapEncoders(encoders, toTuple) {
|
|
8
|
+
return (value) => {
|
|
9
|
+
const values = toTuple(value);
|
|
10
|
+
const encodedParts = encoders.map((encoder, i) => encoder(values[i]));
|
|
11
|
+
const totalLength = encodedParts.reduce((sum, part) => sum + part.length, 0);
|
|
12
|
+
const result = new Uint8Array(totalLength);
|
|
13
|
+
encodedParts.reduce((offset, part) => {
|
|
14
|
+
result.set(part, offset);
|
|
15
|
+
return offset + part.length;
|
|
16
|
+
}, 0);
|
|
17
|
+
return result;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function composeEncoders(encoders) {
|
|
21
|
+
return (values) => contramapEncoders(encoders, (t) => t)(values);
|
|
22
|
+
}
|
|
23
|
+
function contramapEncoder(enc, f) {
|
|
24
|
+
return (u) => enc(f(u));
|
|
25
|
+
}
|
|
26
|
+
function encodeVoid() {
|
|
27
|
+
return () => new Uint8Array();
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=tlsEncoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tlsEncoder.js","sourceRoot":"","sources":["../../src/codec/tlsEncoder.ts"],"names":[],"mappings":";;AAEA,8CAkBC;AAED,0CAEC;AAED,4CAEC;AAED,gCAEC;AA9BD,SAAgB,iBAAiB,CAC/B,QAA2C,EAC3C,OAAwB;IAExB,OAAO,CAAC,KAAQ,EAAE,EAAE;QAClB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QAE7B,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrE,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAE5E,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;QAC1C,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACnC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACxB,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC7B,CAAC,EAAE,CAAC,CAAC,CAAA;QAEL,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAED,SAAgB,eAAe,CAAsB,QAA2C;IAC9F,OAAO,CAAC,MAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAC1E,CAAC;AAED,SAAgB,gBAAgB,CAAO,GAAe,EAAE,CAAwB;IAC9E,OAAO,CAAC,CAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5B,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO,GAAG,EAAE,CAAC,IAAI,UAAU,EAAE,CAAA;AAC/B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Decoder } from "./tlsDecoder";
|
|
2
|
+
import { Encoder } from "./tlsEncoder";
|
|
3
|
+
export declare const encodeVarLenData: Encoder<Uint8Array>;
|
|
4
|
+
export declare function determineLength(data: Uint8Array, offset?: number): {
|
|
5
|
+
length: number;
|
|
6
|
+
lengthFieldSize: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const decodeVarLenData: Decoder<Uint8Array>;
|
|
9
|
+
export declare function encodeVarLenType<T>(enc: Encoder<T>): Encoder<T[]>;
|
|
10
|
+
export declare function decodeVarLenType<T>(dec: Decoder<T>): Decoder<T[]>;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeVarLenData = exports.encodeVarLenData = void 0;
|
|
4
|
+
exports.determineLength = determineLength;
|
|
5
|
+
exports.encodeVarLenType = encodeVarLenType;
|
|
6
|
+
exports.decodeVarLenType = decodeVarLenType;
|
|
7
|
+
const encodeVarLenData = (data) => {
|
|
8
|
+
const lenBytes = encodeLength(data.length);
|
|
9
|
+
const result = new Uint8Array(lenBytes.length + data.length);
|
|
10
|
+
result.set(lenBytes, 0);
|
|
11
|
+
result.set(data, lenBytes.length);
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
exports.encodeVarLenData = encodeVarLenData;
|
|
15
|
+
function encodeLength(len) {
|
|
16
|
+
if (len < 64) {
|
|
17
|
+
// 1-byte length: 00xxxxxx
|
|
18
|
+
return new Uint8Array([len & 0b00111111]);
|
|
19
|
+
}
|
|
20
|
+
else if (len < 16384) {
|
|
21
|
+
// 2-byte length: 01xxxxxx xxxxxxxx
|
|
22
|
+
return new Uint8Array([((len >> 8) & 0b00111111) | 0b01000000, len & 0xff]);
|
|
23
|
+
}
|
|
24
|
+
else if (len < 0x40000000) {
|
|
25
|
+
// 4-byte length: 10xxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
|
|
26
|
+
return new Uint8Array([((len >> 24) & 0b00111111) | 0b10000000, (len >> 16) & 0xff, (len >> 8) & 0xff, len & 0xff]);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
throw new Error("Length too large to encode (max is 2^30 - 1)");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function determineLength(data, offset = 0) {
|
|
33
|
+
if (offset >= data.length) {
|
|
34
|
+
throw new Error("Offset beyond buffer");
|
|
35
|
+
}
|
|
36
|
+
const firstByte = data[offset];
|
|
37
|
+
const prefix = firstByte >> 6;
|
|
38
|
+
if (prefix === 0) {
|
|
39
|
+
return { length: firstByte & 0b00111111, lengthFieldSize: 1 };
|
|
40
|
+
}
|
|
41
|
+
else if (prefix === 1) {
|
|
42
|
+
if (offset + 2 > data.length)
|
|
43
|
+
throw new Error("Incomplete 2-byte length");
|
|
44
|
+
return { length: ((firstByte & 0b00111111) << 8) | data[offset + 1], lengthFieldSize: 2 };
|
|
45
|
+
}
|
|
46
|
+
else if (prefix === 2) {
|
|
47
|
+
if (offset + 4 > data.length)
|
|
48
|
+
throw new Error("Incomplete 4-byte length");
|
|
49
|
+
return {
|
|
50
|
+
length: ((firstByte & 0b00111111) << 24) |
|
|
51
|
+
(data[offset + 1] << 16) |
|
|
52
|
+
(data[offset + 2] << 8) |
|
|
53
|
+
data[offset + 3],
|
|
54
|
+
lengthFieldSize: 4,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
throw new Error("8-byte length not supported in this implementation");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const decodeVarLenData = (buf, offset) => {
|
|
62
|
+
if (offset >= buf.length) {
|
|
63
|
+
throw new Error("Offset beyond buffer");
|
|
64
|
+
}
|
|
65
|
+
const { length, lengthFieldSize } = determineLength(buf, offset);
|
|
66
|
+
const totalBytes = lengthFieldSize + length;
|
|
67
|
+
if (offset + totalBytes > buf.length) {
|
|
68
|
+
throw new Error("Data length exceeds buffer");
|
|
69
|
+
}
|
|
70
|
+
const data = buf.subarray(offset + lengthFieldSize, offset + totalBytes);
|
|
71
|
+
return [data, totalBytes];
|
|
72
|
+
};
|
|
73
|
+
exports.decodeVarLenData = decodeVarLenData;
|
|
74
|
+
function encodeVarLenType(enc) {
|
|
75
|
+
return (data) => {
|
|
76
|
+
let x = new Uint8Array();
|
|
77
|
+
for (const t of data) {
|
|
78
|
+
x = new Uint8Array([...x, ...enc(t)]);
|
|
79
|
+
}
|
|
80
|
+
return (0, exports.encodeVarLenData)(x);
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function decodeVarLenType(dec) {
|
|
84
|
+
return (b, offset) => {
|
|
85
|
+
const d = (0, exports.decodeVarLenData)(b, offset);
|
|
86
|
+
if (d === undefined)
|
|
87
|
+
return;
|
|
88
|
+
const [totalBytes, totalLength] = d;
|
|
89
|
+
let cursor = 0;
|
|
90
|
+
const result = [];
|
|
91
|
+
while (cursor < totalBytes.length) {
|
|
92
|
+
const item = dec(totalBytes, cursor);
|
|
93
|
+
if (item === undefined)
|
|
94
|
+
return undefined;
|
|
95
|
+
const [value, len] = item;
|
|
96
|
+
result.push(value);
|
|
97
|
+
cursor += len;
|
|
98
|
+
}
|
|
99
|
+
return [result, totalLength];
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=variableLength.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variableLength.js","sourceRoot":"","sources":["../../src/codec/variableLength.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function encodeVarLenData(data: Uint8Array): Uint8Array;
|
|
2
|
+
export declare function determineLength(data: Uint8Array, offset?: number): {
|
|
3
|
+
length: number;
|
|
4
|
+
lengthFieldSize: number;
|
|
5
|
+
};
|
|
6
|
+
export declare function decodeVarLenData(buf: Uint8Array, offset?: number): {
|
|
7
|
+
data: Uint8Array;
|
|
8
|
+
length: number;
|
|
9
|
+
totalBytesRead: number;
|
|
10
|
+
};
|