@@ -46,43 +46,18 @@ static jboolean JNI_FrameCryptorKeyManager_SetKey(
4646 std::vector<uint8_t >(key.begin (), key.end ()));
4747}
4848
49- static jboolean JNI_FrameCryptorKeyManager_SetKeys (
49+ static base::android::ScopedJavaLocalRef<jbyteArray> JNI_FrameCryptorKeyManager_RatchetKey (
5050 JNIEnv* env,
5151 jlong keyManagerPointer,
5252 const base::android::JavaParamRef<jstring>& participantId,
53- const base::android::JavaParamRef<jobject>& keys ) {
53+ jint j_index ) {
5454 auto participant_id = JavaToStdString (env, participantId);
5555 auto key_manager =
5656 reinterpret_cast <webrtc::DefaultKeyManagerImpl*>(keyManagerPointer);
57- auto keys_size = env->GetArrayLength ((jobjectArray)keys.obj ());
58- std::vector<std::vector<uint8_t >> keys_vector;
59- for (int i = 0 ; i < keys_size; i++) {
60- auto key = JavaToNativeByteArray (
61- env, base::android::JavaParamRef<jbyteArray>(
62- env, (jbyteArray)env->GetObjectArrayElement (
63- (jobjectArray)keys.obj (), i)));
64- keys_vector.push_back (std::vector<uint8_t >(key.begin (), key.end ()));
65- }
66- return key_manager->SetKeys (participant_id, keys_vector);
57+ auto newKey = key_manager->RatchetKey (participant_id, j_index);
58+ std::vector<int8_t > int8tKey =
59+ std::vector<int8_t >(newKey.begin (), newKey.end ());
60+ return NativeToJavaByteArray (env, rtc::ArrayView<int8_t >(int8tKey));
6761}
68-
69- static ScopedJavaLocalRef<jobject> JNI_FrameCryptorKeyManager_GetKeys (
70- JNIEnv* jni,
71- jlong j_key_manager,
72- const base::android::JavaParamRef<jstring>& participantId) {
73- auto participant_id = JavaToStdString (jni, participantId);
74- auto keys = reinterpret_cast <webrtc::DefaultKeyManagerImpl*>(j_key_manager)
75- ->keys (participant_id);
76- JavaListBuilder j_keys (jni);
77- for (size_t i = 0 ; i < keys.size (); i++) {
78- auto uint8Key = keys[i];
79- std::vector<int8_t > int8tKey =
80- std::vector<int8_t >(uint8Key.begin (), uint8Key.end ());
81- auto j_key = NativeToJavaByteArray (jni, rtc::ArrayView<int8_t >(int8tKey));
82- j_keys.add (j_key);
83- }
84- return j_keys.java_list ();
85- }
86-
8762} // namespace jni
8863} // namespace webrtc
0 commit comments