Adding chained items to parent object in certstream

This commit is contained in:
Christopher Talib 2020-02-05 15:57:30 +01:00
parent c2b59808be
commit a321b46d0f

View file

@ -25,7 +25,7 @@ func BuildNode(flag string, dataType string, data string) *Node {
// BuildCertNode builds a custom node based on CertStream.
func BuildCertNode(rawNode *CertStreamWrapper) *CertNode {
return &CertNode{
main := &CertNode{
ID: "certstream--" + uuid.New().String(),
Fingerprint: rawNode.Data.Data.LeafCert.Fingerprint,
NotBefore: time.Unix(int64(rawNode.Data.Data.LeafCert.NotBefore), 0).Format(time.RFC3339),
@ -35,19 +35,38 @@ func BuildCertNode(rawNode *CertStreamWrapper) *CertNode {
BasicConstraints: rawNode.Data.Data.LeafCert.Extensions.BasicConstrains,
RawUUID: rawNode.ID,
}
var res []CertNode
if len(rawNode.Data.Data.Chain) > 0 {
chain := CertNode{
ID: "certstream--" + uuid.New().String(),
Fingerprint: rawNode.Data.Data.LeafCert.Fingerprint,
NotBefore: time.Unix(int64(rawNode.Data.Data.LeafCert.NotBefore), 0).Format(time.RFC3339),
NotAfter: time.Unix(int64(rawNode.Data.Data.LeafCert.NotAfter), 0).Format(time.RFC3339),
CN: rawNode.Data.Data.LeafCert.Subject.CN,
SourceName: rawNode.Data.Data.Source.Name,
BasicConstraints: rawNode.Data.Data.LeafCert.Extensions.BasicConstrains,
RawUUID: rawNode.ID,
}
res = append(res, chain)
}
main.Chain = res
return main
}
// 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"`
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"`
}
// WrapCertStreamData is a wrapper around CertStreamStruct.