Update README with more information on the nodes and edges connections
This commit is contained in:
parent
c7a52c527a
commit
e38b05de66
108
README.md
108
README.md
|
@ -7,3 +7,111 @@ cd $GOPATH/src/gitlab.dcso.lolcat/LABS/styx
|
|||
go build
|
||||
./styx
|
||||
```
|
||||
|
||||
## Datastructure
|
||||
|
||||
### Meta
|
||||
|
||||
Node ------ Node
|
||||
^
|
||||
|
|
||||
Edge
|
||||
|
||||
```go
|
||||
type Node struct {
|
||||
ID string `json:"id"`
|
||||
Type string `json:"type"`
|
||||
Data string `json:"data"` // For plain Node, the data is the ID of another typed node or a unique value like a domain or a host name.
|
||||
Created string `json:"created"`
|
||||
Modified string `json:"modified"`
|
||||
}
|
||||
|
||||
// Edge defines a relation between two nodes.
|
||||
type Edge struct {
|
||||
ID string `json:"id"`
|
||||
NodeOneID string `json:"nodeOneID"`
|
||||
NodeTwoID string `json:"nodeTwoID"`
|
||||
Timestamp string `json:"timestamp"`
|
||||
Source string `json:"source"`
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
### Certstream
|
||||
|
||||
Node ---- CertNode ---- CertStreamRaw
|
||||
^ | ^
|
||||
| | |
|
||||
Edge-> | Edge
|
||||
|
|
||||
Node(s) (domain)
|
||||
|
||||
```go
|
||||
|
||||
// CertStreamRaw is a wrapper around the stream function to unmarshall the
|
||||
// data receive in a Go structure.
|
||||
type CertStreamRaw struct {
|
||||
ID string `json:"id"`
|
||||
Type string `json:"type"`
|
||||
Data CertStreamStruct `json:"data"`
|
||||
Created string `json:"created"`
|
||||
Modified string `json:"modified"`
|
||||
}
|
||||
|
||||
// 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"`
|
||||
CN string `json:"cn"`
|
||||
SourceName string `json:"sourceName"`
|
||||
SerialNumber string `json:"serialNumber"`
|
||||
BasicConstraints string `json:"basicConstraints"`
|
||||
RawUUID string `json:"rawUUID"`
|
||||
Chain []CertNode `json:"chainedTo"`
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
### Pastebin
|
||||
|
||||
Node ---- PasteNode ---- FullPaste
|
||||
^ ^
|
||||
| |
|
||||
Edge Edge
|
||||
|
||||
```go
|
||||
// PasteNode is a node from PasteBin.
|
||||
type PasteNode struct {
|
||||
ID string `json:"id"`
|
||||
Type string `json:"type"`
|
||||
Data FullPaste `json:"data"`
|
||||
Created string `json:"create"`
|
||||
Modified string `json:"modified"`
|
||||
}
|
||||
|
||||
// FullPaste wrapes meta and information from Pastebin.
|
||||
type FullPaste struct {
|
||||
Meta PasteMeta `json:"meta"`
|
||||
Full string `json:"full"`
|
||||
}
|
||||
```
|
||||
|
||||
### Shodan
|
||||
|
||||
Node ---- ShodanNode ---- Node(s) (hostnames and domains)
|
||||
^ ^
|
||||
| |
|
||||
Edge Edge
|
||||
|
||||
```go
|
||||
type ShodanNode struct {
|
||||
ID string `json:"id"`
|
||||
Type string `json:"type"`
|
||||
Data *shodan.HostData `json:"data"`
|
||||
Created string `json:"created"`
|
||||
Modified string `json:"modified"`
|
||||
}
|
||||
```
|
||||
|
|
Loading…
Reference in a new issue