2727#include " livekit/ffi_handle.h"
2828#include " livekit/room.h"
2929#include " livekit/rpc_error.h"
30- #include " livekit/track.h"
3130#include " livekit_ffi.h"
3231#include " lk_log.h"
3332#include " room.pb.h"
@@ -37,10 +36,6 @@ namespace livekit {
3736
3837namespace {
3938
40- std::string bytesToString (const std::vector<std::uint8_t >& b) {
41- return std::string (reinterpret_cast <const char *>(b.data ()), b.size ());
42- }
43-
4439inline void logAndThrow (const std::string& error_msg) {
4540 LK_LOG_ERROR (" LiveKit SDK Error: {}" , error_msg);
4641 throw std::runtime_error (error_msg);
@@ -333,35 +328,7 @@ std::future<proto::ConnectCallback> FfiClient::connectAsync(const std::string& u
333328
334329 auto * enc = opts->mutable_encryption ();
335330 enc->set_encryption_type (static_cast <proto::EncryptionType>(e2ee.encryption_type ));
336- auto * kp = enc->mutable_key_provider_options ();
337- // shared_key is optional. If not set, leave the field unset/cleared.
338- if (kpo.shared_key && !kpo.shared_key ->empty ()) {
339- kp->set_shared_key (bytesToString (*kpo.shared_key ));
340- } else {
341- kp->clear_shared_key ();
342- }
343- // Only set ratchet_salt if caller overrides. Otherwise clear so Rust side
344- // uses default.
345- if (!kpo.ratchet_salt .empty () &&
346- kpo.ratchet_salt !=
347- std::vector<std::uint8_t >(kDefaultRatchetSalt ,
348- kDefaultRatchetSalt + std::char_traits<char >::length (kDefaultRatchetSalt ))) {
349- kp->set_ratchet_salt (bytesToString (kpo.ratchet_salt ));
350- } else {
351- kp->clear_ratchet_salt ();
352- }
353- // Same idea for window size / tolerance: set only on override; otherwise
354- // clear.
355- if (kpo.ratchet_window_size != kDefaultRatchetWindowSize ) {
356- kp->set_ratchet_window_size (kpo.ratchet_window_size );
357- } else {
358- kp->clear_ratchet_window_size ();
359- }
360- if (kpo.failure_tolerance != kDefaultFailureTolerance ) {
361- kp->set_failure_tolerance (kpo.failure_tolerance );
362- } else {
363- kp->clear_failure_tolerance ();
364- }
331+ enc->mutable_key_provider_options ()->CopyFrom (toProto (kpo));
365332 }
366333
367334 // --- RTC configuration (optional) ---
0 commit comments