Skip to content

Commit

Permalink
support boringssl event on TC model.
Browse files Browse the repository at this point in the history
Signed-off-by: CFC4N <cfc4n.cs@gmail.com>
  • Loading branch information
cfc4n committed Dec 10, 2022
1 parent ac99154 commit bdd1a8a
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 5 deletions.
2 changes: 1 addition & 1 deletion user/event/event_masterkey.go
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ func (this *MasterSecretBSSLEvent) String() string {
}

func (this *MasterSecretBSSLEvent) Clone() IEventStruct {
event := new(MasterSecretEvent)
event := new(MasterSecretBSSLEvent)
event.event_type = EventTypeModuleData
return event
}
Expand Down
7 changes: 4 additions & 3 deletions user/module/probe_openssl.go
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ func (this *MOpenSSLProbe) setupManagersUprobe() error {
}

this.logger.Printf("%s\tHOOK type:%d, binrayPath:%s\n", this.Name(), this.conf.(*config.OpensslConfig).ElfType, binaryPath)
this.logger.Printf("%s\tlHook masterKey function:%s\n", this.Name(), this.masterHookFunc)
this.logger.Printf("%s\tHook masterKey function:%s\n", this.Name(), this.masterHookFunc)

this.bpfManager = &manager.Manager{
Probes: []*manager.Probe{
Expand Down Expand Up @@ -616,6 +616,8 @@ func (this *MOpenSSLProbe) saveMasterSecretBSSL(secretEvent *event.MasterSecretB
case event.TLS1_2_VERSION:
b = bytes.NewBufferString(fmt.Sprintf("%s %02x %02x\n", hkdf.KeyLogLabelTLS12, secretEvent.ClientRandom, secretEvent.Secret))
case event.TLS1_3_VERSION:
fallthrough
default:
var length int
length = 32

Expand All @@ -626,8 +628,7 @@ func (this *MOpenSSLProbe) saveMasterSecretBSSL(secretEvent *event.MasterSecretB
b.WriteString(fmt.Sprintf("%s %02x %02x\n", hkdf.KeyLogLabelServerTraffic, secretEvent.ClientRandom, secretEvent.ServerTrafficSecret0[:length]))
b.WriteString(fmt.Sprintf("%s %02x %02x\n", hkdf.KeyLogLabelExporterSecret, secretEvent.ClientRandom, secretEvent.ExporterSecret[:length]))

default:
b = bytes.NewBufferString(fmt.Sprintf("%s %02x %02x\n", hkdf.KeyLogLabelTLS12, secretEvent.ClientRandom, secretEvent.Secret))
//b = bytes.NewBufferString(fmt.Sprintf("%s %02x %02x\n", hkdf.KeyLogLabelTLS12, secretEvent.ClientRandom, secretEvent.Secret))
}
v := event.TlsVersion{Version: secretEvent.Version}
l, e := this.keylogger.WriteString(b.String())
Expand Down
10 changes: 9 additions & 1 deletion user/module/probe_openssl_tc.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,15 @@ func (this *MOpenSSLProbe) initDecodeFunTC() error {
return errors.New("cant found map:mastersecret_events")
}
this.eventMaps = append(this.eventMaps, MasterkeyEventsMap)
masterkeyEvent := &event.MasterSecretEvent{}

var masterkeyEvent event.IEventStruct

if this.isBoringSSL {
masterkeyEvent = &event.MasterSecretBSSLEvent{}
} else {
masterkeyEvent = &event.MasterSecretEvent{}
}

//masterkeyEvent.SetModule(this)
this.eventFuncMaps[MasterkeyEventsMap] = masterkeyEvent
return nil
Expand Down

0 comments on commit bdd1a8a

Please sign in to comment.