webrtc/api/sframe
kwasniow 1aacbbfc7a Sframe API support for sender and receiver
This CL introduces the public API surface for Sframe (Secure Frame)
encryption and decryption on RTP senders and receivers. The actual
pipeline wiring is deferred to a follow-up CL; all factory methods
currently return nullptr.

New API headers (api/sframe/):

- sframe_types.h: shared enums SframeMode (per-frame / per-packet)
  and SframeCipherSuite (AES-CTR-HMAC variants, AES-GCM-128/256).
- sframe_encrypter_interface.h: SframeEncrypterInit config struct
  and SframeEncrypterInterface for sender-side key management
  (SetEncryptionKey).
- sframe_decrypter_interface.h: SframeDecrypterInit config struct
  and SframeDecrypterInterface for receiver-side key management
  (AddDecryptionKey, RemoveDecryptionKey).

Interface changes:

- RtpSenderInterface gains CreateSframeEncrypter(SframeEncrypterInit)
- RtpReceiverInterface gains CreateSframeDecrypter(SframeDecrypterInit)
- Both proxy files updated with corresponding PROXY_METHOD entries.

New RtpReceiverBase class introduced inheriting RtpReceiverInternal,
providing CreateSframeDecrypter. This mirrors the existing RtpSenderBase
pattern. AudioRtpReceiver and VideoRtpReceiver now inherit
RtpReceiverBase instead of RtpReceiverInternal, eliminating future code
duplication.

Bug: webrtc:479862368
Change-Id: I2d62b61f2d10325d8dca9f15f08a0eb0509eed01
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/452260
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#47224}
2026-03-22 01:34:08 -07:00
..
sframe_decrypter_interface.h
sframe_encrypter_interface.h
sframe_types.h