Skip to content

feat: implement 1-RTT key update management mechanism#679

Open
relaxing-more wants to merge 1 commit into
genmeta:mainfrom
relaxing-more:Updatekey
Open

feat: implement 1-RTT key update management mechanism#679
relaxing-more wants to merge 1 commit into
genmeta:mainfrom
relaxing-more:Updatekey

Conversation

@relaxing-more
Copy link
Copy Markdown
Contributor

根据QUIC协议标准,1rtt短包头的key phase位,每次翻转代表着密钥更新一次,结合这个机制,实现密钥更新管理。
主要变更

新增密钥更新触发控制
支持1-RTT数据包密钥更新
实现双密钥并行保留机制:接收端保留当前+下一组密钥,应对网络乱序
规范更新流程:发起方同时更新收发密钥;响应方先解密新包,再更新发送密钥,并在新包中确认
新增KEY_UPDATE_ERROR错误处理:连续未确认更新、密钥阶段错配、包号与密钥不匹配

@relaxing-more relaxing-more force-pushed the Updatekey branch 5 times, most recently from bcbd589 to 6b9f224 Compare March 31, 2026 04:02
Signed-off-by: relaxing-more <2068804516@qq.com>
@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 31, 2026

Codecov Report

❌ Patch coverage is 89.75069% with 74 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
qbase/src/packet/keys.rs 90.34% 53 Missing ⚠️
qinterface/src/component/route/packet.rs 79.66% 12 Missing ⚠️
qconnection/src/space/data.rs 87.09% 8 Missing ⚠️
qconnection/src/space.rs 87.50% 1 Missing ⚠️
Files with missing lines Coverage Δ
qbase/src/packet/signal.rs 63.88% <ø> (+10.23%) ⬆️
qconnection/src/tls.rs 89.42% <100.00%> (ø)
qconnection/src/tx.rs 93.50% <100.00%> (+1.70%) ⬆️
qconnection/src/space.rs 93.93% <87.50%> (-1.60%) ⬇️
qconnection/src/space/data.rs 73.68% <87.09%> (+0.75%) ⬆️
qinterface/src/component/route/packet.rs 58.60% <79.66%> (+5.03%) ⬆️
qbase/src/packet/keys.rs 87.92% <90.34%> (+15.29%) ⬆️

... and 5 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

1 participant