forked from quic-go/quic-go
fix logging of dropped 0-RTT keys
Client and server only possess write or read 0-RTT keys, respectively. We should therefore only emit a single event when those are dropped.
This commit is contained in:
@@ -402,8 +402,12 @@ func (t *connectionTracer) UpdatedKey(generation protocol.KeyPhase, remote bool)
|
|||||||
func (t *connectionTracer) DroppedEncryptionLevel(encLevel protocol.EncryptionLevel) {
|
func (t *connectionTracer) DroppedEncryptionLevel(encLevel protocol.EncryptionLevel) {
|
||||||
t.mutex.Lock()
|
t.mutex.Lock()
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
|
if encLevel == protocol.Encryption0RTT {
|
||||||
|
t.recordEvent(now, &eventKeyRetired{KeyType: encLevelToKeyType(encLevel, t.perspective)})
|
||||||
|
} else {
|
||||||
t.recordEvent(now, &eventKeyRetired{KeyType: encLevelToKeyType(encLevel, protocol.PerspectiveServer)})
|
t.recordEvent(now, &eventKeyRetired{KeyType: encLevelToKeyType(encLevel, protocol.PerspectiveServer)})
|
||||||
t.recordEvent(now, &eventKeyRetired{KeyType: encLevelToKeyType(encLevel, protocol.PerspectiveClient)})
|
t.recordEvent(now, &eventKeyRetired{KeyType: encLevelToKeyType(encLevel, protocol.PerspectiveClient)})
|
||||||
|
}
|
||||||
t.mutex.Unlock()
|
t.mutex.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -721,6 +721,18 @@ var _ = Describe("Tracing", func() {
|
|||||||
Expect(keyTypes).To(ContainElement("client_initial_secret"))
|
Expect(keyTypes).To(ContainElement("client_initial_secret"))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("records dropped 0-RTT keys", func() {
|
||||||
|
tracer.DroppedEncryptionLevel(protocol.Encryption0RTT)
|
||||||
|
entries := exportAndParse()
|
||||||
|
Expect(entries).To(HaveLen(1))
|
||||||
|
entry := entries[0]
|
||||||
|
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||||
|
Expect(entry.Name).To(Equal("security:key_retired"))
|
||||||
|
ev := entry.Event
|
||||||
|
Expect(ev).To(HaveKeyWithValue("trigger", "tls"))
|
||||||
|
Expect(ev).To(HaveKeyWithValue("key_type", "server_0rtt_secret"))
|
||||||
|
})
|
||||||
|
|
||||||
It("records dropped keys", func() {
|
It("records dropped keys", func() {
|
||||||
tracer.DroppedKey(42)
|
tracer.DroppedKey(42)
|
||||||
entries := exportAndParse()
|
entries := exportAndParse()
|
||||||
|
|||||||
Reference in New Issue
Block a user