Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: key ratchet/derive. #66

Merged
merged 27 commits into from
Apr 25, 2023
Merged

Conversation

cloudwebrtc
Copy link
Member

No description provided.

@cloudwebrtc cloudwebrtc force-pushed the e2ee/aes-key-derive-using-pbkdf2 branch from b36765f to 076f381 Compare March 29, 2023 23:38
@cloudwebrtc cloudwebrtc marked this pull request as ready for review March 29, 2023 23:39
@cloudwebrtc cloudwebrtc changed the title feat: key derive. feat: key ratchet/derive. Mar 31, 2023
…will not be updated until the decryption is successful or the ratchet count window is exceeded.
Copy link

@lukasIO lukasIO left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

awesome stuff! 🚀

@cloudwebrtc cloudwebrtc merged commit e67b315 into m104_release Apr 25, 2023
@cloudwebrtc cloudwebrtc deleted the e2ee/aes-key-derive-using-pbkdf2 branch April 25, 2023 08:05
cloudwebrtc added a commit that referenced this pull request Jun 6, 2023
* feat: key derive.

* update.

* add ParticipantKeyHandler.

* update.

* update.

* update.

* update.

* update.

* fix key derive.

* chore: add kKeyRatcheted state.

* fixed key ratchet.

* update api for darwin.

* chore: for android.

* fix crash.

* fix bug for setkey

* chore: add ExportKey for KeyManager.

* chore: key export for android.

* chore: clang-format.

* chore: exportKey for darwin.

* chore: When ratchet and material derivation fail, the current keyset will not be updated until the decryption is successful or the ratchet count window is exceeded.

* chore: magic bytes.

* update.

* update for darwin.

* rename KeyManager to KeyProvider.

* fix compile for android.

* fix key retchet.

* Emit the KeyRatcheted state after a successful ratchet.

---------

Co-authored-by: root <root@WIN-13900KF>
cloudwebrtc added a commit that referenced this pull request Jun 6, 2023
* feat: key derive.

* update.

* add ParticipantKeyHandler.

* update.

* update.

* update.

* update.

* update.

* fix key derive.

* chore: add kKeyRatcheted state.

* fixed key ratchet.

* update api for darwin.

* chore: for android.

* fix crash.

* fix bug for setkey

* chore: add ExportKey for KeyManager.

* chore: key export for android.

* chore: clang-format.

* chore: exportKey for darwin.

* chore: When ratchet and material derivation fail, the current keyset will not be updated until the decryption is successful or the ratchet count window is exceeded.

* chore: magic bytes.

* update.

* update for darwin.

* rename KeyManager to KeyProvider.

* fix compile for android.

* fix key retchet.

* Emit the KeyRatcheted state after a successful ratchet.

---------

Co-authored-by: root <root@WIN-13900KF>
cloudwebrtc added a commit that referenced this pull request Jun 6, 2023
* feat: key derive.

* update.

* add ParticipantKeyHandler.

* update.

* update.

* update.

* update.

* update.

* fix key derive.

* chore: add kKeyRatcheted state.

* fixed key ratchet.

* update api for darwin.

* chore: for android.

* fix crash.

* fix bug for setkey

* chore: add ExportKey for KeyManager.

* chore: key export for android.

* chore: clang-format.

* chore: exportKey for darwin.

* chore: When ratchet and material derivation fail, the current keyset will not be updated until the decryption is successful or the ratchet count window is exceeded.

* chore: magic bytes.

* update.

* update for darwin.

* rename KeyManager to KeyProvider.

* fix compile for android.

* fix key retchet.

* Emit the KeyRatcheted state after a successful ratchet.

---------

Co-authored-by: root <root@WIN-13900KF>
cloudwebrtc added a commit that referenced this pull request Jun 6, 2023
* feat: key derive.

* update.

* add ParticipantKeyHandler.

* update.

* update.

* update.

* update.

* update.

* fix key derive.

* chore: add kKeyRatcheted state.

* fixed key ratchet.

* update api for darwin.

* chore: for android.

* fix crash.

* fix bug for setkey

* chore: add ExportKey for KeyManager.

* chore: key export for android.

* chore: clang-format.

* chore: exportKey for darwin.

* chore: When ratchet and material derivation fail, the current keyset will not be updated until the decryption is successful or the ratchet count window is exceeded.

* chore: magic bytes.

* update.

* update for darwin.

* rename KeyManager to KeyProvider.

* fix compile for android.

* fix key retchet.

* Emit the KeyRatcheted state after a successful ratchet.

---------

Co-authored-by: root <root@WIN-13900KF>
cloudwebrtc added a commit that referenced this pull request Jun 12, 2023
feat: Frame Cryptor (aes gcm/cbc). (#54)
feat: key ratchet/derive. (#66)

Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
@cloudwebrtc cloudwebrtc mentioned this pull request Jun 12, 2023
cloudwebrtc added a commit that referenced this pull request Jun 12, 2023
feat: Frame Cryptor (aes gcm/cbc). (#54)
feat: key ratchet/derive. (#66)

Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
cloudwebrtc added a commit that referenced this pull request Jun 12, 2023
feat: Frame Cryptor (aes gcm/cbc). (#54)
feat: key ratchet/derive. (#66)

Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
cloudwebrtc added a commit that referenced this pull request Jul 12, 2023
feat: Frame Cryptor (aes gcm/cbc). (#54)
feat: key ratchet/derive. (#66)
fix: skip invalid key when decryption failed. (#81)

Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
cloudwebrtc added a commit that referenced this pull request Jul 12, 2023
feat: Frame Cryptor (aes gcm/cbc). (#54)
feat: key ratchet/derive. (#66)
fix: skip invalid key when decryption failed. (#81)

Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
cloudwebrtc added a commit that referenced this pull request Jul 13, 2023
feat: Frame Cryptor (aes gcm/cbc). (#54)
feat: key ratchet/derive. (#66)
fix: skip invalid key when decryption failed. (#81)

Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
cloudwebrtc added a commit that referenced this pull request Jul 13, 2023
feat: Frame Cryptor (aes gcm/cbc). (#54)
feat: key ratchet/derive. (#66)
fix: skip invalid key when decryption failed. (#81)

Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
cloudwebrtc added a commit that referenced this pull request May 22, 2024
feat: Frame Cryptor (aes gcm/cbc). (#54)
feat: key ratchet/derive. (#66)
fix: skip invalid key when decryption failed. (#81)
Improve e2ee, add setSharedKey to KeyProvider. (#88)
add failure tolerance for framecryptor. (#91)
fix h264 freeze. (#93)
Fix/send frame cryptor events from signaling thread (#95)
more improvements for E2EE. (#96)
remove too verbose logs (#107)
Add key ring size to keyProviderOptions. (#109)

Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
Co-authored-by: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com>
Co-authored-by: davidliu <davidliu@deviange.net>
@cloudwebrtc cloudwebrtc mentioned this pull request May 22, 2024
cloudwebrtc added a commit that referenced this pull request May 30, 2024
feat: Frame Cryptor (aes gcm/cbc). (#54)
feat: key ratchet/derive. (#66)
fix: skip invalid key when decryption failed. (#81)
Improve e2ee, add setSharedKey to KeyProvider. (#88)
add failure tolerance for framecryptor. (#91)
fix h264 freeze. (#93)
Fix/send frame cryptor events from signaling thread (#95)
more improvements for E2EE. (#96)
remove too verbose logs (#107)
Add key ring size to keyProviderOptions. (#109)

Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
Co-authored-by: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com>
Co-authored-by: davidliu <davidliu@deviange.net>
cloudwebrtc added a commit that referenced this pull request Jun 12, 2024
feat: Frame Cryptor (aes gcm/cbc). (#54)
feat: key ratchet/derive. (#66)
fix: skip invalid key when decryption failed. (#81)
Improve e2ee, add setSharedKey to KeyProvider. (#88)
add failure tolerance for framecryptor. (#91)
fix h264 freeze. (#93)
Fix/send frame cryptor events from signaling thread (#95)
more improvements for E2EE. (#96)
remove too verbose logs (#107)
Add key ring size to keyProviderOptions. (#109)
Improvements to RTCFrameCryptor (#123)

Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
Co-authored-by: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com>
Co-authored-by: davidliu <davidliu@deviange.net>
cloudwebrtc added a commit that referenced this pull request Jun 12, 2024
Use M125 as the latest version and migrate historical patches to m125

Patches Group:

## 1. Update README.md
b6c65fc
* Add Apache-2.0 license and some note to README.md. (#9)
* Updated readme detailing changes from original (#42)
* Adding membrane framework (#51)
* Updated readme (#83)

## 2. Audio Device Optimization
7454824
* allow listen-only mode in AudioUnit, adjust when category changes
(#2)
* release mic when category changes
(#5)
* Change defaults to iOS defaults
(#7)
* Sync audio session config
(#8)
* feat: support bypass voice processing for iOS.
(#15)
* Remove MacBookPro audio pan right code
(#22)
* fix: Fix can't open mic alone when built-in AEC is enabled.
(#29)
* feat: add audio device changes detect for windows.
(#41)
* fix Linux compile (#47)
* AudioUnit: Don't rely on category switch for mic indicator to turn off
(#52)
* Stop recording on mute (turn off mic indicator)
(#55)
* Cherry pick audio selection from m97 release
(#35)
* [Mac] Allow audio device selection
(#21)
* RTCAudioDeviceModule.outputDevice / inputDevice getter and setter
(#80)
* Allow custom audio processing by exposing AudioProcessingModule
(#85)
* Expose audio sample buffers for Android
(#89)
* feat: add external audio processor for android.
(#103)
* android: make audio output attributes modifiable
(#118)
* Fix external audio processor sample rate calculation
(#108)
* Expose remote audio sample buffers on RTCAudioTrack
(#84)
* Fix memory leak when creating audio CMSampleBuffer
#86

## 3. Simulcast/SVC support for iOS/Android.
b0b9fe9
    
- Simulcast support for iOS SDK (#4)
- Support for simulcast in Android SDK (#3)
- include simulcast headers for mac also (#10)
- Fix simulcast using hardware encoder on Android (#48)
- Add scalabilityMode support for AV1/VP9. (#90)

## 4. Android improvements.
9aaaab5
- Start/Stop receiving stream method for VideoTrack (#25)
- Properly remove observer upon deconstruction (#26)
- feat: Expose setCodecPreferences/getCapabilities for android. (#61)
- fix: add WrappedVideoDecoderFactory.java. (#74)

## 5. Darwin improvements
a13ea17
- [Mac/iOS] feat: Add RTCYUVHelper for darwin. (#28)
- Cross-platform `RTCMTLVideoView` for both iOS / macOS (#40)
- rotationOverride should not be assign (#44)
- [ObjC] Expose properties / methods required for AV1 codec support
(#60)
- Workaround: Render PixelBuffer in RTCMTLVideoView (#58)
- Improve iOS/macOS H264 encoder (#70)
- fix: fix video encoder not resuming correctly upon foregrounding
(#75).
- add PrivacyInfo.xcprivacy to darwin frameworks. (#112)
- Add NSPrivacyCollectedDataTypes key to xcprivacy file (#114)
- Thread-safe `RTCInitFieldTrialDictionary` (#116)
- Set RTCCameraVideoCapturer initial zoom factor (#121)
- Unlock configuration before starting capture session (#122)

## 6. Desktop Capture for macOS.
841d78f
- [Mac] feat: Support screen capture for macOS. (#24) (#36)
- fix: Get thumbnails asynchronously. (#37)
- fix: Use CVPixelBuffer to build DesktopCapture Frame, fix the crash
caused by non-CVPixelBuffer frame in RTCVideoEncoderH264 that cannot be
cropped. (#63)
- Fix the crash when setting the fps of the virtual camera. (#62)

## 7. Frame Cryptor Support.
fc08745
- feat: Frame Cryptor (aes gcm/cbc). (#54)
- feat: key ratchet/derive. (#66)
- fix: skip invalid key when decryption failed. (#81)
- Improve e2ee, add setSharedKey to KeyProvider. (#88)
- add failure tolerance for framecryptor. (#91)
- fix h264 freeze. (#93)
- Fix/send frame cryptor events from signaling thread (#95)
- more improvements for E2EE. (#96)
- remove too verbose logs (#107)
- Add key ring size to keyProviderOptions. (#109)

## 8. Other improvements.
eed6c8a
- Added yuv_helper (#57)
- ABGRToI420, ARGBToI420 & ARGBToRGB24 (#65)
- more yuv wrappers (#87)
- Fix naming for yuv helper (#113)
- Fix missing `RTC_OBJC_TYPE` macros (#100)

---------

Co-authored-by: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com>
Co-authored-by: David Zhao <dz@livekit.io>
Co-authored-by: davidliu <davidliu@deviange.net>
Co-authored-by: Angelika Serwa <angelika.serwa@gmail.com>
Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
npazkevich pushed a commit to npazkevich/webrtc that referenced this pull request Jun 24, 2024
feat: Frame Cryptor (aes gcm/cbc). (webrtc-sdk#54)
feat: key ratchet/derive. (webrtc-sdk#66)
fix: skip invalid key when decryption failed. (webrtc-sdk#81)

Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants