From e244d9cd8f0ab1af367b112549c5b29a536e6504 Mon Sep 17 00:00:00 2001 From: lukasIO Date: Thu, 29 Jun 2023 13:11:48 +0200 Subject: [PATCH] Experimental end-to-end encryption support (#557) --- .DS_Store | Bin 6148 -> 0 bytes .changeset/stupid-pans-sin.md | 5 + example/index.html | 24 + example/sample.ts | 73 ++- example/tsconfig.json | 2 + package.json | 22 +- protocol | 2 +- rollup.config.js | 33 +- rollup.config.worker.js | 25 + src/api/SignalClient.ts | 3 +- src/connectionHelper/checks/turn.ts | 1 + src/connectionHelper/checks/websocket.ts | 1 + src/e2ee/E2eeManager.ts | 357 +++++++++++++ src/e2ee/KeyProvider.ts | 73 +++ src/e2ee/constants.ts | 40 ++ src/e2ee/errors.ts | 16 + src/e2ee/index.ts | 3 + src/e2ee/types.ts | 160 ++++++ src/e2ee/utils.ts | 127 +++++ src/e2ee/worker/FrameCryptor.test.ts | 21 + src/e2ee/worker/FrameCryptor.ts | 614 +++++++++++++++++++++++ src/e2ee/worker/ParticipantKeyHandler.ts | 129 +++++ src/e2ee/worker/e2ee.worker.ts | 217 ++++++++ src/e2ee/worker/tsconfig.json | 6 + src/index.ts | 1 + src/logger.ts | 12 +- src/options.ts | 6 + src/proto/livekit_models.ts | 24 +- src/room/PCTransport.ts | 9 + src/room/RTCEngine.ts | 46 +- src/room/Room.ts | 51 +- src/room/defaults.ts | 2 +- src/room/events.ts | 7 + src/room/participant/LocalParticipant.ts | 50 +- src/room/participant/Participant.ts | 4 + src/room/track/TrackPublication.ts | 10 +- src/room/track/options.ts | 5 +- src/room/utils.ts | 5 + src/room/worker.d.ts | 4 + src/test/MockMediaStreamTrack.ts | 1 + tsconfig.eslint.json | 5 +- vite.config.js | 51 ++ 42 files changed, 2190 insertions(+), 57 deletions(-) delete mode 100644 .DS_Store create mode 100644 .changeset/stupid-pans-sin.md create mode 100644 rollup.config.worker.js create mode 100644 src/e2ee/E2eeManager.ts create mode 100644 src/e2ee/KeyProvider.ts create mode 100644 src/e2ee/constants.ts create mode 100644 src/e2ee/errors.ts create mode 100644 src/e2ee/index.ts create mode 100644 src/e2ee/types.ts create mode 100644 src/e2ee/utils.ts create mode 100644 src/e2ee/worker/FrameCryptor.test.ts create mode 100644 src/e2ee/worker/FrameCryptor.ts create mode 100644 src/e2ee/worker/ParticipantKeyHandler.ts create mode 100644 src/e2ee/worker/e2ee.worker.ts create mode 100644 src/e2ee/worker/tsconfig.json create mode 100644 src/room/worker.d.ts create mode 100644 vite.config.js diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 8abfa7b70348dc11acd11bb71cdf0976d1e4f325..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK&5qMB5FWRMrtA+rEYe<(B5_@nvMehhE^W8fvJyYi2EhSPX_`>FO_M5VDX6N{ zGrR+@z?CQAT{yuvj#uQTa9ae(BiWzh%y>MXCw5FkqBV1F5mkxEKw&IhLA6HsJ(rvm zRL@nQkYgNEhaS*lI;L7qTX$#%Gy{Jd1N`l7(h=RKCOyJ;`}6x9lXKz)ecKCc=2wm8SQO4gFZ&Z9@3|Pe0mKp13aBk zl(GGou`OfwIYBfX#9~n=qx~(Ty@{~{#NbjFbK};G=a=Cg(LGa`pnyJ_3e2yQS0%=o_ND(TCaZV?nw=}8cH_IbN!KOMUBZguA<@Ta|@?}pM~=(tdM@oeZj!MqjBd?%8&R{X-K z7?o~ycdZkb>>?^6Y1LmVlPI0Dr$S+^! z8!{}vj)LJau$rzbLN~8+lick>kAXLM#jd4dC&uE z1~dczDg(Sfm?(@5g{v6l)`3c10e~fROF^4|71+j9*ig8N5pN(OHU-9}LR~RLY>s|Y z=`|FtVvNm6sLO{?o`t%h2Livekit Sample App
+
+ E2EE key +
+
+ +
@@ -114,6 +120,24 @@

Livekit Sample App

> Share Screen + +