ts-mls
A Messaging Layer Security (RFC 9420, MLS) implementation in TypeScript
파일 탐색기
최종 버전 다운로드 (.zip)- ci.yml
- release.yml
- dependabot.yml
- ts-mls-v1.api.md
- ts-mls.api.md
- basic.json
- bench.json
- index.ts
- 01-basic-functionality.md
- 02-ratchet-tree-extension.md
- 03-three-party-join.md
- 04-remove.md
- 05-update.md
- 06-multiple-joins-at-once.md
- 07-external-join.md
- 08-external-psk.md
- 09-resumption.md
- 10-reinit.md
- 11-reject-incoming-message.md
- 12-custom-extensions.md
- 13-groupinfo-custom-extensions.md
- 14-group-state-inspection.md
- 15-client-state-serialization.md
- 16-custom-ciphersuite.md
- 17-custom-crypto-provider.md
- 18-custom-proposals.md
- 19-authenticated-data.md
- 20-authentication-service.md
- migration-guide.md
- README.md
- mls_client.proto
- conversions.ts
- server.ts
- service.ts
- state.ts
- Dockerfile
- package.json
- pnpm-lock.yaml
- README.md
- tsconfig.json
- number.ts
- optional.ts
- string.ts
- tlsDecoder.ts
- tlsEncoder.ts
- variableLength.ts
- makeAead.ts
- makeDhKem.ts
- makeHashImpl.ts
- makeHpke.ts
- makeKdfImpl.ts
- makeNobleSignatureImpl.ts
- provider.ts
- rng.ts
- makeAead.ts
- makeHashImpl.ts
- provider.ts
- hpke.ts
- aead.ts
- ciphersuite.ts
- getCiphersuiteImpl.ts
- hash.ts
- hpke.ts
- kdf.ts
- kem.ts
- provider.ts
- rng.ts
- signature.ts
- addToMap.ts
- array.ts
- brand.ts
- byteArray.ts
- constantTimeCompare.ts
- enumHelpers.ts
- authenticatedContent.ts
- authenticationService.ts
- capabilities.ts
- clientConfig.ts
- clientState.ts
- commit.ts
- contentType.ts
- createCommit.ts
- createMessage.ts
- credential.ts
- customCredential.ts
- defaultCapabilities.ts
- defaultCredentialType.ts
- defaultExtensionType.ts
- defaultProposalType.ts
- epochReceiverData.ts
- extension.ts
- externalProposal.ts
- externalSender.ts
- framedContent.ts
- grease.ts
- groupActiveState.ts
- groupContext.ts
- groupedProposals.ts
- groupInfo.ts
- groupSecrets.ts
- hpkeCiphertext.ts
- incomingMessageAction.ts
- index.ts
- keyPackage.ts
- keyPackageEqualityConfig.ts
- keyRetentionConfig.ts
- keySchedule.ts
- leafNode.ts
- leafNodePatch.ts
- leafNodeSource.ts
- lifetime.ts
- lifetimeConfig.ts
- message.ts
- messageProtection.ts
- messageProtectionPublic.ts
- mlsContext.ts
- mlsError.ts
- nodeType.ts
- paddingConfig.ts
- parentHash.ts
- parentNode.ts
- pathSecrets.ts
- presharedkey.ts
- privateKeyPath.ts
- privateMessage.ts
- processMessages.ts
- proposal.ts
- proposalOrRefType.ts
- protocolVersion.ts
- pskIndex.ts
- publicMessage.ts
- ratchetTree.ts
- requiredCapabilities.ts
- resumption.ts
- secretTree.ts
- sender.ts
- signatureKeyPair.ts
- transcriptHash.ts
- treeHash.ts
- treemath.ts
- unappliedProposals.ts
- updatePath.ts
- validation.ts
- welcome.ts
- wireformat.ts
- authenticatedContent.test.ts
- capabilities.test.ts
- commit.test.ts
- composite.test.ts
- contentType.test.ts
- credential.test.ts
- encryptedGroupSecrets.test.ts
- epochReceiverData.test.ts
- extension.test.ts
- externalSender.test.ts
- framedContent.test.ts
- groupActiveState.test.ts
- groupContext.test.ts
- groupInfo.test.ts
- groupSecrets.test.ts
- hpkeCiphertext.test.ts
- keyPackage.test.ts
- keyPackageTBS.test.ts
- leafNode.test.ts
- leafNodeData.test.ts
- leafNodeSource.test.ts
- lifetime.test.ts
- maxSize.test.ts
- message.test.ts
- nodeType.test.ts
- number.test.ts
- optional.test.ts
- padding.test.ts
- parentHash.test.ts
- parentNode.test.ts
- presharedkey.test.ts
- privateContentAAD.test.ts
- privateKeyPackage.test.ts
- privateMessage.test.ts
- proposal.test.ts
- proposalOrRef.test.ts
- proposalOrRefType.test.ts
- proposalWithSender.test.ts
- protocolVersion.test.ts
- pskId.test.ts
- pskInfo.test.ts
- pskLabel.test.ts
- pskType.test.ts
- publicMessage.test.ts
- ratchetTree.test.ts
- requiredCapabilities.test.ts
- resumptionPSKUsage.test.ts
- reuseGuard.test.ts
- roundtrip.ts
- sender.test.ts
- senderData.test.ts
- senderDataAAD.test.ts
- senderType.test.ts
- transcriptHash.test.ts
- treeHash.test.ts
- unappliedProposals.test.ts
- updatePath.test.ts
- updatePathNode.test.ts
- varLengthEncoding.test.ts
- welcome.test.ts
- wireformat.test.ts
- aead.test.ts
- hpke.test.ts
- keyMatch.ts
- addPlusPathCommit.test.ts
- addProposal.test.ts
- authenticatedData.test.ts
- cleanupConsumed.test.ts
- clientStateSerialization.test.ts
- common.ts
- customCiphersuite.test.ts
- customCryptoProvider.test.ts
- customExtensions.test.ts
- customGroupInfoExtensions.test.ts
- customProposal.test.ts
- epochOutOfOrder.test.ts
- externalAddProposal.test.ts
- externalJoin.test.ts
- externalJoinResync.test.ts
- externalProposal.test.ts
- externalProposalMultipleSenders.test.ts
- externalPsk.test.ts
- externalPskJoin.test.ts
- generationOutOfOrder.test.ts
- grease.test.ts
- groupContextExtensionsCommit.test.ts
- groupInfoExtensions.test.ts
- largeGroupFullLifecycle.test.ts
- leaveProposal.test.ts
- multipleJoinsAtOnce.test.ts
- oneToOneJoin.test.ts
- ratchetTreeExtension.test.ts
- reinit.test.ts
- rejectIncomingMessage.test.ts
- remove.test.ts
- requiredCapabilites.test.ts
- resumption.test.ts
- resumptionOptions.test.ts
- threePartyJoin.test.ts
- update.test.ts
- updateProposal.test.ts
- cryptoBasics.test.ts
- deserialization.test.ts
- keySchedule.test.ts
- messageProtection.test.ts
- messages.test.ts
- passiveClientScenarios.test.ts
- pskSecret.test.ts
- secretTree.test.ts
- transcriptHashes.test.ts
- treekem.test.ts
- treemath.test.ts
- treeOperations.test.ts
- treeValidation.test.ts
- welcome.test.ts
- proposalValidation.test.ts
- ratchetTreeValidation.test.ts
- resumptionValidation.test.ts
- base64.test.ts
- bytebuffer.test.ts
- clientState.test.ts
- credentialEquals.test.ts
- extensionsEqual.test.ts
- groupinfo.test.ts
- keyPackageExtensionSeparation.test.ts
- secretTreeDeletion.test.ts
- updatePath.test.ts
- crypto-basics.json
- deserialization.json
- key-schedule.json
- message-protection.json
- messages.json
- passive-client-handling-commit.json
- passive-client-random.json
- passive-client-welcome.json
- psk_secret.json
- secret-tree.json
- transcript-hashes.json
- tree-math.json
- tree-operations.json
- tree-validation.json
- treekem.json
- welcome.json
- .dockerignore
- .gitignore
- .prettierignore
- .prettierrc
- api-extractor.json
- CONTRIBUTING.md
- eslint.config.mjs
- knip.json
- LICENSE
- package.json
- pnpm-lock.yaml
- pnpm-workspace.yaml
- README.md
- SECURITY.md
- tsconfig.build.json
- tsconfig.docs.json
- tsconfig.json
- vitest.browser.config.ts
- vitest.config.ts
# 설치 가이드
1. 코드 내려받기
git clone https://github.com/LukaJCB/ts-mls
깃허브에서 프로젝트 코드 전체를 내 컴퓨터로 내려받습니다.
cd ts-mls
방금 내려받은 프로젝트 폴더 안으로 이동합니다.
2. Docker
쉬움 추천사전 준비물
- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- Docker Desktop 컨테이너를 빌드하고 실행하려면 필요합니다. 설치 후 실행해서 백그라운드에 켜두세요.
docker build -f interop/Dockerfile -t ts-mls .
Dockerfile을 기반으로 실행 가능한 이미지를 빌드합니다.
docker run -p 8080:80 ts-mls
빌드된 이미지를 실제 컨테이너로 실행합니다.
터미널에 docker compose ps 를 입력해 컨테이너들이 Up 상태인지 확인하세요. README에 포트 번호가 적혀있다면 브라우저에서 http://localhost:포트번호 로 접속해보세요.
3. Node.js
쉬움사전 준비물
npm install ts-mls
package.json에 명시된 라이브러리들을 내려받아 설치합니다.
yarn add ts-mls
이 명령어를 터미널에 그대로 입력해 실행하세요.
pnpm add ts-mls
이 명령어를 터미널에 그대로 입력해 실행하세요.
npm install @noble/curves
package.json에 명시된 라이브러리들을 내려받아 설치합니다.
yarn add @noble/curves
이 명령어를 터미널에 그대로 입력해 실행하세요.
명령어 실행 후 터미널에 나타나는 주소(보통 http://localhost:3000 형태)를 브라우저에서 열어보세요.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
// repository documentation
Was this content helpful?
(0 ratings)
