Skip to content

Commit bb20946

Browse files
committed
reset has_valid_key after RatchetKey.
1 parent 677bec5 commit bb20946

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

api/crypto/frame_crypto_transformer.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,7 @@ void FrameCryptorTransformer::decryptFrame(
534534
return;
535535
}
536536

537-
if(last_dec_error_ == kDecryptionFailed && !key_handler->have_valid_key) {
537+
if(last_dec_error_ == kDecryptionFailed && !key_handler->has_valid_key) {
538538
// if decryption failed and we have an invalid key,
539539
// please try to decrypt with the next new key
540540
return;
@@ -584,6 +584,7 @@ void FrameCryptorTransformer::decryptFrame(
584584
decryption_success = true;
585585
// success, so we set the new key
586586
key_handler->SetKeyFromMaterial(new_material, key_index);
587+
key_handler->has_valid_key = true;
587588
if (last_dec_error_ != FrameCryptionState::kKeyRatcheted) {
588589
last_dec_error_ = FrameCryptionState::kKeyRatcheted;
589590
if (observer_)
@@ -612,7 +613,7 @@ void FrameCryptorTransformer::decryptFrame(
612613
if (!decryption_success) {
613614
if (last_dec_error_ != FrameCryptionState::kDecryptionFailed) {
614615
last_dec_error_ = FrameCryptionState::kDecryptionFailed;
615-
key_handler->have_valid_key = false;
616+
key_handler->has_valid_key = false;
616617
if (observer_)
617618
observer_->OnFrameCryptionStateChanged(participant_id_,
618619
last_dec_error_);

api/crypto/frame_crypto_transformer.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ class ParticipantKeyHandler {
102102
}
103103
SetKeyFromMaterial(new_material,
104104
key_index != -1 ? key_index : current_key_index_);
105+
has_valid_key = true;
105106
return new_material;
106107
}
107108

@@ -113,7 +114,7 @@ class ParticipantKeyHandler {
113114
virtual void SetKey(std::vector<uint8_t> password, int key_index) {
114115
webrtc::MutexLock lock(&mutex_);
115116
SetKeyFromMaterial(password, key_index);
116-
have_valid_key = true;
117+
has_valid_key = true;
117118
}
118119

119120
std::vector<uint8_t> RatchetKeyMaterial(
@@ -145,8 +146,8 @@ class ParticipantKeyHandler {
145146
crypto_key_ring_[current_key_index_] =
146147
DeriveKeys(password, key_provider_->options().ratchet_salt, 128);
147148
}
148-
protected:
149-
bool have_valid_key = false;
149+
protected:
150+
bool has_valid_key = false;
150151
private:
151152
mutable webrtc::Mutex mutex_;
152153
int current_key_index_ = 0;

0 commit comments

Comments
 (0)