Building nodes, certnode, and edges

This commit is contained in:
Christopher Talib 2020-02-04 10:35:18 +01:00
parent 00bfb5eaaf
commit 380e51229b
2 changed files with 12 additions and 7 deletions

18
main.go
View file

@ -27,6 +27,7 @@ func main() {
wg.Add(2)
go broker.ReadEventFromKafka()
// certstream
go func() {
for {
@ -37,21 +38,23 @@ func main() {
rawNode := models.WrapCertStreamData(*data)
models.SaveRaw("raw_certstream.json", rawNode)
fingerprintNode := models.BuildNode("certstream", "fingerprint", data.Data.LeafCert.Fingerprint)
models.SaveNode("nodes.json", fingerprintNode)
models.BuildEdge("certstream", rawNode.ID, fingerprintNode.ID)
fmt.Println(fingerprintNode)
certNode := models.BuildCertNode(rawNode)
models.SaveCertNode("nodes.json", certNode)
mainNode := models.BuildNode("certstream", "certstream", certNode.ID)
models.SaveNode("nodes.json", mainNode)
models.BuildEdge("certstream", rawNode.ID, mainNode.ID)
models.BuildEdge("certstream", mainNode.ID, certNode.ID)
fmt.Println(certNode)
allDomains := data.Data.LeafCert.AllDomains
var edge *models.Edge
for _, domain := range allDomains {
domainNode := models.BuildNode("certstream", "domain", domain)
models.SaveNode("nodes.json", domainNode)
edge = models.BuildEdge("certstream", fingerprintNode.ID, domainNode.ID)
edge = models.BuildEdge("certstream", certNode.ID, domainNode.ID)
fmt.Println(edge)
models.SaveEdge(edge)
}
broker.SendEventToKafka(Conn, *fingerprintNode)
// broker.SendEventToKafka(Conn, *fingerprintNode)
}
case err := <-errStream:
@ -61,6 +64,7 @@ func main() {
return
}
}
}()
// pastebin

View file

@ -38,6 +38,7 @@ func BuildCertNode(rawNode *CertStreamWrapper) *CertNode {
// CertNode represents our custom struct of data extraction from CertStream.
type CertNode struct {
ID string `json:"id"`
Fingerprint string `json:"fingerprint"`
NotBefore string `json:"notBefore"`
NotAfter string `json:"notAfter"`